[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 13/18] qemu.py: 'force' parameter on shutdown()
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC 13/18] qemu.py: 'force' parameter on shutdown() |
Date: |
Thu, 29 Mar 2018 18:38:52 -0300 |
This will allow test code to shut down the VM without trying to
run a 'quit' QMP command.
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 aaba04b3c1..045dca5d02 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -279,13 +279,24 @@ class QEMUMachine(object):
self._popen.wait()
self._post_shutdown()
- def shutdown(self):
- '''Terminate the VM and clean up'''
- if self.is_running():
+ def shutdown(self, force=None):
+ '''Terminate the VM and clean up
+
+ @param force: If True, terminate QEMU process, if False always try
+ clean shutdown, if None terminate QEMU process if
+ clean shutdown fails.
+ '''
+ if not force and self.is_running():
try:
self._qmp.cmd('quit')
except:
- self._popen.kill()
+ if force is None:
+ force = True
+ else:
+ raise
+
+ if force and self.is_running():
+ self._popen.kill()
self.wait()
--
2.14.3
- [Qemu-devel] [RFC 02/18] qmp.py: Fix error handling for Python 3, (continued)
- [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, 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 <=
- [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
- Re: [Qemu-devel] [RFC 00/18] QEMU validator: A method to specify QEMU crash-test cases, no-reply, 2018/03/31