[NEW PATCH] Related to BZ#737329 - Simplify getMasterDomain(). (via gerrit-bot)
Dan Kenigsberg
danken at redhat.com
Tue Sep 13 10:23:23 UTC 2011
New patch submitted by Dan Kenigsberg (danken at redhat.com)
You can review this change at: http://gerrit.usersys.redhat.com/902
commit 394935fe6a917f86e26a165c0f7abbd96a38e50a
Author: Eduardo Warszawski <ewarszaw at redhat.com>
Date: Tue Sep 6 12:21:42 2011 +0300
Related to BZ#737329 - Simplify getMasterDomain().
Unveil the behaviour of getMasterDomain() without parameters.
verifyMasterDomain() can't return None.
Change-Id: Ie2d397a81516f9025bd6c8da6ce25d4b052e3ed7
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index aa4d6aa..730898a 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -1319,7 +1319,7 @@ class HSM:
# make sure it's THE master
try:
pool = self.getPool(dom.getPools()[0])
- master = pool.getMasterDomain()
+ master = pool.masterDomain
if master.sdUUID == sdUUID:
poolInfo = pool.getInfo()
for key in ['lver', 'spm_id', 'master_ver']:
@@ -1867,7 +1867,7 @@ class HSM:
for p in self.pools.values():
# Find the master domains
try:
- master = p.getMasterDomain()
+ master = p.masterDomain
except se.StorageException:
self.log.error("Unexpected error", exc_info=True)
master = None
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index bec3beb..dbd4b22 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -208,11 +208,11 @@ class StoragePool:
return self.getMetaParam(PMDK_MASTER_VER)
def acquireClusterLock(self):
- msd = self.getMasterDomain()
+ msd = self.masterDomain
msd.acquireClusterLock(self.id)
def releaseClusterLock(self):
- self.getMasterDomain().releaseClusterLock()
+ self.masterDomain.releaseClusterLock()
def validateAttachedDomain(self, sdUUID):
domList = self.getDomains()
@@ -236,15 +236,16 @@ class StoragePool:
exception if masterVersion doesn't follow the rules
"""
- d = self.getMasterDomain()
+ d = self.masterDomain
mver = self.getMasterVersion()
if not int(masterVersion) > mver:
raise se.StoragePoolWrongMaster(self.spUUID, d.sdUUID)
def getMaximumSupportedDomains(self):
- msdType = sd.name2type(self.getMasterDomain().getInfo()["type"])
- msdVersion = int(self.getMasterDomain().getInfo()["version"])
+ msdInfo = self.masterDomain.getInfo()
+ msdType = sd.name2type(msdInfo["type"])
+ msdVersion = int(msdInfo["version"])
if msdType in sd.BLOCK_DOMAIN_TYPES and msdVersion in blockSD.VERS_METADATA_LV:
return MAX_DOMAINS
else:
@@ -700,7 +701,7 @@ class StoragePool:
# If the domain being detached is the 'master', move all pool
# metadata to the new 'master' domain (msdUUID)
- if sdUUID == self.getMasterDomain().sdUUID:
+ if sdUUID == self.masterDomain.sdUUID:
self.masterMigrate(sdUUID, msdUUID, masterVersion)
# Remove pool info from domain metadata
@@ -906,7 +907,7 @@ class StoragePool:
master domain will be updated.
"""
if sdUUID is None:
- sdUUID = self.getMasterDomain().sdUUID
+ sdUUID = self.masterDomain.sdUUID
self.log.info("spUUID=%s sdUUID=%s", self.spUUID, sdUUID)
vms = self._getVMsPath(sdUUID)
@@ -975,7 +976,7 @@ class StoragePool:
@property
def _metadata(self):
- master = self.getMasterDomain()
+ master = self.masterDomain
return self._getPoolMD(master)
def getDescription(self):
@@ -988,7 +989,7 @@ class StoragePool:
return ""
def getVersion(self):
- return self.getMasterDomain().getVersion()
+ return self.masterDomain.getVersion()
def getSpmId(self):
spmid = self.getMetaParam(PMDK_SPM_ID)
@@ -1014,7 +1015,7 @@ class StoragePool:
msdUUID = None
try:
- master = self.getMasterDomain()
+ master = self.masterDomain
msdUUID = master.sdUUID
msdInfo = master.getInfo()
except Exception:
@@ -1120,16 +1121,11 @@ class StoragePool:
"""
return self._metadata[key]
- def getMasterDomain(self, msdUUID=None, masterVersion=None):
+ def getMasterDomain(self, msdUUID, masterVersion):
# Either we have in cache or we got non blank msdUUID,
# no other option should be supported
- if msdUUID and msdUUID != sd.BLANK_UUID:
- self.masterDomain = self.verifyMasterDomain(msdUUID=msdUUID, masterVersion=masterVersion)
- self.log.debug("Master domain '%s' verified", self.masterDomain)
-
- if not self.masterDomain:
- self.log.error("Couldn't find master domain for pool %s", self.spUUID, exc_info=True)
- raise se.StoragePoolMasterNotFound(self.spUUID, str(msdUUID))
+ self.masterDomain = self.verifyMasterDomain(msdUUID=msdUUID, masterVersion=masterVersion)
+ self.log.debug("Master domain '%s' verified", self.masterDomain)
return self.masterDomain
@@ -1261,7 +1257,7 @@ class StoragePool:
vmPath = SDF.produce(sdUUID).getVMsDir()
# Get VMs path from the pool (from the master domain)
else:
- vmPath = self.getMasterDomain().getVMsDir()
+ vmPath = self.masterDomain.getVMsDir()
if not os.path.exists(vmPath):
raise se.VMPathNotExists(vmPath)
@@ -1272,7 +1268,7 @@ class StoragePool:
baddomains = {}
message = "Pool OK"
try:
- masterdomain = self.getMasterDomain()
+ masterdomain = self.masterDomain
self.invalidateMetadata()
spmId = self.getMetaParam(PMDK_SPM_ID)
domains = self.getDomains(activeOnly=True)
diff --git a/vdsm/storage/spm.py b/vdsm/storage/spm.py
index 54fc202..653a67a 100644
--- a/vdsm/storage/spm.py
+++ b/vdsm/storage/spm.py
@@ -345,7 +345,7 @@ class SPM:
sd.validateDomainVersion(targetDomVersion)
pool = hsm.HSM.getPool(spUUID)
- masterDom = pool.getMasterDomain()
+ masterDom = pool.masterDomain
sdUUID = masterDom.sdUUID
self.log.info("Trying to upgrade master domain `%s`", sdUUID)
with rmanager.acquireResource(STORAGE, masterDom.sdUUID, rm.LockType.exclusive):
@@ -382,7 +382,7 @@ class SPM:
#Assumed that the domain can be attached only to one pool
poolUUID = domain.getPools()[0]
pool = hsm.HSM.getPool(poolUUID)
- masterDom = pool.getMasterDomain()
+ masterDom = pool.masterDomain
targetDomVersion = masterDom.getVersion()
except:
self.log.error("Error while preparing domain `%s` upgrade", sdUUID, exc_info=True)
@@ -457,7 +457,7 @@ class SPM:
pool = hsm.HSM.getPool(spUUID)
pool.updateMonitoringThreads()
pool.invalidateMetadata()
- masterDom = pool.getMasterDomain()
+ masterDom = pool.masterDomain
oldlver = pool.getMetaParam(sp.PMDK_LVER)
oldid = pool.getMetaParam(sp.PMDK_SPM_ID)
masterDomVersion = pool.getVersion()
@@ -1016,7 +1016,7 @@ class SPM:
vars.task.setDefaultException(se.StorageDomainActionError("sdUUID=%s, spUUID=%s" % (str(sdUUID), str(spUUID))))
vars.task.getExclusiveLock(STORAGE, spUUID)
pool = hsm.HSM.getPool(spUUID)
- if sdUUID == pool.getMasterDomain().sdUUID:
+ if sdUUID == pool.masterDomain.sdUUID:
raise se.CannotDetachMasterStorageDomain(sdUUID)
pool.forcedDetachSD(sdUUID)
@@ -1051,7 +1051,7 @@ class SPM:
Detach all domains from pool before destroying pool
"""
# First find out this pool master domain
- mDom = pool.getMasterDomain()
+ mDom = pool.masterDomain
# Find out domain list from the pool metadata
domList = pool.getDomains().keys()
@@ -1336,7 +1336,7 @@ class SPM:
vars.task.getSharedLock(STORAGE, sdUUID)
if sdUUID == None:
- dom = self.getPool(spUUID).getMasterDomain()
+ dom = self.getPool(spUUID).masterDomain
else:
dom = SDF.produce(sdUUID)
More information about the vdsm-patches
mailing list