[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v7 06/11] qemu.py: improve message on negative exit
From: |
Amador Pahim |
Subject: |
[Qemu-devel] [PATCH v7 06/11] qemu.py: improve message on negative exit code |
Date: |
Fri, 18 Aug 2017 19:05:21 +0200 |
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>
---
scripts/qemu.py | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index 902d4c6c78..0bcec4b3b1 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -49,6 +49,7 @@ class QEMUMachine(object):
self._iolog = None
self._socket_scm_helper = socket_scm_helper
self._debug = debug
+ self._qemu_full_args = None
# This can be used to add an unused monitor instance.
def add_monitor_telnet(self, ip, port):
@@ -146,13 +147,18 @@ 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,
- stderr=subprocess.STDOUT,
shell=False)
+ 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()
except:
self.shutdown()
@@ -166,11 +172,17 @@ class QEMUMachine(object):
self._qmp.close()
except:
self._popen.kill()
+ self._popen.wait()
+
+ 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.debug(msg, exitcode, command)
- exitcode = self._popen.wait()
- if exitcode < 0:
- LOG.debug('qemu received signal %i: %s', -exitcode,
- ' '.join(self._args))
self._load_io_log()
self._post_shutdown()
--
2.13.5
[Qemu-devel] [PATCH v7 05/11] qemu.py: cleanup redundant calls in launch(), Amador Pahim, 2017/08/18
[Qemu-devel] [PATCH v7 04/11] qemu.py: use poll() instead of 'returncode', Amador Pahim, 2017/08/18
[Qemu-devel] [PATCH v7 11/11] qemu.py: refactor launch(), Amador Pahim, 2017/08/18
[Qemu-devel] [PATCH v7 08/11] qemu.py: make sure we only remove files we create, Amador Pahim, 2017/08/18