aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorEmanuele Giuseppe Esposito <eesposit@redhat.com>2021-08-09 11:00:59 +0200
committerHanna Reitz <hreitz@redhat.com>2021-09-01 12:57:31 +0200
commite2f948a8b579c382065012c34aa7e46304ec8759 (patch)
tree08ed55010998803b1e70eb6dce4b19c309605a8f /python
parentec397e90d21269037280633b6058d1f280e27667 (diff)
downloadqemu-e2f948a8b579c382065012c34aa7e46304ec8759.zip
qemu-e2f948a8b579c382065012c34aa7e46304ec8759.tar.gz
qemu-e2f948a8b579c382065012c34aa7e46304ec8759.tar.bz2
python: qemu: add timer parameter for qmp.accept socket
Also add a new _qmp_timer field to the QEMUMachine class. Let's change the default socket timeout to None, so that if a subclass needs to add a timer, it can be done by modifying this private field. At the same time, restore the timer to be 15 seconds in iotests.py, to give an upper bound to the QMP monitor test command execution. Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: John Snow <jsnow@redhat.com> Acked-by: John Snow <jsnow@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-Id: <20210809090114.64834-2-eesposit@redhat.com> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Diffstat (limited to 'python')
-rw-r--r--python/qemu/machine/machine.py7
-rw-r--r--python/qemu/machine/qtest.py5
2 files changed, 8 insertions, 4 deletions
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py
index 971ed7e..14c4d17 100644
--- a/python/qemu/machine/machine.py
+++ b/python/qemu/machine/machine.py
@@ -97,7 +97,8 @@ class QEMUMachine:
sock_dir: Optional[str] = None,
drain_console: bool = False,
console_log: Optional[str] = None,
- log_dir: Optional[str] = None):
+ log_dir: Optional[str] = None,
+ qmp_timer: Optional[float] = None):
'''
Initialize a QEMUMachine
@@ -112,6 +113,7 @@ class QEMUMachine:
@param drain_console: (optional) True to drain console socket to buffer
@param console_log: (optional) path to console log file
@param log_dir: where to create and keep log files
+ @param qmp_timer: (optional) default QMP socket timeout
@note: Qemu process is not started until launch() is used.
'''
# pylint: disable=too-many-arguments
@@ -121,6 +123,7 @@ class QEMUMachine:
self._binary = binary
self._args = list(args)
self._wrapper = wrapper
+ self._qmp_timer = qmp_timer
self._name = name or "qemu-%d" % os.getpid()
self._base_temp_dir = base_temp_dir
@@ -343,7 +346,7 @@ class QEMUMachine:
def _post_launch(self) -> None:
if self._qmp_connection:
- self._qmp.accept()
+ self._qmp.accept(self._qmp_timer)
def _post_shutdown(self) -> None:
"""
diff --git a/python/qemu/machine/qtest.py b/python/qemu/machine/qtest.py
index d6d9c6a..592be26 100644
--- a/python/qemu/machine/qtest.py
+++ b/python/qemu/machine/qtest.py
@@ -115,7 +115,8 @@ class QEMUQtestMachine(QEMUMachine):
name: Optional[str] = None,
base_temp_dir: str = "/var/tmp",
socket_scm_helper: Optional[str] = None,
- sock_dir: Optional[str] = None):
+ sock_dir: Optional[str] = None,
+ qmp_timer: Optional[float] = None):
# pylint: disable=too-many-arguments
if name is None:
@@ -124,7 +125,7 @@ class QEMUQtestMachine(QEMUMachine):
sock_dir = base_temp_dir
super().__init__(binary, args, name=name, base_temp_dir=base_temp_dir,
socket_scm_helper=socket_scm_helper,
- sock_dir=sock_dir)
+ sock_dir=sock_dir, qmp_timer=qmp_timer)
self._qtest: Optional[QEMUQtestProtocol] = None
self._qtest_path = os.path.join(sock_dir, name + "-qtest.sock")