[elbe-devel] [PATCH] initvmaction: Fix initvm command stop

Olivier Dion dion at linutronix.de
Tue Aug 4 15:28:57 CEST 2020


This should fix problems that some users had with elbe-initvm-stop.

Signed-off-by: Olivier Dion <dion at linutronix.de>
---
 elbepack/initvmaction.py | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/elbepack/initvmaction.py b/elbepack/initvmaction.py
index a0b76e15..898e7a33 100644
--- a/elbepack/initvmaction.py
+++ b/elbepack/initvmaction.py
@@ -200,19 +200,24 @@ class StopAction(InitVMAction):
             sys.exit(20)
         else:
             while True:
-                try:
-                    self.initvm.shutdown()
-                except libvirt.libvirtError as e:
-                    # ignore that initvm is already shutoff or is currently
-                    # shutting down but raise all other errors
-                    if (self.initvm_state() != libvirt.VIR_DOMAIN_SHUTOFF and
-                        self.initvm_state() != libvirt.VIR_DOMAIN_SHUTDOWN):
+
+                state = self.initvm_state()
+
+                if state == libvirt.VIR_DOMAIN_SHUTDOWN:
+                    pass
+
+                elif state == libvirt.VIR_DOMAIN_SHUTOFF:
+                    print("\nInitvm shutoff")
+                    break
+
+                else:
+                    try:
+                        ret = self.initvm.shutdown()
+                    except libvirt.libvirtError as e:
                         raise e
+
                 sys.stdout.write("*")
                 sys.stdout.flush()
-                if self.initvm_state() == libvirt.VIR_DOMAIN_SHUTOFF:
-                    print("\nInitvm shut off.")
-                    break
                 time.sleep(1)
 
 
-- 
2.28.0



More information about the elbe-devel mailing list