Change in vdsm[master]: sp: refresh metadata on hsm when listing domains
Federico Simoncelli
fsimonce at redhat.com
Tue Dec 31 16:23:53 UTC 2013
Federico Simoncelli has uploaded a new change for review.
Change subject: sp: refresh metadata on hsm when listing domains
......................................................................
sp: refresh metadata on hsm when listing domains
In this patch:
- validatePoolSD and validateAttachedDomain are relevant only for SPM
operations (remove @unsecured)
Change-Id: I095cd0760076fb4be97a776498af78a40ff84112
Signed-off-by: Federico Simoncelli <fsimonce at redhat.com>
---
M vdsm/storage/sp.py
1 file changed, 16 insertions(+), 14 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/86/21786/4
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 961d2a8..40200d2 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -159,6 +159,14 @@
# any time.
self.setMetaParams(metaParams, __securityOverride=True)
+ @unsecured
+ def getDomainsMap(self):
+ self.invalidateMetadata()
+ return self.getMetaParam(PMDK_DOMAINS)
+
+ def setDomainsMap(self, domains):
+ self.setMetaParam(PMDK_DOMAINS, domains)
+
def __del__(self):
if len(self.domainMonitor.poolMonitoredDomains) > 0:
threading.Thread(target=self.stopMonitoringDomains).start()
@@ -529,15 +537,11 @@
domain.changeRole(role)
# TODO: Remove or rename this function.
- @unsecured
def validatePoolSD(self, sdUUID):
if sdUUID not in self.getDomains():
- self._metadata.invalidate()
- if sdUUID not in self.getDomains():
- raise se.StorageDomainNotMemberOfPool(self.spUUID, sdUUID)
+ raise se.StorageDomainNotMemberOfPool(self.spUUID, sdUUID)
return True
- @unsecured
def validateAttachedDomain(self, dom):
"""
Avoid handling domains if not owned by pool.
@@ -1024,7 +1028,7 @@
dom.attach(self.spUUID)
domains[sdUUID] = sd.DOM_ATTACHED_STATUS
- self.setMetaParam(PMDK_DOMAINS, domains)
+ self.setDomainsMap(domains)
self._refreshDomainLinks(dom)
finally:
@@ -1044,7 +1048,7 @@
del domains[sdUUID]
- self.setMetaParam(PMDK_DOMAINS, domains)
+ self.setDomainsMap(domains)
self._cleanupDomainLinks(sdUUID)
# If the domain that we are detaching is the master domain
@@ -1140,7 +1144,7 @@
dom.activate()
# set domains also do rebuild
domainStatuses[sdUUID] = sd.DOM_ACTIVE_STATUS
- self.setMetaParam(PMDK_DOMAINS, domainStatuses)
+ self.setDomainsMap(domainStatuses)
self.updateMonitoringThreads()
return True
@@ -1202,7 +1206,7 @@
"%s", masterDir, dom)
domList[sdUUID] = sd.DOM_ATTACHED_STATUS
- self.setMetaParam(PMDK_DOMAINS, domList)
+ self.setDomainsMap(domList)
self.updateMonitoringThreads()
@unsecured
@@ -1541,7 +1545,6 @@
def updateMonitoringThreads(self):
# domain list it's list of sdUUID:status
# sdUUID1:status1,sdUUID2:status2,...
- self.invalidateMetadata()
activeDomains = self.getDomains(activeOnly=True)
monitoredDomains = self.domainMonitor.poolMonitoredDomains
@@ -1568,10 +1571,9 @@
@unsecured
def getDomains(self, activeOnly=False):
- return dict(
- (sdUUID, status) for sdUUID, status in
- self.getMetaParam(PMDK_DOMAINS).iteritems()
- if not activeOnly or status == sd.DOM_ACTIVE_STATUS)
+ return dict((sdUUID, status) for sdUUID, status
+ in self.getDomainsMap().iteritems()
+ if not activeOnly or status == sd.DOM_ACTIVE_STATUS)
def checkBackupDomain(self):
domDict = self.getDomains(activeOnly=True)
--
To view, visit http://gerrit.ovirt.org/21786
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I095cd0760076fb4be97a776498af78a40ff84112
Gerrit-PatchSet: 4
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <fsimonce at redhat.com>
Gerrit-Reviewer: Allon Mureinik <amureini at redhat.com>
Gerrit-Reviewer: Ayal Baron <abaron at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimonce at redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer at redhat.com>
Gerrit-Reviewer: Sergey Gotliv <sgotliv at redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
More information about the vdsm-patches
mailing list