tests: Fix ubuntu.i386 image initialization
diff mbox series

Message ID 20180322034753.6301-1-famz@redhat.com
State New
Headers show
Series
  • tests: Fix ubuntu.i386 image initialization
Related show

Commit Message

Fam Zheng March 22, 2018, 3:47 a.m. UTC
The apt-get commands we run through ssh expect certain features of the
tty, and refuses to work if /dev/null is used. It is ugly, but easy to
satisfy.

Actually, there is no reason to hide the output. It just makes things
harder to diagnose. We can always redirect in the Makefile, so don't do
it conditionally here.

Reported-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
---
 tests/vm/basevm.py | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

Philippe Mathieu-Daudé March 22, 2018, 8:33 a.m. UTC | #1
On 03/22/2018 12:47 AM, Fam Zheng wrote:
> The apt-get commands we run through ssh expect certain features of the
> tty, and refuses to work if /dev/null is used. It is ugly, but easy to
> satisfy.
> 
> Actually, there is no reason to hide the output. It just makes things
> harder to diagnose. We can always redirect in the Makefile, so don't do
> it conditionally here.
> 
> Reported-by: Eric Blake <eblake@redhat.com>
> Signed-off-by: Fam Zheng <famz@redhat.com>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

> ---
>  tests/vm/basevm.py | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 686d88decf..3a2d508c35 100755
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -107,10 +107,7 @@ class BaseVM(object):
>          assert not isinstance(cmd, str)
>          ssh_cmd += ["%s@127.0.0.1" % user] + list(cmd)
>          logging.debug("ssh_cmd: %s", " ".join(ssh_cmd))
> -        r = subprocess.call(ssh_cmd,
> -                            stdin=sys.stdin if interactive else self._devnull,
> -                            stdout=sys.stdout if interactive else self._stdout,
> -                            stderr=sys.stderr if interactive else self._stderr)
> +        r = subprocess.call(ssh_cmd)
>          if check and r != 0:
>              raise Exception("SSH command failed: %s" % cmd)
>          return r
>
Eric Blake March 22, 2018, 1:07 p.m. UTC | #2
On 03/21/2018 10:47 PM, Fam Zheng wrote:
> The apt-get commands we run through ssh expect certain features of the
> tty, and refuses to work if /dev/null is used. It is ugly, but easy to
> satisfy.
> 
> Actually, there is no reason to hide the output. It just makes things
> harder to diagnose. We can always redirect in the Makefile, so don't do
> it conditionally here.
> 
> Reported-by: Eric Blake <eblake@redhat.com>
> Signed-off-by: Fam Zheng <famz@redhat.com>
> ---
>   tests/vm/basevm.py | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)


This got the .img initialization a lot further, although the log still 
shows that there is still a communication glitch early on:

...
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
   cloud-initramfs-growroot
0 upgraded, 1 newly installed, 0 to remove and 25 not upgraded.
Need to get 5,570 B of archives.
After this operation, 23.6 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/universe i386 
cloud-initramfs-growroot all 0.27ubuntu1.5 [5,570 B]
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Fetched 5,570 B in 1s (4,554 B/s)
Selecting previously unselected package cloud-initramfs-growroot.
...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
   acpica-tools autotools-dev binutils build-essential cpp cpp-5 debhelper
   device-tree-compiler dh-strip-nondeterminism dpkg-dev g++ g++-5 gcc gcc-5
...


But despite that glitch, the subsequent package updates succeeded, and 
the VM eventually progressed to compiling qemu instead of dying early.  So

Tested-by: Eric Blake <eblake@redhat.com>

Patch
diff mbox series

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 686d88decf..3a2d508c35 100755
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -107,10 +107,7 @@  class BaseVM(object):
         assert not isinstance(cmd, str)
         ssh_cmd += ["%s@127.0.0.1" % user] + list(cmd)
         logging.debug("ssh_cmd: %s", " ".join(ssh_cmd))
-        r = subprocess.call(ssh_cmd,
-                            stdin=sys.stdin if interactive else self._devnull,
-                            stdout=sys.stdout if interactive else self._stdout,
-                            stderr=sys.stderr if interactive else self._stderr)
+        r = subprocess.call(ssh_cmd)
         if check and r != 0:
             raise Exception("SSH command failed: %s" % cmd)
         return r