diff options
Diffstat (limited to 'catapult/devil/devil/android/tools/flash_device.py')
-rwxr-xr-x | catapult/devil/devil/android/tools/flash_device.py | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/catapult/devil/devil/android/tools/flash_device.py b/catapult/devil/devil/android/tools/flash_device.py index 8b51c604..cb06a120 100755 --- a/catapult/devil/devil/android/tools/flash_device.py +++ b/catapult/devil/devil/android/tools/flash_device.py @@ -9,14 +9,17 @@ import os import sys if __name__ == '__main__': - sys.path.append(os.path.abspath(os.path.join( - os.path.dirname(__file__), '..', '..', '..'))) -from devil.android import device_blacklist -from devil.android import device_utils + sys.path.append( + os.path.abspath( + os.path.join(os.path.dirname(__file__), '..', '..', '..'))) +from devil.android import device_denylist +from devil.android import device_errors from devil.android import fastboot_utils +from devil.android.sdk import fastboot from devil.android.tools import script_common from devil.constants import exit_codes from devil.utils import logging_common +from devil.utils import parallelizer logger = logging.getLogger(__name__) @@ -24,18 +27,18 @@ logger = logging.getLogger(__name__) def main(): parser = argparse.ArgumentParser() parser.add_argument('build_path', help='Path to android build.') - parser.add_argument('-w', '--wipe', action='store_true', - help='If set, wipes user data') + parser.add_argument( + '-w', '--wipe', action='store_true', help='If set, wipes user data') logging_common.AddLoggingArguments(parser) script_common.AddDeviceArguments(parser) args = parser.parse_args() logging_common.InitializeLogging(args) - if args.blacklist_file: - blacklist = device_blacklist.Blacklist(args.blacklist_file).Read() - if blacklist: - logger.critical('Device(s) in blacklist, not flashing devices:') - for key in blacklist: + if args.denylist_file: + denylist = device_denylist.Denylist(args.denylist_file).Read() + if denylist: + logger.critical('Device(s) in denylist, not flashing devices:') + for key in denylist: logger.critical(' %s', key) return exit_codes.INFRA @@ -43,16 +46,30 @@ def main(): failed_devices = [] def flash(device): - fastboot = fastboot_utils.FastbootUtils(device) try: - fastboot.FlashDevice(args.build_path, wipe=args.wipe) + device.FlashDevice(args.build_path, wipe=args.wipe) flashed_devices.append(device) except Exception: # pylint: disable=broad-except logger.exception('Device %s failed to flash.', str(device)) failed_devices.append(device) - devices = script_common.GetDevices(args.devices, args.blacklist_file) - device_utils.DeviceUtils.parallel(devices).pMap(flash) + devices = [] + try: + adb_devices = script_common.GetDevices(args.devices, args.denylist_file) + devices += [fastboot_utils.FastbootUtils(device=d) for d in adb_devices] + except device_errors.NoDevicesError: + # Don't bail out if we're not looking for any particular device and there's + # at least one sitting in fastboot mode. Note that if we ARE looking for a + # particular device, and it's in fastboot mode, this will still fail. + fastboot_devices = fastboot.Fastboot.Devices() + if args.devices or not fastboot_devices: + raise + devices += [ + fastboot_utils.FastbootUtils(fastbooter=d) for d in fastboot_devices + ] + + parallel_devices = parallelizer.SyncParallelizer(devices) + parallel_devices.pMap(flash) if flashed_devices: logger.info('The following devices were flashed:') @@ -63,5 +80,6 @@ def main(): return exit_codes.INFRA return 0 + if __name__ == '__main__': sys.exit(main()) |