Change in vdsm[master]: format storage domain using locking type 1

ykaplan at redhat.com ykaplan at redhat.com
Sun Mar 23 15:54:21 UTC 2014


Yeela Kaplan has uploaded a new change for review.

Change subject: format storage domain using locking type 1
......................................................................

format storage domain using locking type 1

Change-Id: Ifdaf54cb8d27d0e609943d38efb07a0a78b84394
Signed-off-by: Yeela Kaplan <ykaplan at redhat.com>
---
M vdsm/storage/blockSD.py
M vdsm/storage/hsm.py
M vdsm/storage/lvm.py
3 files changed, 19 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/14/26014/1

diff --git a/vdsm/storage/blockSD.py b/vdsm/storage/blockSD.py
index d9f398e..9d6ec43 100644
--- a/vdsm/storage/blockSD.py
+++ b/vdsm/storage/blockSD.py
@@ -906,7 +906,7 @@
         for lv in lvs:
             #Fix me: Should raise and get resource lock.
             try:
-                lvm.removeLVs(sdUUID, lv.name)
+                lvm.clusterSafeRemoveLVs(sdUUID, lv.name)
             except se.CannotRemoveLogicalVolume as e:
                 cls.log.warning("Remove logical volume failed %s/%s %s",
                                 sdUUID, lv.name, str(e))
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index e6d994f..7ea6b84 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -40,7 +40,7 @@
 
 from vdsm.config import config
 import sp
-from spbackends import MAX_POOL_DESCRIPTION_SIZE, MAX_DOMAINS
+from spbackends import MAX_POOL_DESCRIPTION_SIZE
 from spbackends import StoragePoolDiskBackend
 from spbackends import StoragePoolMemoryBackend
 import domainMonitor
diff --git a/vdsm/storage/lvm.py b/vdsm/storage/lvm.py
index 4df2e6f..2cf5091 100644
--- a/vdsm/storage/lvm.py
+++ b/vdsm/storage/lvm.py
@@ -1114,7 +1114,7 @@
     _completeCreateLV(rc, vgName, lvName, activate)
 
 
-def removeLVs(vgName, lvNames):
+def _constructRemoveLVs(vgName, lvNames):
     lvNames = _normalizeargs(lvNames)
     # Assert that the LVs are inactive before remove.
     for lvName in lvNames:
@@ -1132,7 +1132,10 @@
     cmd.extend(LVM_NOBACKUP)
     for lvName in lvNames:
         cmd.append("%s/%s" % (vgName, lvName))
-    rc, out, err = _lvminfo.cmd(cmd, _lvminfo._getVGDevs((vgName, )))
+    return cmd
+
+
+def _completeRemoveLVs(rc, vgName, lvNames):
     if rc == 0:
         for lvName in lvNames:
             # Remove the LV from the cache
@@ -1145,6 +1148,18 @@
         raise se.CannotRemoveLogicalVolume(vgName, str(lvNames))
 
 
+def clusterSafeRemoveLVs(vgName, lvNames):
+    cmd = _constructRemoveLVs(vgName, lvNames)
+    rc, out, err = _lvminfo.cmd(cmd, _lvminfo._getVGDevs((vgName, )), rw=True)
+    _completeRemoveLVs(rc, vgName, lvNames)
+
+
+def removeLVs(vgName, lvNames):
+    cmd = _constructRemoveLVs(vgName, lvNames)
+    rc, out, err = _lvminfo.cmd(cmd, _lvminfo._getVGDevs((vgName, )))
+    _completeRemoveLVs(rc, vgName, lvNames)
+
+
 def _resizeLV(op, vgName, lvName, size):
     """
     Size units: MB (1024 ** 2 = 2 ** 20)B.


-- 
To view, visit http://gerrit.ovirt.org/26014
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifdaf54cb8d27d0e609943d38efb07a0a78b84394
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yeela Kaplan <ykaplan at redhat.com>


More information about the vdsm-patches mailing list