Message ID | 20171114102246.22221-9-apahim@redhat.com |
---|---|
State | New |
Headers | show |
Series | scripts/qemu.py fixes and cleanups | expand |
On Tue, Nov 14, 2017 at 11:22:46AM +0100, Amador Pahim wrote: > If a VM is launched, files are created and a cleanup is required before > a new launch. This cleanup is executed by shutdown(), so shutdown() must > be called even if the VM is manually terminated (i.e. using kill). > > This patch creates a control to make sure launch() will not be executed > again if shutdown() is not called after the previous launch(). > > Signed-off-by: Amador Pahim <apahim@redhat.com> > --- > scripts/qemu.py | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/scripts/qemu.py b/scripts/qemu.py > index 0b0b61be39..862920099c 100644 > --- a/scripts/qemu.py > +++ b/scripts/qemu.py > @@ -89,6 +89,7 @@ class QEMUMachine(object): > self._qemu_full_args = None > self._test_dir = test_dir > self._temp_dir = None > + self._launched = False > > # just in case logging wasn't configured by the main script: > logging.basicConfig() > @@ -210,10 +211,14 @@ class QEMUMachine(object): > if self.is_running(): > raise QEMUMachineError('VM already running') > > + if self._launched: > + raise QEMUMachineError('Shutdown pending after previous launch') I believe "VM already launched" would be clearer than "shutdown pending".
diff --git a/scripts/qemu.py b/scripts/qemu.py index 0b0b61be39..862920099c 100644 --- a/scripts/qemu.py +++ b/scripts/qemu.py @@ -89,6 +89,7 @@ class QEMUMachine(object): self._qemu_full_args = None self._test_dir = test_dir self._temp_dir = None + self._launched = False # just in case logging wasn't configured by the main script: logging.basicConfig() @@ -210,10 +211,14 @@ class QEMUMachine(object): if self.is_running(): raise QEMUMachineError('VM already running') + if self._launched: + raise QEMUMachineError('Shutdown pending after previous launch') + self._iolog = None self._qemu_full_args = None try: self._launch() + self._launched = True except: self.shutdown() @@ -266,6 +271,8 @@ class QEMUMachine(object): command = '' LOG.warn(msg, exitcode, command) + self._launched = False + def qmp(self, cmd, conv_keys=True, **args): '''Invoke a QMP command and return the response dict''' qmp_args = dict()
If a VM is launched, files are created and a cleanup is required before a new launch. This cleanup is executed by shutdown(), so shutdown() must be called even if the VM is manually terminated (i.e. using kill). This patch creates a control to make sure launch() will not be executed again if shutdown() is not called after the previous launch(). Signed-off-by: Amador Pahim <apahim@redhat.com> --- scripts/qemu.py | 7 +++++++ 1 file changed, 7 insertions(+)