Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(519)

Side by Side Diff: build/android/provision_devices.py

Issue 2059863002: [Android] Fix provision devices failure getting timeout. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Made reboot_timeout an arg. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """Provisions Android devices with settings required for bots. 7 """Provisions Android devices with settings required for bots.
8 8
9 Usage: 9 Usage:
10 ./provision_devices.py [-d <device serial number>] 10 ./provision_devices.py [-d <device serial number>]
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 blacklisted_devices = blacklist.Read() if blacklist else [] 82 blacklisted_devices = blacklist.Read() if blacklist else []
83 if args.output_device_blacklist: 83 if args.output_device_blacklist:
84 with open(args.output_device_blacklist, 'w') as f: 84 with open(args.output_device_blacklist, 'w') as f:
85 json.dump(blacklisted_devices, f) 85 json.dump(blacklisted_devices, f)
86 if all(d in blacklisted_devices for d in devices): 86 if all(d in blacklisted_devices for d in devices):
87 raise device_errors.NoDevicesError 87 raise device_errors.NoDevicesError
88 return 0 88 return 0
89 89
90 90
91 def ProvisionDevice(device, blacklist, options): 91 def ProvisionDevice(device, blacklist, options):
92 if options.reboot_timeout:
93 reboot_timeout = options.reboot_timeout
94 elif device.build_version_sdk >= version_codes.LOLLIPOP:
95 reboot_timeout = _DEFAULT_TIMEOUTS.LOLLIPOP
96 else:
97 reboot_timeout = _DEFAULT_TIMEOUTS.PRE_LOLLIPOP
98
99 def should_run_phase(phase_name): 92 def should_run_phase(phase_name):
100 return not options.phases or phase_name in options.phases 93 return not options.phases or phase_name in options.phases
101 94
102 def run_phase(phase_func, reboot=True): 95 def run_phase(phase_func, reboot_timeout, reboot=True):
103 try: 96 try:
104 device.WaitUntilFullyBooted(timeout=reboot_timeout, retries=0) 97 device.WaitUntilFullyBooted(timeout=reboot_timeout, retries=0)
105 except device_errors.CommandTimeoutError: 98 except device_errors.CommandTimeoutError:
106 logging.error('Device did not finish booting. Will try to reboot.') 99 logging.error('Device did not finish booting. Will try to reboot.')
107 device.Reboot(timeout=reboot_timeout) 100 device.Reboot(timeout=reboot_timeout)
108 phase_func(device, options) 101 phase_func(device, options)
109 if reboot: 102 if reboot:
110 device.Reboot(False, retries=0) 103 device.Reboot(False, retries=0)
111 device.adb.WaitForDevice() 104 device.adb.WaitForDevice()
112 105
113 try: 106 try:
107 if options.reboot_timeout:
108 reboot_timeout = options.reboot_timeout
109 elif device.build_version_sdk >= version_codes.LOLLIPOP:
110 reboot_timeout = _DEFAULT_TIMEOUTS.LOLLIPOP
111 else:
112 reboot_timeout = _DEFAULT_TIMEOUTS.PRE_LOLLIPOP
113
114 if should_run_phase(_PHASES.WIPE): 114 if should_run_phase(_PHASES.WIPE):
115 if (options.chrome_specific_wipe or device.IsUserBuild() or 115 if (options.chrome_specific_wipe or device.IsUserBuild() or
116 device.build_version_sdk >= version_codes.MARSHMALLOW): 116 device.build_version_sdk >= version_codes.MARSHMALLOW):
117 run_phase(WipeChromeData) 117 run_phase(WipeChromeData, reboot_timeout)
118 else: 118 else:
119 run_phase(WipeDevice) 119 run_phase(WipeDevice, reboot_timeout)
120 120
121 if should_run_phase(_PHASES.PROPERTIES): 121 if should_run_phase(_PHASES.PROPERTIES):
122 run_phase(SetProperties) 122 run_phase(SetProperties, reboot_timeout)
123 123
124 if should_run_phase(_PHASES.FINISH): 124 if should_run_phase(_PHASES.FINISH):
125 run_phase(FinishProvisioning, reboot=False) 125 run_phase(FinishProvisioning, reboot_timeout, reboot=False)
126 126
127 if options.chrome_specific_wipe: 127 if options.chrome_specific_wipe:
128 package = "com.google.android.gms" 128 package = "com.google.android.gms"
129 version_name = device.GetApplicationVersion(package) 129 version_name = device.GetApplicationVersion(package)
130 logging.info("Version name for %s is %s", package, version_name) 130 logging.info("Version name for %s is %s", package, version_name)
131 131
132 CheckExternalStorage(device) 132 CheckExternalStorage(device)
133 133
134 except device_errors.CommandTimeoutError: 134 except device_errors.CommandTimeoutError:
135 logging.exception('Timed out waiting for device %s. Adding to blacklist.', 135 logging.exception('Timed out waiting for device %s. Adding to blacklist.',
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 devil_chromium.Initialize(adb_path=args.adb_path) 547 devil_chromium.Initialize(adb_path=args.adb_path)
548 548
549 try: 549 try:
550 return ProvisionDevices(args) 550 return ProvisionDevices(args)
551 except (device_errors.DeviceUnreachableError, device_errors.NoDevicesError): 551 except (device_errors.DeviceUnreachableError, device_errors.NoDevicesError):
552 return exit_codes.INFRA 552 return exit_codes.INFRA
553 553
554 554
555 if __name__ == '__main__': 555 if __name__ == '__main__':
556 sys.exit(main()) 556 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698