Change in vdsm[master]: vm: nic hotunplug exception handling - refactoring

mmirecki at redhat.com mmirecki at redhat.com
Thu Dec 31 10:30:35 UTC 2015


Marcin Mirecki has uploaded a new change for review.

Change subject: vm: nic hotunplug exception handling - refactoring
......................................................................

vm: nic hotunplug exception handling - refactoring

Pulling some common code to a helper function

Change-Id: Ibc06c9f19f130549dfac54e71d332ad470de61c3
Bug-Url: https://bugzilla.redhat.com/1134256
Signed-off-by: Marcin Mirecki <mmirecki at redhat.com>
---
M vdsm/virt/vm.py
1 file changed, 11 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/90/51190/1

diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 8939603..47c38ec 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -2310,12 +2310,7 @@
                 hostdev.reattach_detachable(nic.hostdev)
         except HotunplugTimeout as e:
             self.log.error("%s", e)
-            if nicDev:
-                with self._confLock:
-                    self.conf['devices'].append(nicDev)
-            if nic:
-                self._devices[hwclass.NIC].append(nic)
-            self.saveState()
+            self._rollback_nic_hotunplug(nicDev, nic)
             hooks.after_nic_hotunplug_fail(nicXml, self.conf,
                                            params=nic.custom)
             return response.error('hotunplugNic', "%s" % e)
@@ -2323,13 +2318,7 @@
             self.log.exception("Hotunplug failed")
             if e.get_error_code() == libvirt.VIR_ERR_NO_DOMAIN:
                 return response.error('noVM')
-            # Restore NIC device in vm's conf and _devices
-            if nicDev:
-                with self._confLock:
-                    self.conf['devices'].append(nicDev)
-            if nic:
-                self._devices[hwclass.NIC].append(nic)
-            self.saveState()
+            self._rollback_nic_hotunplug(nicDev, nic)
             hooks.after_nic_hotunplug_fail(nicXml, self.conf,
                                            params=nic.custom)
             return response.error('hotunplugNic', e.message)
@@ -2338,6 +2327,15 @@
                                   params=nic.custom)
         return {'status': doneCode, 'vmList': self.status()}
 
+    # Restore NIC device in vm's conf and _devices
+    def _rollback_nic_hotunplug(self, nic_dev, nic):
+            if nic_dev:
+                with self._confLock:
+                    self.conf['devices'].append(nic_dev)
+            if nic:
+                self._devices[hwclass.NIC].append(nic)
+            self.saveState()
+
     def hotplugMemory(self, params):
 
         if self.isMigrating():


-- 
To view, visit https://gerrit.ovirt.org/51190
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibc06c9f19f130549dfac54e71d332ad470de61c3
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Marcin Mirecki <mmirecki at redhat.com>


More information about the vdsm-patches mailing list