[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 14/15] qemu.py: improve message on negative exit code
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 14/15] qemu.py: improve message on negative exit code |
Date: |
Fri, 15 Sep 2017 20:37:38 -0300 |
From: Amador Pahim <address@hidden>
The current message shows 'self._args', which contains only part of the
options used in the Qemu command line.
This patch makes the qemu full args list an instance variable and then
uses it in the negative exit code message.
Message was moved outside the 'if is_running' block to make sure it will
be logged if the VM finishes before the call to shutdown().
Signed-off-by: Amador Pahim <address@hidden>
Message-Id: <address@hidden>
[ehabkost: removed superfluous parenthesis]
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
scripts/qemu.py | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index c9bcaafe41..9440261ac3 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -87,6 +87,7 @@ class QEMUMachine(object):
self._socket_scm_helper = socket_scm_helper
self._debug = debug
self._qmp = None
+ self._qemu_full_args = None
def __enter__(self):
return self
@@ -186,13 +187,16 @@ class QEMUMachine(object):
def launch(self):
'''Launch the VM and establish a QMP connection'''
+ self._qemu_full_args = None
devnull = open(os.path.devnull, 'rb')
qemulog = open(self._qemu_log_path, 'wb')
try:
self._pre_launch()
- args = (self._wrapper + [self._binary] + self._base_args() +
- self._args)
- self._popen = subprocess.Popen(args, stdin=devnull, stdout=qemulog,
+ self._qemu_full_args = self._wrapper + [self._binary] +
+ self._base_args() + self._args
+ self._popen = subprocess.Popen(self._qemu_full_args,
+ stdin=devnull,
+ stdout=qemulog,
stderr=subprocess.STDOUT,
shell=False)
self._post_launch()
@@ -212,14 +216,20 @@ class QEMUMachine(object):
self._qmp.close()
except:
self._popen.kill()
+ self._popen.wait()
- exitcode = self._popen.wait()
- if exitcode < 0:
- LOG.warn('qemu received signal %i: %s', -exitcode,
- ' '.join(self._args))
self._load_io_log()
self._post_shutdown()
+ exitcode = self.exitcode()
+ if exitcode is not None and exitcode < 0:
+ msg = 'qemu received signal %i: %s'
+ if self._qemu_full_args:
+ command = ' '.join(self._qemu_full_args)
+ else:
+ command = ''
+ LOG.warn(msg, exitcode, command)
+
def qmp(self, cmd, conv_keys=True, **args):
'''Invoke a QMP command and return the response dict'''
qmp_args = dict()
--
2.13.5
- [Qemu-devel] [PULL 04/15] qemu.py: Simplify QMP key-conversion, (continued)
- [Qemu-devel] [PULL 04/15] qemu.py: Simplify QMP key-conversion, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 05/15] qemu.py: Use custom exceptions rather than Exception, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 07/15] qmp.py: Use object-based class for QEMUMonitorProtocol, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 06/15] qmp.py: Couple of pylint/style fixes, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 08/15] qmp.py: Avoid "has_key" usage, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 09/15] qmp.py: Avoid overriding a builtin object, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 10/15] qtest.py: Few pylint/style fixes, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 11/15] qemu.py: fix is_running() return before first launch(), Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 12/15] qemu.py: avoid writing to stdout/stderr, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 13/15] qemu.py: use os.path.null instead of /dev/null, Eduardo Habkost, 2017/09/15
- [Qemu-devel] [PULL 14/15] qemu.py: improve message on negative exit code,
Eduardo Habkost <=
- [Qemu-devel] [PULL 15/15] qemu.py: include debug information on launch error, Eduardo Habkost, 2017/09/15
- Re: [Qemu-devel] [PULL 00/15] Python queue, 2017-09-15, Peter Maydell, 2017/09/16