1. Removed the system() and system_output() implementations from client/bin/autotest_utils.py so that the ones in common_lib/utils.py are used throughout.
2. Add an optional parameter to system_output() in client/common_lib/utils.py to retain stdout and not throw it away.
3. Renamed ignorestatus to ignore_status to make it consistent with the rest of the code.
4. Modified the tests to use the renamed ignore_status option
5. Modifed the CmdError() implementation in client/common_lib/error.py and made sure all the places on the server side, that expect a AutoservRunError exception are changed to expect and handle a CmdError exception instead.

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1499 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/git.py b/server/git.py
index fce92aa..ad9de34 100644
--- a/server/git.py
+++ b/server/git.py
@@ -89,7 +89,7 @@
 			rv = self.gitcmd(cmd, True)
 			if rv.exit_status != 0:
 				print rv.stderr
-				raise CmdError('Failed to clone git url', rv.exit_status)
+				raise CmdError('Failed to clone git url', rv)
 			else:
 				print rv.stdout
 
@@ -101,7 +101,7 @@
 				if rv.exit_status != 0:
 					print rv.stderr
 					e_msg = 'Failed to pull git repo data'
-					raise CmdError(e_msg, rv.exit_status)
+					raise CmdError(e_msg, rv)
 			else:
 				print 'repo up-to-date'
 
diff --git a/server/hosts/ssh_host.py b/server/hosts/ssh_host.py
index f6391d3..fafd409 100644
--- a/server/hosts/ssh_host.py
+++ b/server/hosts/ssh_host.py
@@ -327,7 +327,13 @@
 		env = " ".join("=".join(pair) for pair in self.env.iteritems())
 		full_cmd = '%s "%s %s"' % (self.ssh_command(connect_timeout),
 		                           env, utils.sh_escape(command))
-		result = utils.run(full_cmd, timeout, True, stdout, stderr)
+		try:
+			result = utils.run(full_cmd, timeout, True, stdout, stderr)
+		# we get a CmdError here only if there is timeout of that command.
+		# Catch that and stuff it into AutoservRunError and raise it.
+		except error.CmdError, cmderr:
+			raise error.AutoservRunError(cmderr.args[0], cmderr.args[1])
+
 		if result.exit_status == 255:  # ssh's exit status for timeout
 			if re.match(r'^ssh: connect to host .* port .*: ' +
 			            r'Connection timed out\r$', result.stderr):