tests/vm: use ssh with pty unconditionally
Allways ask ssh to run with a pseudo terminal. Not having a terminal causes problems now and then. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190617043858.8290-3-kraxel@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
parent
b08ba163aa
commit
796471e975
@ -108,16 +108,14 @@ class BaseVM(object):
|
||||
os.rename(fname + ".download", fname)
|
||||
return fname
|
||||
|
||||
def _ssh_do(self, user, cmd, check, interactive=False):
|
||||
ssh_cmd = ["ssh", "-q",
|
||||
def _ssh_do(self, user, cmd, check):
|
||||
ssh_cmd = ["ssh", "-q", "-t",
|
||||
"-o", "StrictHostKeyChecking=no",
|
||||
"-o", "UserKnownHostsFile=" + os.devnull,
|
||||
"-o", "ConnectTimeout=1",
|
||||
"-p", self.ssh_port, "-i", self._ssh_key_file]
|
||||
for var in self.envvars:
|
||||
ssh_cmd += ['-o', "SendEnv=%s" % var ]
|
||||
if interactive:
|
||||
ssh_cmd += ['-t']
|
||||
assert not isinstance(cmd, str)
|
||||
ssh_cmd += ["%s@127.0.0.1" % user] + list(cmd)
|
||||
logging.debug("ssh_cmd: %s", " ".join(ssh_cmd))
|
||||
@ -129,9 +127,6 @@ class BaseVM(object):
|
||||
def ssh(self, *cmd):
|
||||
return self._ssh_do(self.GUEST_USER, cmd, False)
|
||||
|
||||
def ssh_interactive(self, *cmd):
|
||||
return self._ssh_do(self.GUEST_USER, cmd, False, True)
|
||||
|
||||
def ssh_root(self, *cmd):
|
||||
return self._ssh_do("root", cmd, False)
|
||||
|
||||
@ -285,9 +280,9 @@ def main(vmcls):
|
||||
return 2
|
||||
|
||||
if args.interactive:
|
||||
if vm.ssh_interactive(*cmd) == 0:
|
||||
if vm.ssh(*cmd) == 0:
|
||||
return 0
|
||||
vm.ssh_interactive()
|
||||
vm.ssh()
|
||||
return 3
|
||||
else:
|
||||
if vm.ssh(*cmd) != 0:
|
||||
|
Loading…
Reference in New Issue
Block a user