Home | History | Annotate | Download | only in tools
      1 # Copyright 2015 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from devil.android import device_blacklist
      6 from devil.android import device_errors
      7 from devil.android import device_utils
      8 
      9 
     10 def GetDevices(requested_devices, blacklist_file):
     11   blacklist = (device_blacklist.Blacklist(blacklist_file)
     12                if blacklist_file
     13                else None)
     14 
     15   devices = device_utils.DeviceUtils.HealthyDevices(blacklist)
     16   if not devices:
     17     raise device_errors.NoDevicesError()
     18   elif requested_devices:
     19     requested = set(requested_devices)
     20     available = set(str(d) for d in devices)
     21     missing = requested.difference(available)
     22     if missing:
     23       raise device_errors.DeviceUnreachableError(next(iter(missing)))
     24     return sorted(device_utils.DeviceUtils(d)
     25                   for d in available.intersection(requested))
     26   else:
     27     return devices
     28 
     29