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

Unified Diff: build/android/device_status_check.py

Issue 11637046: Add check for device provisioning (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Switch to setupwizard for provisioning check Created 8 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/device_status_check.py
diff --git a/build/android/device_status_check.py b/build/android/device_status_check.py
index 3d695a2235fe17176f1e0c5d136adbb64edb3223..8ae1377e5bd62d254cdfd3fe0230f9db5580edc9 100755
--- a/build/android/device_status_check.py
+++ b/build/android/device_status_check.py
@@ -10,9 +10,10 @@ import optparse
import os
import smtplib
import sys
+import re
from pylib import buildbot_report
-from pylib.android_commands import GetAttachedDevices
+from pylib import android_commands
from pylib.cmd_helper import GetCmdOutput
@@ -33,21 +34,29 @@ def DeviceInfo(serial):
device_type = AdbShellCmd('getprop ro.build.product')
device_build = AdbShellCmd('getprop ro.build.id')
+ setup_wizard_disabled = AdbShellCmd(
+ 'getprop ro.setupwizard.mode') == 'DISABLED'
+ battery = AdbShellCmd('dumpsys battery')
+ battery_level = int(re.findall('level: (\d+)', battery)[0])
+ battery_temp = float(re.findall('temperature: (\d+)', battery)[0])/10
report = ['Device %s (%s)' % (serial, device_type),
' Build: %s (%s)' % (device_build,
AdbShellCmd('getprop ro.build.fingerprint')),
- ' Battery: %s%%' % AdbShellCmd('dumpsys battery | grep level '
- "| awk '{print $2}'"),
- ' Battery temp: %s' % AdbShellCmd('dumpsys battery'
- '| grep temp '
- "| awk '{print $2}'"),
+ ' Battery: %s%%' % battery_level,
+ ' Battery temp: %s' % battery_temp,
' IMEI slice: %s' % AdbShellCmd('dumpsys iphonesubinfo '
'| grep Device'
"| awk '{print $4}'")[-6:],
' Wifi IP: %s' % AdbShellCmd('getprop dhcp.wlan0.ipaddress'),
'']
- return device_type, device_build, '\n'.join(report)
+ warnings = []
+ if battery_level < 5:
+ warnings += ['critically low battery']
+ if not setup_wizard_disabled:
+ warnings += ['Setup wizard not disabled. Was it provisioned correctly?']
+
+ return device_type, device_build, '\n'.join(report), warnings
def CheckForMissingDevices(options, adb_online_devs):
@@ -92,8 +101,8 @@ def CheckForMissingDevices(options, adb_online_devs):
if missing_devs:
from_address = 'buildbot@chromium.org'
to_address = 'chromium-android-device-alerts@google.com'
- bot_name = os.environ['BUILDBOT_BUILDERNAME']
- slave_name = os.environ['BUILDBOT_SLAVENAME']
+ bot_name = os.environ.get('BUILDBOT_BUILDERNAME')
+ slave_name = os.environ.get('BUILDBOT_SLAVENAME')
num_online_devs = len(adb_online_devs)
subject = 'Devices offline on %s, %s (%d remaining).' % (slave_name,
bot_name,
@@ -110,7 +119,8 @@ def CheckForMissingDevices(options, adb_online_devs):
'SHERIFF: See go/chrome_device_monitor',
'Cache file: %s\n\n' % last_devices_path,
'adb devices: %s' % GetCmdOutput(['adb', 'devices']),
- 'adb devices(GetAttachedDevices): %s' % GetAttachedDevices()])
+ 'adb devices(GetAttachedDevices): %s' %
+ android_commands.GetAttachedDevices()])
print body
@@ -118,7 +128,7 @@ def CheckForMissingDevices(options, adb_online_devs):
last_missing = ReadDeviceList('.last_missing')
new_missing_devs = set(missing_devs) - set(last_missing)
- if new_missing_devs:
+ if new_missing_devs and bot_name:
msg_body = '\r\n'.join(
['From: %s' % from_address,
'To: %s' % to_address,
@@ -153,10 +163,10 @@ def main():
if args:
parser.error('Unknown options %s' % args)
buildbot_report.PrintNamedStep('Device Status Check')
- devices = GetAttachedDevices()
- types, builds, reports = [], [], []
+ devices = android_commands.GetAttachedDevices()
+ types, builds, reports, errors = [], [], [], []
if devices:
- types, builds, reports = zip(*[DeviceInfo(dev) for dev in devices])
+ types, builds, reports, errors = zip(*[DeviceInfo(dev) for dev in devices])
unique_types = list(set(types))
unique_builds = list(set(builds))
@@ -164,6 +174,14 @@ def main():
buildbot_report.PrintMsg('Online devices: %d. Device types %s, builds %s'
% (len(devices), unique_types, unique_builds))
print '\n'.join(reports)
+
+ full_errors = []
+ for serial, device_errors in zip(devices, errors):
+ full_errors.extend('%s: %s' % (serial, error) for error in device_errors)
+ if full_errors:
+ buildbot_report.PrintWarning()
+ print '\n'.join(full_errors)
+
CheckForMissingDevices(options, devices)
if __name__ == '__main__':
« 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