oeqa/utils/sshcontrol: increase and log timeout in output
authorStefan Stanacar <stefanx.stanacar@intel.com>
Wed, 24 Jul 2013 08:43:18 +0000 (11:43 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 3 Aug 2013 09:33:02 +0000 (10:33 +0100)
Increase a bit the timeout for ssh commands and also
write in the output that the command timed out (it's
easier to see that in a test fail than checking the ssh log)

(From OE-Core rev: 652a1762c8adc3b8cb1c6db2ee4a5234a7436c8d)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/utils/sshcontrol.py

index 8f98c45..7de7c3e 100644 (file)
@@ -13,7 +13,7 @@ import os
 
 class SSHControl(object):
 
-    def __init__(self, host=None, timeout=200, logfile=None):
+    def __init__(self, host=None, timeout=300, logfile=None):
         self.host = host
         self.timeout = timeout
         self._out = ''
@@ -52,9 +52,10 @@ class SSHControl(object):
             self._ret = sshconn.poll()
         else:
             if timeout is None:
-                endtime = time.time() + self.timeout
+                tdelta = self.timeout
             else:
-                endtime = time.time() + timeout
+                tdelta = timeout
+            endtime = time.time() + tdelta
             while sshconn.poll() is None and time.time() < endtime:
                 time.sleep(1)
             # process hasn't returned yet
@@ -64,7 +65,8 @@ class SSHControl(object):
                 sshconn.kill()
                 self._out = sshconn.stdout.read()
                 sshconn.stdout.close()
-                self.log("[!!! process killed]")
+                self._out += "\n[!!! SSH command timed out after %d seconds and it was killed]" % tdelta
+                self.log("[!!! SSH command timed out after %d seconds and it was killed]" % tdelta)
             else:
                 self._out = sshconn.stdout.read()
                 self._ret = sshconn.poll()