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:
Gerd Hoffmann 2019-06-17 06:38:49 +02:00 committed by Alex Bennée
parent b08ba163aa
commit 796471e975

View File

@ -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: