aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/android/tools/flash_device.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/devil/devil/android/tools/flash_device.py')
-rwxr-xr-xcatapult/devil/devil/android/tools/flash_device.py48
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())