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