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,
	muriloo@linux.vnet.ibm.com, armbru@redhat.com,
	Amador Pahim <apahim@redhat.com>
Subject: [Qemu-devel] [PATCH v11 3/8] qemu.py: refactor launch()
Date: Tue, 14 Nov 2017 11:22:41 +0100	[thread overview]
Message-ID: <20171114102246.22221-4-apahim@redhat.com> (raw)
In-Reply-To: <20171114102246.22221-1-apahim@redhat.com>

This is just an refactor to separate the exception handler from the
actual launch procedure, improving the readability and making future
maintenances in this piece of code easier.

Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Amador Pahim <apahim@redhat.com>
---
 scripts/qemu.py | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/scripts/qemu.py b/scripts/qemu.py
index d5b1cde044..28aa3712c7 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -202,20 +202,14 @@ class QEMUMachine(object):
             self._temp_dir = None
 
     def launch(self):
-        '''Launch the VM and establish a QMP connection'''
+        """
+        Launch the VM and make sure we cleanup and expose the
+        command line/output in case of exception
+        """
         self._iolog = None
         self._qemu_full_args = None
-        devnull = open(os.path.devnull, 'rb')
         try:
-            self._pre_launch()
-            self._qemu_full_args = (self._wrapper + [self._binary] +
-                                    self._base_args() + self._args)
-            self._popen = subprocess.Popen(self._qemu_full_args,
-                                           stdin=devnull,
-                                           stdout=self._qemu_log_file,
-                                           stderr=subprocess.STDOUT,
-                                           shell=False)
-            self._post_launch()
+            self._launch()
         except:
             if self.is_running():
                 self._popen.kill()
@@ -230,6 +224,19 @@ class QEMUMachine(object):
                 LOG.debug('Output: %r', self._iolog)
             raise
 
+    def _launch(self):
+        '''Launch the VM and establish a QMP connection'''
+        devnull = open(os.path.devnull, 'rb')
+        self._pre_launch()
+        self._qemu_full_args = (self._wrapper + [self._binary] +
+                                self._base_args() + self._args)
+        self._popen = subprocess.Popen(self._qemu_full_args,
+                                       stdin=devnull,
+                                       stdout=self._qemu_log_file,
+                                       stderr=subprocess.STDOUT,
+                                       shell=False)
+        self._post_launch()
+
     def wait(self):
         '''Wait for the VM to power off'''
         self._popen.wait()
-- 
2.13.6

  parent reply	other threads:[~2017-11-14 10:23 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-14 10:22 [Qemu-devel] [PATCH v11 0/8] scripts/qemu.py fixes and cleanups Amador Pahim
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 1/8] qemu.py: remove unused import Amador Pahim
2018-01-19 17:26   ` Eduardo Habkost
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 2/8] qemu.py: better control of created files Amador Pahim
2018-01-19 17:26   ` Eduardo Habkost
2017-11-14 10:22 ` Amador Pahim [this message]
2018-01-19 17:29   ` [Qemu-devel] [PATCH v11 3/8] qemu.py: refactor launch() Eduardo Habkost
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 4/8] qemu.py: always cleanup on shutdown() Amador Pahim
2018-01-19 17:33   ` Eduardo Habkost
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 5/8] qemu.py: use poll() instead of 'returncode' Amador Pahim
2018-01-19 17:37   ` Eduardo Habkost
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 6/8] qemu.py: cleanup redundant calls in launch() Amador Pahim
2018-01-19 17:37   ` Eduardo Habkost
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 7/8] qemu.py: launch vm only if it's not running Amador Pahim
2018-01-19 17:51   ` Eduardo Habkost
2017-11-14 10:22 ` [Qemu-devel] [PATCH v11 8/8] qemu.py: don't launch again before shutdown() Amador Pahim
2018-01-19 17:52   ` Eduardo Habkost

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=20171114102246.22221-4-apahim@redhat.com \
    --to=apahim@redhat.com \
    --cc=armbru@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=famz@redhat.com \
    --cc=muriloo@linux.vnet.ibm.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.