Improve the standard error message in the lab if an update fails.
Produce a more meaningful (but still generic) error message in the lab
if an update fails to apply.
BUG=chromium:246779
TEST=New unittest + trybots
Change-Id: Ib3be5fe27d7fd60732f9d20db4a08d1994358939
Reviewed-on: https://chromium-review.googlesource.com/179543
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
diff --git a/client/common_lib/cros/autoupdater.py b/client/common_lib/cros/autoupdater.py
index af2dae3..e641c4a 100644
--- a/client/common_lib/cros/autoupdater.py
+++ b/client/common_lib/cros/autoupdater.py
@@ -222,9 +222,18 @@
logging.info('Triggering update via: %s', autoupdate_cmd)
try:
self._run(autoupdate_cmd)
- except error.AutoservRunError, e:
- raise RootFSUpdateError('Update triggering failed on %s: %s' %
- (self.host.hostname, str(e)))
+ except (error.AutoservSshPermissionDeniedError,
+ error.AutoservSSHError,
+ error.AutoservSSHTimeout) as e:
+ raise RootFSUpdateError('SSH on %s is seeing %s' %
+ (self.host.hostname, type(e).__name__))
+
+ except error.AutoservRunError as e:
+ raise RootFSUpdateError(
+ 'devserver unreachable, payload unavailable, '
+ 'or AU bug (unlikely) on %s: %s' %
+ (self.host.hostname, type(e).__name__))
+
def _verify_update_completed(self):
"""Verifies that an update has completed.