from resources.libraries.python.ssh import SSH
from resources.libraries.python.constants import Constants
+from resources.libraries.python.VatHistory import VatHistory
__all__ = ['VatExecutor']
Clean up VAT JSON output from clutter like vat# prompts and such.
:param json_output: Cluttered JSON output.
- :return: Cleaned up output JSON string.
+ :returns: Cleaned up output JSON string.
"""
retval = json_output
"""
- __VAT_PROMPT = "vat# "
- __LINUX_PROMPT = ":~$ "
+ __VAT_PROMPT = ("vat# ", )
+ __LINUX_PROMPT = (":~$ ", "~]$ ")
def __init__(self, node, json_param=True):
json_text = ' json' if json_param else ''
self.json = json_param
+ self._node = node
self._ssh = SSH()
- self._ssh.connect(node)
+ self._ssh.connect(self._node)
self._tty = self._ssh.interactive_terminal_open()
self._ssh.interactive_terminal_exec_command(
self._tty,
:return: Command output in python representation of JSON format or
None if not in JSON mode.
"""
+ VatHistory.add_to_vat_history(self._node, cmd)
logger.debug("Executing command in VAT terminal: {}".format(cmd))
try:
- out = self._ssh.interactive_terminal_exec_command(self._tty,
- cmd,
- self.__VAT_PROMPT)
+ out = self._ssh.interactive_terminal_exec_command(self._tty, cmd,
+ self.__VAT_PROMPT)
except:
self._exec_failure = True
raise
array_start = out.find('[')
array_end = out.rfind(']')
- if -1 == obj_start and -1 == array_start:
+ if obj_start == -1 and array_start == -1:
raise RuntimeError("VAT: no JSON data.")
- if obj_start < array_start or -1 == array_start:
+ if obj_start < array_start or array_start == -1:
start = obj_start
end = obj_end + 1
else:
def vat_terminal_close(self):
"""Close VAT terminal."""
- #interactive terminal is dead, we only need to close session
+ # interactive terminal is dead, we only need to close session
if not self._exec_failure:
self._ssh.interactive_terminal_exec_command(self._tty,
'quit',