def execute_script(self, local_path, node, timeout=10, json_out=True): """Copy local_path script to node, execute it and return result. Returns (rc, stdout, stderr tuple). """ ssh = SSH() ssh.connect(node) local_basename = os.path.basename(local_path) remote_file_path = self.__TMP_DIR + local_basename remote_file_out = remote_file_path + ".out" ssh.scp(local_path, remote_file_path) cmd = "sudo -S {vat} {json} < {input}".format( vat=self.__VAT_BIN, json="json" if json_out == True else "", input=remote_file_path) (ret_code, stdout, stderr) = ssh.exec_command(cmd, timeout) self._ret_code = ret_code self._stdout = stdout self._stderr = stderr logger.trace("Command '{0}' returned {1}'".format(cmd, self._ret_code)) logger.trace("stdout: '{0}'".format(self._stdout)) logger.trace("stderr: '{0}'".format(self._stderr)) #TODO: download vpp_api_test output file self._delete_files(node, remote_file_path, remote_file_out)
def execute_script(self, local_path, node, timeout=10, json_out=True): """Copy local_path script to node, execute it and return result. Returns (rc, stdout, stderr tuple). """ ssh = SSH() ssh.connect(node) local_basename = os.path.basename(local_path) remote_file_path = self.__TMP_DIR + local_basename remote_file_out = remote_file_path + ".out" ssh.scp(local_path, remote_file_path) cmd = "sudo -S {vat} {json} < {input}".format(vat=self.__VAT_BIN, json="json" if json_out == True else "", input=remote_file_path) (ret_code, stdout, stderr) = ssh.exec_command(cmd, timeout) self._ret_code = ret_code self._stdout = stdout self._stderr = stderr logger.trace("Command '{0}' returned {1}'".format(cmd, self._ret_code)) logger.trace("stdout: '{0}'".format(self._stdout)) logger.trace("stderr: '{0}'".format(self._stderr)) #TODO: download vpp_api_test output file self._delete_files(node, remote_file_path, remote_file_out)
def setup_dut(self, node): ssh = SSH() ssh.connect(node) ssh.scp('resources/libraries/bash/dut_setup.sh', '/tmp/dut_setup.sh') (ret_code, stdout, stderr) = \ ssh.exec_command('sudo -Sn bash /tmp/dut_setup.sh') logger.trace(stdout) if 0 != int(ret_code): logger.error('DUT {0} setup script failed: "{1}"'. format(node['host'], stdout + stderr)) raise Exception('DUT test setup script failed at node {}'. format(node['host']))
def __copy_tarball_to_node(self, tarball, node): logger.console('Copying tarball to {0}'.format(node['host'])) ssh = SSH() ssh.connect(node) ssh.scp(tarball, "/tmp/")