X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FVatExecutor.py;h=a0f9634d8c2bedbdc29f36859297b44645560ddf;hp=f0e28a1ae1efae4677a4c6d316c54868db3a57d2;hb=5dc98f39c227fb09ce59caa38d28f0dba8558e4b;hpb=7a518f56201e7fb3a1e096d40248866330656fab diff --git a/resources/libraries/python/VatExecutor.py b/resources/libraries/python/VatExecutor.py index f0e28a1ae1..a0f9634d8c 100644 --- a/resources/libraries/python/VatExecutor.py +++ b/resources/libraries/python/VatExecutor.py @@ -150,6 +150,7 @@ class VatTerminal(object): self._tty, 'sudo -S {}{}'.format(Constants.VAT_BIN_NAME, json_text), self.__VAT_PROMPT) + self._exec_failure = False def __enter__(self): return self @@ -166,9 +167,14 @@ class VatTerminal(object): None if not in JSON mode. """ logger.debug("Executing command in VAT terminal: {}".format(cmd)) - out = self._ssh.interactive_terminal_exec_command(self._tty, + try: + out = self._ssh.interactive_terminal_exec_command(self._tty, cmd, self.__VAT_PROMPT) + except: + self._exec_failure = True + raise + logger.debug("VAT output: {}".format(out)) if self.json: obj_start = out.find('{') @@ -177,7 +183,7 @@ class VatTerminal(object): array_end = out.rfind(']') if -1 == obj_start and -1 == array_start: - raise RuntimeError("No JSON data.") + raise RuntimeError("VAT: no JSON data.") if obj_start < array_start or -1 == array_start: start = obj_start @@ -193,9 +199,11 @@ class VatTerminal(object): def vat_terminal_close(self): """Close VAT terminal.""" - self._ssh.interactive_terminal_exec_command(self._tty, - 'quit', - self.__LINUX_PROMPT) + #interactive terminal is dead, we only need to close session + if not self._exec_failure: + self._ssh.interactive_terminal_exec_command(self._tty, + 'quit', + self.__LINUX_PROMPT) self._ssh.interactive_terminal_close(self._tty) def vat_terminal_exec_cmd_from_template(self, vat_template_file, **args):