[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 04/18] qemu.py: Make _vm_monitor a method
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 04/18] qemu.py: Make _vm_monitor a method |
Date: |
Thu, 29 Mar 2018 18:38:43 -0300 |
Use a function instead of a data field. Less state to keep track
of, less chance of bugs.
Signed-off-by: Eduardo Habkost <address@hidden>
---
scripts/qemu.py | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index 08a3e9af5a..c051c4525a 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -76,7 +76,6 @@ class QEMUMachine(object):
name = "qemu-%d" % os.getpid()
self._name = name
self._monitor_address = monitor_address
- self._vm_monitor = None
self._qemu_log_path = None
self._qemu_log_file = None
self._popen = None
@@ -168,29 +167,28 @@ class QEMUMachine(object):
with open(self._qemu_log_path, "r") as iolog:
self._iolog = iolog.read()
+ def _vm_monitor(self):
+ if self._monitor_address is not None:
+ return self._monitor_address
+ else:
+ return os.path.join(self._temp_dir, self._name + "-monitor.sock")
+
def _base_args(self):
- if isinstance(self._monitor_address, tuple):
- moncdev = "socket,id=mon,host=%s,port=%s" % (
- self._monitor_address[0],
- self._monitor_address[1])
+ addr = self._vm_monitor()
+ if isinstance(addr, tuple):
+ moncdev = "socket,id=mon,host=%s,port=%s" % (addr[0], addr[1])
else:
- moncdev = 'socket,id=mon,path=%s' % self._vm_monitor
+ moncdev = 'socket,id=mon,path=%s' % (addr)
return ['-chardev', moncdev,
'-mon', 'chardev=mon,mode=control',
'-display', 'none', '-vga', 'none']
def _pre_launch(self):
self._temp_dir = tempfile.mkdtemp(dir=self._test_dir)
- if self._monitor_address is not None:
- self._vm_monitor = self._monitor_address
- else:
- self._vm_monitor = os.path.join(self._temp_dir,
- self._name + "-monitor.sock")
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)
def _post_launch(self):
self._qmp.accept()
--
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 <=
- [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, 2018/03/29
- [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