OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 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 """A class to keep track of devices across builds and report state.""" | 7 """A class to keep track of devices across builds and report state.""" |
8 | 8 |
9 import optparse | 9 import optparse |
10 import os | 10 import os |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 # Only send email if the first time a particular device goes offline | 109 # Only send email if the first time a particular device goes offline |
110 last_missing = ReadDeviceList('.last_missing') | 110 last_missing = ReadDeviceList('.last_missing') |
111 new_missing_devs = set(missing_devs) - set(last_missing) | 111 new_missing_devs = set(missing_devs) - set(last_missing) |
112 | 112 |
113 if new_missing_devs: | 113 if new_missing_devs: |
114 msg_body = '\r\n'.join( | 114 msg_body = '\r\n'.join( |
115 ['From: %s' % from_address, | 115 ['From: %s' % from_address, |
116 'To: %s' % to_address, | 116 'To: %s' % to_address, |
117 'Subject: %s' % subject, | 117 'Subject: %s' % subject, |
118 '', body]) | 118 '', body]) |
119 server = smtplib.SMTP('localhost') | 119 try: |
120 server.sendmail(from_address, [to_address], msg_body) | 120 server = smtplib.SMTP('localhost') |
121 server.quit() | 121 server.sendmail(from_address, [to_address], msg_body) |
| 122 server.quit() |
| 123 except Exception as e: |
| 124 print 'Failed to send alert email. Error: %s' % e |
122 else: | 125 else: |
123 new_devs = set(adb_online_devs) - set(last_devices) | 126 new_devs = set(adb_online_devs) - set(last_devices) |
124 if new_devs and os.path.exists(last_devices_path): | 127 if new_devs and os.path.exists(last_devices_path): |
125 buildbot_report.PrintWarning() | 128 buildbot_report.PrintWarning() |
126 buildbot_report.PrintSummaryText( | 129 buildbot_report.PrintSummaryText( |
127 '%d new devices detected' % len(new_devs)) | 130 '%d new devices detected' % len(new_devs)) |
128 print ('New devices detected %s. And now back to your ' | 131 print ('New devices detected %s. And now back to your ' |
129 'regularly scheduled program.' % list(new_devs)) | 132 'regularly scheduled program.' % list(new_devs)) |
130 WriteDeviceList('.last_devices', (adb_online_devs + last_devices)) | 133 WriteDeviceList('.last_devices', (adb_online_devs + last_devices)) |
131 WriteDeviceList('.last_missing', missing_devs) | 134 WriteDeviceList('.last_missing', missing_devs) |
(...skipping 18 matching lines...) Expand all Loading... |
150 unique_types = list(set(types)) | 153 unique_types = list(set(types)) |
151 unique_builds = list(set(builds)) | 154 unique_builds = list(set(builds)) |
152 | 155 |
153 buildbot_report.PrintMsg('Online devices: %d. Device types %s, builds %s' | 156 buildbot_report.PrintMsg('Online devices: %d. Device types %s, builds %s' |
154 % (len(devices), unique_types, unique_builds)) | 157 % (len(devices), unique_types, unique_builds)) |
155 print '\n'.join(reports) | 158 print '\n'.join(reports) |
156 CheckForMissingDevices(options, devices) | 159 CheckForMissingDevices(options, devices) |
157 | 160 |
158 if __name__ == '__main__': | 161 if __name__ == '__main__': |
159 sys.exit(main()) | 162 sys.exit(main()) |
OLD | NEW |