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