| Index: tools/telemetry/telemetry/core/platform/__init__.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/__init__.py b/tools/telemetry/telemetry/core/platform/__init__.py
|
| index d18323a30133ae67745c8c9912915dbe187403ef..80bf4932fb8135a83aec4b1b8276526a0b363f9c 100644
|
| --- a/tools/telemetry/telemetry/core/platform/__init__.py
|
| +++ b/tools/telemetry/telemetry/core/platform/__init__.py
|
| @@ -6,9 +6,9 @@
|
| import os
|
| import sys
|
|
|
| -from telemetry.core import discover
|
| -from telemetry.core import util
|
| -from telemetry.core.platform import platform_backend as platform_backend_module
|
| +from telemetry.core.platform import cros_device
|
| +from telemetry.core.platform import cros_interface
|
| +from telemetry.core.platform import cros_platform_backend
|
| from telemetry.core.platform import profiling_controller
|
| from telemetry.core.platform import tracing_controller
|
|
|
| @@ -34,8 +34,8 @@
|
| if _host_platform:
|
| return
|
| if _IsRunningOnCrosDevice():
|
| - from telemetry.core.platform import cros_platform_backend
|
| - backend = cros_platform_backend.CrosPlatformBackend()
|
| + backend = cros_platform_backend.CrosPlatformBackend(
|
| + cros_interface.CrOSInterface())
|
| elif sys.platform.startswith('linux'):
|
| from telemetry.core.platform import linux_platform_backend
|
| backend = linux_platform_backend.LinuxPlatformBackend()
|
| @@ -61,22 +61,20 @@
|
| Args:
|
| device: a device.Device instance.
|
| """
|
| - if device.guid in _remote_platforms:
|
| - return _remote_platforms[device.guid]
|
| - try:
|
| - platform_backend = None
|
| - platform_dir = os.path.dirname(os.path.realpath(__file__))
|
| - for platform_backend_class in discover.DiscoverClasses(
|
| - platform_dir, util.GetTelemetryDir(),
|
| - platform_backend_module.PlatformBackend).itervalues():
|
| - if platform_backend_class.SupportsDevice(device):
|
| - platform_backend = platform_backend_class(device)
|
| - _remote_platforms[device.guid] = Platform(platform_backend)
|
| - return _remote_platforms[device.guid]
|
| - return None
|
| - except Exception:
|
| - logging.error('Fail to create platform instance for %s.', device.name)
|
| - raise
|
| + if device.guid not in _remote_platforms:
|
| + try:
|
| + if isinstance(device, cros_device.CrOSDevice):
|
| + cri = cros_interface.CrOSInterface(
|
| + device.host_name, device.ssh_identity)
|
| + cri.TryLogin()
|
| + _remote_platforms[device.guid] = (
|
| + Platform(cros_platform_backend.CrosPlatformBackend(cri)))
|
| + else:
|
| + raise ValueError('Unsupported device type')
|
| + except:
|
| + logging.error('Fail to create platform instance for %s.', device.name)
|
| + raise
|
| + return _remote_platforms[device.guid]
|
|
|
|
|
| class Platform(object):
|
|
|