blob: fdcd5aeffda70de47bf2bd07f0828f9e3ab3e70d [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Finds devices that can be controlled by telemetry."""
from telemetry.internal.platform import android_device
from telemetry.internal.platform import cros_device
from telemetry.internal.platform import desktop_device
from telemetry.internal.platform import ios_device
DEVICES = [
android_device,
cros_device,
desktop_device,
ios_device,
]
def _GetAllAvailableDevices(options):
"""Returns a list of all available devices."""
devices = []
for device in DEVICES:
devices.extend(device.FindAllAvailableDevices(options))
return devices
def GetDevicesMatchingOptions(options):
"""Returns a list of devices matching the options."""
devices = []
remote_platform_options = options.remote_platform_options
if (not remote_platform_options.device or
remote_platform_options.device == 'list'):
devices = _GetAllAvailableDevices(options)
elif remote_platform_options.device == 'android':
devices = android_device.FindAllAvailableDevices(options)
else:
devices = _GetAllAvailableDevices(options)
devices = [d for d in devices if d.guid ==
options.remote_platform_options.device]
devices.sort(key=lambda device: device.name)
return devices