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