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.