Change in vdsm[ovirt-3.5]: sp: deactivateSd - remove domain from pending for upgrade list

laravot at redhat.com laravot at redhat.com
Thu Sep 10 07:38:09 UTC 2015


Liron Aravot has uploaded a new change for review.

Change subject: sp: deactivateSd - remove domain from pending for upgrade list
......................................................................

sp: deactivateSd - remove domain from pending for upgrade list

When domain is deactivated its not cleared from the _domainsToUpgrade list,
which causes it to hold wrong and unneeded information (the domain might be
detached later from the storage pool).

Change-Id: I4451b348b8837dd83d95aea2be4a4536b33cdd99
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1260429
Signed-off-by: Liron Aravot <laravot at redhat.com>
---
M vdsm/storage/sp.py
1 file changed, 16 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/78/45978/1

diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 834eefd..43220c2 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -188,14 +188,7 @@
                             return
 
                 self._domainsToUpgrade.remove(sdUUID)
-                if len(self._domainsToUpgrade) == 0:
-                    self.log.debug("All domains are upgraded, unregistering "
-                                   "from state change event")
-                    try:
-                        self.domainMonitor.onDomainStateChange.\
-                            unregister(self._upgradeCallback)
-                    except KeyError:
-                        pass
+                self._finalizePoolUpgradeIfNeeded()
 
     def _updateDomainsRole(self):
         for sdUUID in self.getDomains(activeOnly=True):
@@ -1119,8 +1112,23 @@
 
         domList[sdUUID] = sd.DOM_ATTACHED_STATUS
         self._backend.setDomainsMap(domList)
+        try:
+            self._domainsToUpgrade.remove(sdUUID)
+        except ValueError:
+            pass
+        self._finalizePoolUpgradeIfNeeded()
         self.updateMonitoringThreads()
 
+    def _finalizePoolUpgradeIfNeeded(self):
+        if len(self._domainsToUpgrade) == 0:
+            self.log.debug("No domains left for upgrade, unregistering "
+                           "from state change event")
+            try:
+                self.domainMonitor.onDomainStateChange.unregister(
+                    self._upgradeCallback)
+            except KeyError:
+                pass
+
     @unsecured
     def _linkStorageDomain(self, linkTarget, linkName):
         self.log.info("Linking %s to %s", linkTarget, linkName)


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4451b348b8837dd83d95aea2be4a4536b33cdd99
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.5
Gerrit-Owner: Liron Aravot <laravot at redhat.com>


More information about the vdsm-patches mailing list