Change in vdsm[master]: sp: move validatePoolSD in the StoragePool class
fsimonce at redhat.com
fsimonce at redhat.com
Wed Nov 27 13:39:37 UTC 2013
Federico Simoncelli has uploaded a new change for review.
Change subject: sp: move validatePoolSD in the StoragePool class
......................................................................
sp: move validatePoolSD in the StoragePool class
It's the StoragePool duty to validate if an operation cannot be
accomplished because the storage domain is not part of the pool.
Change-Id: I75f0245ec5449d57431df7055be401d73975312b
Signed-off-by: Federico Simoncelli <fsimonce at redhat.com>
---
M vdsm/storage/hsm.py
M vdsm/storage/sp.py
2 files changed, 16 insertions(+), 24 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/87/21787/1
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index 0836777..231ea72 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -665,7 +665,6 @@
size = math.ceil(size / 2 ** 20)
pool = self.getPool(spUUID)
- pool.validatePoolSD(sdUUID)
pool.extendVolume(sdUUID, volumeUUID, size, isShuttingDown)
@public
@@ -748,7 +747,6 @@
vars.task.getSharedLock(STORAGE, sdUUID)
# We need to let the domain to extend itself
pool = self.getPool(spUUID)
- pool.validatePoolSD(sdUUID)
dmDevs = tuple(os.path.join(devicemapper.DMPATH_PREFIX, guid) for guid
in guids)
pool.extendSD(sdUUID, dmDevs, force)
@@ -797,7 +795,6 @@
vars.task.getExclusiveLock(STORAGE, spUUID)
vars.task.getExclusiveLock(STORAGE, sdUUID)
pool = self.getPool(spUUID)
- pool.validatePoolSD(sdUUID)
pool.detachSD(sdUUID)
@public
@@ -1188,7 +1185,6 @@
vars.task.getExclusiveLock(STORAGE, spUUID)
vars.task.getExclusiveLock(STORAGE, sdUUID)
pool = self.getPool(spUUID)
- pool.validatePoolSD(sdUUID)
pool.deactivateSD(sdUUID, msdUUID, masterVersion)
@public
@@ -1252,7 +1248,6 @@
"""
vars.task.getSharedLock(STORAGE, sdUUID)
pool = self.getPool(spUUID)
- pool.validatePoolSD(sdUUID)
pool.setVolumeDescription(sdUUID, imgUUID, volUUID, description)
@public
@@ -1276,7 +1271,6 @@
vars.task.getSharedLock(STORAGE, sdUUID)
pool = self.getPool(spUUID)
- pool.validatePoolSD(sdUUID)
pool.setVolumeLegality(sdUUID, imgUUID, volUUID, legality)
@public
@@ -1301,9 +1295,7 @@
"""
vars.task.getSharedLock(STORAGE, spUUID)
pool = self.getPool(spUUID)
- if sdUUID and sdUUID != sd.BLANK_UUID:
- pool.validatePoolSD(sdUUID)
- else:
+ if not sdUUID or sdUUID == sd.BLANK_UUID:
sdUUID = pool.masterDomain.sdUUID
vmUUIDs = [vmDesc['vm'] for vmDesc in vmList]
@@ -1329,9 +1321,7 @@
"""
vars.task.getSharedLock(STORAGE, spUUID)
pool = self.getPool(spUUID)
- if sdUUID and sdUUID != sd.BLANK_UUID:
- pool.validatePoolSD(sdUUID)
- else:
+ if not sdUUID or sdUUID == sd.BLANK_UUID:
sdUUID = pool.masterDomain.sdUUID
vars.task.getExclusiveLock(STORAGE, "%s_%s" % (vmUUID, sdUUID))
pool.removeVM(vmUUID=vmUUID, sdUUID=sdUUID)
@@ -1351,9 +1341,7 @@
:param options: ?
"""
pool = self.getPool(spUUID)
- if sdUUID and sdUUID != sd.BLANK_UUID:
- pool.validatePoolSD(sdUUID)
- else:
+ if not sdUUID or sdUUID != sd.BLANK_UUID:
sdUUID = pool.masterDomain.sdUUID
vars.task.getSharedLock(STORAGE, sdUUID)
vms = pool.getVmsList(sdUUID)
@@ -1379,7 +1367,6 @@
"""
pool = self.getPool(spUUID)
if sdUUID and sdUUID != sd.BLANK_UUID:
- pool.validatePoolSD(sdUUID)
# Only backup domains are allowed in this path
self.validateBackupDom(sdUUID)
else:
@@ -2688,7 +2675,6 @@
vars.task.getSharedLock(STORAGE, sdUUID)
pool = self.getPool(dom.getPools()[0])
- pool.validatePoolSD(sdUUID)
pool.setSDDescription(dom, description)
@public
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 37dcec8..11d8d00 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -1062,6 +1062,7 @@
dom = sdCache.produce(sdUUID)
# Avoid detach domains if not owned by pool
+ self.validatePoolSD(sdUUID)
self.validateAttachedDomain(dom)
if sdUUID == self.masterDomain.sdUUID:
@@ -1148,6 +1149,7 @@
:param masterVersion: new master storage domain version
"""
+ self.validatePoolSD(sdUUID)
self.log.info("sdUUID=%s spUUID=%s newMsdUUID=%s", sdUUID, self.spUUID,
newMsdUUID)
domList = self.getDomains()
@@ -1328,6 +1330,7 @@
If sdUUID is None, the update is on the pool, and therefore
the master domain will be updated.
"""
+ self.validatePoolSD(sdUUID)
self.log.info("spUUID=%s sdUUID=%s", self.spUUID, sdUUID)
vms = self._getVMsPath(sdUUID)
# We should exclude 'masterd' link from IMG_METAPATTERN globing
@@ -1365,6 +1368,7 @@
Remove VM.
'vmUUID' - Virtual machine UUID
"""
+ self.validatePoolSD(sdUUID)
self.log.info("spUUID=%s vmUUID=%s sdUUID=%s", self.spUUID, vmUUID,
sdUUID)
vms = self._getVMsPath(sdUUID)
@@ -1392,6 +1396,7 @@
# block devices. The scope of this method is to extend only the
# volume apparent size; the virtual disk size seen by the guest is
# unchanged.
+ self.validatePoolSD(sdUUID)
sdCache.produce(sdUUID).extendVolume(volumeUUID, size, isShuttingDown)
def extendVolumeSize(self, sdUUID, imgUUID, volUUID, newSize):
@@ -1972,6 +1977,7 @@
self.masterDomain.detach(self.spUUID)
def setVolumeDescription(self, sdUUID, imgUUID, volUUID, description):
+ self.validatePoolSD(sdUUID)
imageResourcesNamespace = sd.getNamespace(sdUUID, IMAGE_NAMESPACE)
with rmanager.acquireResource(imageResourcesNamespace, imgUUID,
rm.LockType.exclusive):
@@ -1980,6 +1986,7 @@
volUUID=volUUID).setDescription(descr=description)
def setVolumeLegality(self, sdUUID, imgUUID, volUUID, legality):
+ self.validatePoolSD(sdUUID)
imageResourcesNamespace = sd.getNamespace(sdUUID, IMAGE_NAMESPACE)
with rmanager.acquireResource(imageResourcesNamespace, imgUUID,
rm.LockType.exclusive):
@@ -1987,24 +1994,23 @@
imgUUID=imgUUID,
volUUID=volUUID).setLegality(legality=legality)
- def getVmsList(self, sdUUID=None):
- if sdUUID is None:
- dom = self.masterDomain
- else:
- dom = sdCache.produce(sdUUID)
-
- return dom.getVMsList()
+ def getVmsList(self, sdUUID):
+ self.validatePoolSD(sdUUID)
+ return sdCache.produce(sdUUID).getVMsList()
def getVmsInfo(self, sdUUID, vmList=None):
+ self.validatePoolSD(sdUUID)
return sdCache.produce(sdUUID).getVMsInfo(vmList=vmList)
def validateVolumeChain(self, sdUUID, imgUUID):
image.Image(self.poolPath).validateVolumeChain(sdUUID, imgUUID)
def extendSD(self, sdUUID, devlist, force):
+ self.validatePoolSD(sdUUID)
sdCache.produce(sdUUID).extend(devlist, force)
def setSDDescription(self, sd, description):
+ self.validatePoolSD(sd.sdUUID)
sd.setDescription(descr=description)
def getAllTasksStatuses(self):
--
To view, visit http://gerrit.ovirt.org/21787
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I75f0245ec5449d57431df7055be401d73975312b
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Federico Simoncelli <fsimonce at redhat.com>
More information about the vdsm-patches
mailing list