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 <de...@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 <de...@redhat.com>
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to