diff options
Diffstat (limited to 'resources/libraries')
-rw-r--r-- | resources/libraries/python/QemuUtils.py | 4 | ||||
-rw-r--r-- | resources/libraries/python/ssh.py | 9 |
2 files changed, 9 insertions, 4 deletions
diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py index 37a8863a2e..a4e14d2427 100644 --- a/resources/libraries/python/QemuUtils.py +++ b/resources/libraries/python/QemuUtils.py @@ -18,7 +18,7 @@ import json from robot.api import logger -from resources.libraries.python.ssh import SSH +from resources.libraries.python.ssh import SSH, SSHTimeout from resources.libraries.python.constants import Constants from resources.libraries.python.topology import NodeType @@ -519,7 +519,7 @@ class QemuUtils(object): # Wait until VM boot try: self._wait_until_vm_boot() - except RuntimeError: + except (RuntimeError, SSHTimeout): self.qemu_kill() self.qemu_clear_socks() raise diff --git a/resources/libraries/python/ssh.py b/resources/libraries/python/ssh.py index 90ac0be2dc..3a2c1b661a 100644 --- a/resources/libraries/python/ssh.py +++ b/resources/libraries/python/ssh.py @@ -29,6 +29,11 @@ __all__ = ["exec_cmd", "exec_cmd_no_error"] # TODO: load priv key +class SSHTimeout(Exception): + """This exception is raised when a timeout occurs.""" + pass + + class SSH(object): """Contains methods for managing and using SSH connections.""" @@ -118,7 +123,7 @@ class SSH(object): :type timeout: int :return return_code, stdout, stderr :rtype: tuple(int, str, str) - :raise socket.timeout: If command is not finished in timeout time. + :raise SSHTimeout: If command is not finished in timeout time. """ start = time() stdout = StringIO.StringIO() @@ -144,7 +149,7 @@ class SSH(object): stderr.write(chan.recv_stderr(self.__MAX_RECV_BUF)) if time() - start > timeout: - raise socket.timeout( + raise SSHTimeout( 'Timeout exception.\n' 'Current contents of stdout buffer: {0}\n' 'Current contents of stderr buffer: {1}\n' |