blob: f27ebd173766297532cec6575baddf68ba6063f3 [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.
import logging
from telemetry.core import cros_interface
from telemetry.core import platform
from telemetry.internal.platform import device
class CrOSDevice(device.Device):
def __init__(self, host_name, ssh_port, ssh_identity, is_local):
super(CrOSDevice, self).__init__(
name='ChromeOs with host %s' % host_name or 'localhost',
guid='cros:%s' % host_name or 'localhost')
self._host_name = host_name
self._ssh_port = ssh_port
self._ssh_identity = ssh_identity
self._is_local = is_local
@classmethod
def GetAllConnectedDevices(cls, blacklist):
return []
@property
def host_name(self):
return self._host_name
@property
def ssh_port(self):
return self._ssh_port
@property
def ssh_identity(self):
return self._ssh_identity
@property
def is_local(self):
return self._is_local
def IsRunningOnCrOS():
return platform.GetHostPlatform().GetOSName() == 'chromeos'
def FindAllAvailableDevices(options):
"""Returns a list of available device types."""
use_ssh = options.cros_remote and cros_interface.HasSSH()
if not use_ssh and not IsRunningOnCrOS():
logging.debug('No --remote specified, and not running on ChromeOs.')
return []
return [CrOSDevice(options.cros_remote, options.cros_remote_ssh_port,
options.cros_ssh_identity, not use_ssh)]