| OLD | NEW |
| 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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 if options.skip_wipe: | 110 if options.skip_wipe: |
| 111 return | 111 return |
| 112 | 112 |
| 113 device.EnableRoot() | 113 device.EnableRoot() |
| 114 device_authorized = device.FileExists(constants.ADB_KEYS_FILE) | 114 device_authorized = device.FileExists(constants.ADB_KEYS_FILE) |
| 115 if device_authorized: | 115 if device_authorized: |
| 116 adb_keys = device.ReadFile(constants.ADB_KEYS_FILE, | 116 adb_keys = device.ReadFile(constants.ADB_KEYS_FILE, |
| 117 as_root=True).splitlines() | 117 as_root=True).splitlines() |
| 118 try: | 118 try: |
| 119 device.RunShellCommand(['wipe', 'data'], | 119 device.RunShellCommand(['wipe', 'data'], |
| 120 as_root=True, check_return=True, retries=0) | 120 as_root=True, check_return=True) |
| 121 except device_errors.CommandFailedError: | 121 except device_errors.CommandFailedError: |
| 122 logging.exception('Possible failure while wiping the device. ' | 122 logging.exception('Possible failure while wiping the device. ' |
| 123 'Attempting to continue.') | 123 'Attempting to continue.') |
| 124 device.adb.WaitForDevice() | 124 device.adb.WaitForDevice() |
| 125 | 125 |
| 126 if device_authorized: | 126 if device_authorized: |
| 127 adb_keys_set = set(adb_keys) | 127 adb_keys_set = set(adb_keys) |
| 128 for adb_key_file in options.adb_key_files or []: | 128 for adb_key_file in options.adb_key_files or []: |
| 129 try: | 129 try: |
| 130 with open(adb_key_file, 'r') as f: | 130 with open(adb_key_file, 'r') as f: |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 device.PushChangedFiles([(adb_reboot, '/data/local/tmp/')]) | 246 device.PushChangedFiles([(adb_reboot, '/data/local/tmp/')]) |
| 247 # Launch adb_reboot | 247 # Launch adb_reboot |
| 248 logging.info(' Launching adb_reboot ...') | 248 logging.info(' Launching adb_reboot ...') |
| 249 device.RunShellCommand( | 249 device.RunShellCommand( |
| 250 [device.GetDevicePieWrapper(), '/data/local/tmp/adb_reboot'], | 250 [device.GetDevicePieWrapper(), '/data/local/tmp/adb_reboot'], |
| 251 check_return=True) | 251 check_return=True) |
| 252 | 252 |
| 253 | 253 |
| 254 def _LaunchHostHeartbeat(): | 254 def _LaunchHostHeartbeat(): |
| 255 # Kill if existing host_heartbeat | 255 # Kill if existing host_heartbeat |
| 256 _KillHostHeartbeat() | 256 KillHostHeartbeat() |
| 257 # Launch a new host_heartbeat | 257 # Launch a new host_heartbeat |
| 258 logging.info('Spawning host heartbeat...') | 258 logging.info('Spawning host heartbeat...') |
| 259 subprocess.Popen([os.path.join(constants.DIR_SOURCE_ROOT, | 259 subprocess.Popen([os.path.join(constants.DIR_SOURCE_ROOT, |
| 260 'build/android/host_heartbeat.py')]) | 260 'build/android/host_heartbeat.py')]) |
| 261 | 261 |
| 262 | 262 |
| 263 def _KillHostHeartbeat(): | 263 def KillHostHeartbeat(): |
| 264 ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE) | 264 ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE) |
| 265 stdout, _ = ps.communicate() | 265 stdout, _ = ps.communicate() |
| 266 matches = re.findall('\\n.*host_heartbeat.*', stdout) | 266 matches = re.findall('\\n.*host_heartbeat.*', stdout) |
| 267 for match in matches: | 267 for match in matches: |
| 268 logging.info('An instance of host heart beart running... will kill') | 268 logging.info('An instance of host heart beart running... will kill') |
| 269 pid = re.findall(r'(\S+)', match)[1] | 269 pid = re.findall(r'(\S+)', match)[1] |
| 270 subprocess.call(['kill', str(pid)]) | 270 subprocess.call(['kill', str(pid)]) |
| 271 | 271 |
| 272 | 272 |
| 273 def main(): | 273 def main(): |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 args = parser.parse_args() | 317 args = parser.parse_args() |
| 318 constants.SetBuildType(args.target) | 318 constants.SetBuildType(args.target) |
| 319 | 319 |
| 320 run_tests_helper.SetLogLevel(args.verbose) | 320 run_tests_helper.SetLogLevel(args.verbose) |
| 321 | 321 |
| 322 return ProvisionDevices(args) | 322 return ProvisionDevices(args) |
| 323 | 323 |
| 324 | 324 |
| 325 if __name__ == '__main__': | 325 if __name__ == '__main__': |
| 326 sys.exit(main()) | 326 sys.exit(main()) |
| OLD | NEW |