[v11,4/8] qemu.py: always cleanup on shutdown()

Message ID 20171114102246.22221-5-apahim@redhat.com
State New
Headers show
Series
  • scripts/qemu.py fixes and cleanups
Related show

Commit Message

Amador Pahim Nov. 14, 2017, 10:22 a.m.
Currently we only cleanup on shutdown() if the VM is running.

To make sure we will always cleanup, this patch makes the
self._load_io_log() and the self._post_shutdown() to
always be called on shutdown(), regardless the VM running state.

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

Comments

Eduardo Habkost Jan. 19, 2018, 5:33 p.m. | #1
On Tue, Nov 14, 2017 at 11:22:42AM +0100, Amador Pahim wrote:
> Currently we only cleanup on shutdown() if the VM is running.
> 
> To make sure we will always cleanup, this patch makes the
> self._load_io_log() and the self._post_shutdown() to
> always be called on shutdown(), regardless the VM running state.
> 
> Reviewed-by: Fam Zheng <famz@redhat.com>
> Signed-off-by: Amador Pahim <apahim@redhat.com>
> ---
>  scripts/qemu.py | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/scripts/qemu.py b/scripts/qemu.py
> index 28aa3712c7..7bd10b1a1d 100644
> --- a/scripts/qemu.py
> +++ b/scripts/qemu.py
> @@ -162,8 +162,9 @@ class QEMUMachine(object):
>          return self._popen.pid
>  
>      def _load_io_log(self):
> -        with open(self._qemu_log_path, "r") as iolog:
> -            self._iolog = iolog.read()
> +        if self._qemu_log_path is not None:
> +            with open(self._qemu_log_path, "r") as iolog:
> +                self._iolog = iolog.read()
>  
>      def _base_args(self):
>          if isinstance(self._monitor_address, tuple):
> @@ -254,8 +255,8 @@ class QEMUMachine(object):
>                  self._popen.kill()
>              self._popen.wait()
>  
> -            self._load_io_log()
> -            self._post_shutdown()
> +        self._load_io_log()

_load_io_log() is now safe to call at any time thanks to the hunk
above.

> +        self._post_shutdown()

_post_shutdown() is safe to call at any time thanks to patch 2/8.

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

>  
>          exitcode = self.exitcode()
>          if exitcode is not None and exitcode < 0:
> -- 
> 2.13.6
> 
>

Patch

diff --git a/scripts/qemu.py b/scripts/qemu.py
index 28aa3712c7..7bd10b1a1d 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -162,8 +162,9 @@  class QEMUMachine(object):
         return self._popen.pid
 
     def _load_io_log(self):
-        with open(self._qemu_log_path, "r") as iolog:
-            self._iolog = iolog.read()
+        if self._qemu_log_path is not None:
+            with open(self._qemu_log_path, "r") as iolog:
+                self._iolog = iolog.read()
 
     def _base_args(self):
         if isinstance(self._monitor_address, tuple):
@@ -254,8 +255,8 @@  class QEMUMachine(object):
                 self._popen.kill()
             self._popen.wait()
 
-            self._load_io_log()
-            self._post_shutdown()
+        self._load_io_log()
+        self._post_shutdown()
 
         exitcode = self.exitcode()
         if exitcode is not None and exitcode < 0: