qemu.py: avoid writing to stdout/stderr
commit4738b0a85a0c2031fddc71b51cccebce0c4ba6b1
authorAmador Pahim <apahim@redhat.com>
Fri, 1 Sep 2017 11:28:18 +0000 (1 13:28 +0200)
committerEduardo Habkost <ehabkost@redhat.com>
Fri, 15 Sep 2017 23:12:00 +0000 (15 20:12 -0300)
tree95884cfef2fe04734916a4310223e0bf4f4b90e6
parentf6cf7f5a227ca0c8cc540d78d4f0f943c51ea8d1
qemu.py: avoid writing to stdout/stderr

This module should not write directly to stdout/stderr. Instead, it
should either raise exceptions or just log the messages and let the
callers handle them and decide what to do. For example, scripts could
choose to send the log messages stderr or/and write them to a file if
verbose or debugging mode is enabled.

This patch replaces the writes to stderr by an exception in the
send_fd_scm() when _socket_scm_helper is not set or not present. In the
same method, the subprocess Popen will now redirect the stdout/stderr to
logging.debug instead of writing to system stderr. As consequence, since
the Popen.communicate() is now used (in order to get the stdout), the
further call to wait() became redundant and was replaced by
Popen.returncode.

The shutdown() message on negative exit code will now be logged
to logging.warn instead of written to system stderr.

Signed-off-by: Amador Pahim <apahim@redhat.com>
Message-Id: <20170901112829.2571-3-apahim@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
scripts/qemu.py