FIX: Force kill QEMU in case of failed initialization 12/9912/5
authorPeter Mikus <pmikus@cisco.com>
Sat, 30 Dec 2017 18:57:31 +0000 (18:57 +0000)
committerPeter Mikus <pmikus@cisco.com>
Tue, 2 Jan 2018 13:49:08 +0000 (13:49 +0000)
Change-Id: Ib9c243b1bd379cf33a2b7747b7f97a8533000d60
Signed-off-by: Peter Mikus <pmikus@cisco.com>
resources/libraries/python/QemuUtils.py

index 6689e5c..428599b 100644 (file)
@@ -549,19 +549,18 @@ class QemuUtils(object):
             self._qemu_bin, self._qemu_opt.get('smp'), mem, ssh_fwd,
             self._qemu_opt.get('options'),
             drive, qmp, serial, qga, graphic, pid)
-        (ret_code, _, stderr) = self._ssh.exec_command_sudo(cmd, timeout=300)
-        if int(ret_code) != 0:
-            logger.debug('QEMU start failed {0}'.format(stderr))
-            raise RuntimeError('QEMU start failed on {0}'.format(
-                self._node['host']))
-        logger.trace('QEMU running')
-        # Wait until VM boot
         try:
+            (ret_code, _, _) = self._ssh.exec_command_sudo(cmd, timeout=300)
+            if int(ret_code) != 0:
+                raise RuntimeError('QEMU start failed on {0}'.format(
+                    self._node['host']))
+            # Wait until VM boot
             self._wait_until_vm_boot()
         except (RuntimeError, SSHTimeout):
             self.qemu_kill_all()
             self.qemu_clear_socks()
             raise
+        logger.trace('QEMU started successfully.')
         # Update interface names in VM node dict
         self._update_vm_interfaces()
         # Return VM node dict