Daniel Erez has uploaded a new change for review.
Change subject: Adding support for force extend block domains ......................................................................
Adding support for force extend block domains
Passing 'force' flag through extendStorageDomain to enable block storage domain extend enforcement (_initipvs already accepts the 'force' flag).
Change-Id: I33ad4ee65d7303705d2cc8370502553125000ca0 Signed-off-by: Daniel Erez derez@redhat.com --- M vdsm/API.py M vdsm/BindingXMLRPC.py M vdsm/storage/blockSD.py M vdsm/storage/hsm.py M vdsm/storage/lvm.py M vdsm/storage/sd.py M vdsm/storage/sp.py 7 files changed, 13 insertions(+), 13 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/92/9192/1
diff --git a/vdsm/API.py b/vdsm/API.py index e3909e9..202afc8 100644 --- a/vdsm/API.py +++ b/vdsm/API.py @@ -847,9 +847,9 @@ return self._irs.detachStorageDomain(self._UUID, self._spUUID, masterSdUUID, masterVersion)
- def extend(self, devlist): + def extend(self, devlist, force=False): return self._irs.extendStorageDomain(self._UUID, - self._spUUID, devlist) + self._spUUID, devlist, force)
def format(self, autoDetach): return self._irs.formatStorageDomain(self._UUID, autoDetach) diff --git a/vdsm/BindingXMLRPC.py b/vdsm/BindingXMLRPC.py index b833cf3..d460910 100644 --- a/vdsm/BindingXMLRPC.py +++ b/vdsm/BindingXMLRPC.py @@ -409,9 +409,9 @@ domain = API.StorageDomain(sdUUID, spUUID) return domain.detach(None, None, force=True)
- def domainExtend(self, sdUUID, spUUID, devlist, options=None): + def domainExtend(self, sdUUID, spUUID, devlist, force=False, options=None): domain = API.StorageDomain(sdUUID, spUUID) - return domain.extend(devlist) + return domain.extend(devlist, force)
def domainFormat(self, sdUUID, autoDetach=False, options=None): diff --git a/vdsm/storage/blockSD.py b/vdsm/storage/blockSD.py index 26d4380..e042d4d 100644 --- a/vdsm/storage/blockSD.py +++ b/vdsm/storage/blockSD.py @@ -676,7 +676,7 @@ else: del self._metadata[key]
- def extend(self, devlist): + def extend(self, devlist, force=False): mapping = self.readMetadataMapping().values() if self.getVersion() in VERS_METADATA_LV: if len(mapping) + len(devlist) > MAX_PVS: @@ -694,7 +694,7 @@ else: raise se.InvalidPhysDev(dev)
- lvm.extendVG(self.sdUUID, devices) + lvm.extendVG(self.sdUUID, devices, force) self.updateMapping() newsize = self.metaSize(self.sdUUID) lvm.extendLV(self.sdUUID, sd.METADATA, newsize) diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py index 4d696bf..9052e68 100644 --- a/vdsm/storage/hsm.py +++ b/vdsm/storage/hsm.py @@ -620,7 +620,7 @@ pool.extendVolume(sdUUID, volumeUUID, size, isShuttingDown)
@public - def extendStorageDomain(self, sdUUID, spUUID, devlist, options = None): + def extendStorageDomain(self, sdUUID, spUUID, devlist, force=False, options = None): """ Extends a VG. ?
@@ -641,7 +641,7 @@ vars.task.getExclusiveLock(STORAGE, sdUUID) # We need to let the domain to extend itself pool = self.getPool(spUUID) - pool.extendSD(sdUUID, devlist) + pool.extendSD(sdUUID, devlist, force)
@public def forcedDetachStorageDomain(self, sdUUID, spUUID, options = None): diff --git a/vdsm/storage/lvm.py b/vdsm/storage/lvm.py index b3abc2c..49ded26 100644 --- a/vdsm/storage/lvm.py +++ b/vdsm/storage/lvm.py @@ -901,12 +901,12 @@ removeVG(vg.name)
-def extendVG(vgName, devices): +def extendVG(vgName, devices, force=False): pvs = [_fqpvname(pdev) for pdev in _normalizeargs(devices)] _checkpvsblksize(pvs, getVGBlockSizes(vgName)) vg = _lvminfo.getVg(vgName) #Format extension PVs as all the other already in the VG - _initpvs(pvs, int(vg.vg_mda_size) / 2 ** 20) + _initpvs(pvs, int(vg.vg_mda_size) / 2 ** 20, force)
cmd = ["vgextend", vgName] + pvs rc, out, err = _lvminfo.cmd(cmd) diff --git a/vdsm/storage/sd.py b/vdsm/storage/sd.py index 17b6ada..cbd2d30 100644 --- a/vdsm/storage/sd.py +++ b/vdsm/storage/sd.py @@ -742,7 +742,7 @@ def refresh(self): pass
- def extend(self, devlist): + def extend(self, devlist, force=False): pass
def isMaster(self): diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py index c9489b8..93fbe10 100644 --- a/vdsm/storage/sp.py +++ b/vdsm/storage/sp.py @@ -2078,6 +2078,6 @@ repoPath = os.path.join(self.storage_repository, self.spUUID) image.Image(repoPath).validateVolumeChain(sdUUID, imgUUID)
- def extendSD(self, sdUUID, devlist): - sdCache.produce(sdUUID).extend(devlist) + def extendSD(self, sdUUID, devlist, force=False): + sdCache.produce(sdUUID).extend(devlist, force)
-- To view, visit http://gerrit.ovirt.org/9192 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange Gerrit-Change-Id: I33ad4ee65d7303705d2cc8370502553125000ca0 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Daniel Erez derez@redhat.com