[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 09/18] qemu.py: Make monitor optional
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 09/18] qemu.py: Make monitor optional |
Date: |
Thu, 29 Mar 2018 18:38:48 -0300 |
This will allow us to use the QEMUMachine class on test cases
that don't use QMP at all.
Signed-off-by: Eduardo Habkost <address@hidden>
---
scripts/qemu.py | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index 1241e7f10b..e82540a235 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -54,7 +54,7 @@ class QEMUMachine(object):
'''
def __init__(self, binary, args=None, wrapper=None, name=None,
- test_dir="/var/tmp", monitor_address=None,
+ test_dir="/var/tmp", monitor_address=None, qmp=True,
socket_scm_helper=None):
'''
Initialize a QEMUMachine
@@ -65,6 +65,7 @@ class QEMUMachine(object):
@param name: prefix for socket and log file names (default: qemu-PID)
@param test_dir: where to create socket and log file
@param monitor_address: address for QMP monitor
+ @param qmp: if False, disable QMP monitor
@param socket_scm_helper: helper program, required for send_fd_scm()"
@note: Qemu process is not started until launch() is used.
'''
@@ -90,6 +91,7 @@ class QEMUMachine(object):
self._test_dir = test_dir
self._temp_dir = None
self._launched = False
+ self._qmp_enabled = qmp
# just in case logging wasn't configured by the main script:
logging.basicConfig()
@@ -168,13 +170,18 @@ class QEMUMachine(object):
self._iolog = iolog.read()
def _vm_monitor(self):
- if self._monitor_address is not None:
+ if not self._qmp_enabled:
+ return None
+ elif self._monitor_address is not None:
return self._monitor_address
else:
return os.path.join(self._temp_dir, self._name + "-monitor.sock")
def _monitor_args(self):
addr = self._vm_monitor()
+ if addr is None:
+ return []
+
if isinstance(addr, tuple):
moncdev = "socket,id=mon,host=%s,port=%s" % (addr[0], addr[1])
else:
@@ -193,10 +200,14 @@ class QEMUMachine(object):
self._qemu_log_path = os.path.join(self._temp_dir, self._name + ".log")
self._qemu_log_file = open(self._qemu_log_path, 'wb')
- self._qmp = qmp.qmp.QEMUMonitorProtocol(self._vm_monitor(),
server=True)
+ self._qmp = \
+ qmp.qmp.QEMUMonitorProtocol(self._vm_monitor(), server=True) \
+ if self._qmp_enabled \
+ else None
def _post_launch(self):
- self._qmp.accept()
+ if self._qmp:
+ self._qmp.accept()
def _post_shutdown(self):
if self._qmp is not None:
--
2.14.3
- [Qemu-devel] [RFC 00/18] QEMU validator: A method to specify QEMU crash-test cases, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 01/18] qmp.py: Make it safe to call close() any time, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 02/18] qmp.py: Fix error handling for Python 3, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 03/18] qmp.py: Cleanly handle unexpectedly closed socket, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 04/18] qemu.py: Make _vm_monitor a method, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 05/18] qemu.py: Split _base_args(), Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 06/18] qemu.py: Move _load_io_log() call to _post_shutdown(), Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 07/18] qemu.py: Use wait() logic inside shutdown(), Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 08/18] qemu.py: Close _qmp inside _post_shutdown(), Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 09/18] qemu.py: Make monitor optional,
Eduardo Habkost <=
- [Qemu-devel] [RFC 10/18] qemu.py: Set _launched = False on _post_shutdown, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 11/18] qemu.py: Log crashes inside _post_shutdown(), Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 13/18] qemu.py: 'force' parameter on shutdown(), Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 12/18] qemu.py: Only wait for process if it's still running, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 14/18] qemu.py: Don't try to quit cleanly on exceptions, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 15/18] qemu.py: qmp_obj() method, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 16/18] qemu.py: is_launched() method, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 17/18] validator.py script, Eduardo Habkost, 2018/03/29
- [Qemu-devel] [RFC 18/18] Collection of validator.py test cases, Eduardo Habkost, 2018/03/29
- Re: [Qemu-devel] [RFC 00/18] QEMU validator: A method to specify QEMU crash-test cases, no-reply, 2018/03/30