All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amador Pahim <apahim@redhat.com>
To: qemu-devel@nongnu.org
Cc: famz@redhat.com, crosa@redhat.com, ehabkost@redhat.com,
	Amador Pahim <apahim@redhat.com>
Subject: [Qemu-devel] [PATCH v10 8/8] qemu.py: don't launch again before shutdown()
Date: Mon, 13 Nov 2017 23:23:58 +0100	[thread overview]
Message-ID: <20171113222358.30967-9-apahim@redhat.com> (raw)
In-Reply-To: <20171113222358.30967-1-apahim@redhat.com>

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 ab172c3670..c1b0895e94 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()
-- 
2.13.6

  parent reply	other threads:[~2017-11-13 22:25 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-13 22:23 [Qemu-devel] [PATCH v10 0/8] scripts/qemu.py fixes and cleanups Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 1/8] qemu.py: remove unused import Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 2/8] qemu.py: better control of created files Amador Pahim
2017-11-13 23:03   ` Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 3/8] qemu.py: refactor launch() Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 4/8] qemu.py: always cleanup on shutdown() Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 5/8] qemu.py: use poll() instead of 'returncode' Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 6/8] qemu.py: cleanup redundant calls in launch() Amador Pahim
2017-11-13 22:23 ` [Qemu-devel] [PATCH v10 7/8] qemu.py: launch vm only if it's not running Amador Pahim
2017-11-13 22:23 ` Amador Pahim [this message]
2017-11-13 22:52 ` [Qemu-devel] [PATCH v10 0/8] scripts/qemu.py fixes and cleanups no-reply
2017-11-14  7:33 ` Markus Armbruster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171113222358.30967-9-apahim@redhat.com \
    --to=apahim@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=famz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.