Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Unified Diff: tools/telemetry/telemetry/core/platform/__init__.py

Issue 522553002: Move remote platforms creation logic from android_browser_finder to platform (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix android_browser_finder_unittest Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 80bf4932fb8135a83aec4b1b8276526a0b363f9c..d18323a30133ae67745c8c9912915dbe187403ef 100644
--- a/tools/telemetry/telemetry/core/platform/__init__.py
+++ b/tools/telemetry/telemetry/core/platform/__init__.py
@@ -6,9 +6,9 @@ import logging as real_logging
import os
import sys
-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 import discover
+from telemetry.core import util
+from telemetry.core.platform import platform_backend as platform_backend_module
from telemetry.core.platform import profiling_controller
from telemetry.core.platform import tracing_controller
@@ -34,8 +34,8 @@ def _InitHostPlatformIfNeeded():
if _host_platform:
return
if _IsRunningOnCrosDevice():
- backend = cros_platform_backend.CrosPlatformBackend(
- cros_interface.CrOSInterface())
+ from telemetry.core.platform import cros_platform_backend
+ backend = cros_platform_backend.CrosPlatformBackend()
achuithb 2014/09/24 11:05:41 This takes a CrOSDevice.
elif sys.platform.startswith('linux'):
from telemetry.core.platform import linux_platform_backend
backend = linux_platform_backend.LinuxPlatformBackend()
@@ -61,20 +61,22 @@ def GetPlatformForDevice(device, logging=real_logging):
Args:
device: a device.Device instance.
"""
- 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]
+ 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
class Platform(object):
« no previous file with comments | « tools/telemetry/telemetry/core/exceptions.py ('k') | tools/telemetry/telemetry/core/platform/android_device.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698