On the server side, we should log both the start of a reboot and the
successful completion, and failures should be logged as ABORT messages
followed by an exception.
From: John Admanski <jadmanski@google.com>
Signed-off-by: Martin Bligh <mbligh@google.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@907 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/hosts/ssh_host.py b/server/hosts/ssh_host.py
index b79f63f..5b291a9 100644
--- a/server/hosts/ssh_host.py
+++ b/server/hosts/ssh_host.py
@@ -192,12 +192,15 @@
def _wait_for_restart(self, timeout):
if not self.wait_down(300): # Make sure he's dead, Jim
- self.__record("FAIL", None, "reboot")
- raise errors.AutoservRebootError("Host would not shut down")
+ self.__record("ABORT", None, "reboot", "failed")
+ raise errors.AutoservRebootError("Host did not shut down")
self.wait_up(timeout)
time.sleep(2) # this is needed for complete reliability
- if not self.wait_up(timeout):
- self.__record("FAIL", None, "reboot")
+ if self.wait_up(timeout):
+ self.__record("GOOD", None, "reboot", "complete")
+ else:
+ self.__record("ABORT", None, "reboot", "failed")
+ raise errors.AutoservRebootError("Host did not return from reboot")
print "Reboot complete"
@@ -363,8 +366,12 @@
label = self.bootloader.get_titles()[default]
self.bootloader.add_args(label, kernel_args)
print "Reboot: initiating reboot"
- self.__record("GOOD", None, "reboot")
- self.run('(sleep 5; reboot) >/dev/null 2>&1 &')
+ self.__record("GOOD", None, "reboot", "started")
+ try:
+ self.run('(sleep 5; reboot) >/dev/null 2>&1 &')
+ except AutoservRunError:
+ self.__record("ABORT", None, "reboot", "failed")
+ raise
if wait:
self._wait_for_restart(timeout)
self.__load_netconsole_module() # if the builtin fails