Change in vdsm[master]: [WIP] Fixing metadata writings using cmd_type_1.

ewarszaw at redhat.com ewarszaw at redhat.com
Mon Feb 4 14:29:40 UTC 2013


Eduardo has uploaded a new change for review.

Change subject: [WIP] Fixing metadata writings using cmd_type_1.
......................................................................

[WIP] Fixing metadata writings using cmd_type_1.

Change-Id: I88b3ede4bd15a884bcd07cf4099f53d30aa98f84
Signed-off-by: Eduardo <ewarszaw at redhat.com>
---
M vdsm/storage/blockSD.py
1 file changed, 13 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/95/11695/1

diff --git a/vdsm/storage/blockSD.py b/vdsm/storage/blockSD.py
index c688826..359a691 100644
--- a/vdsm/storage/blockSD.py
+++ b/vdsm/storage/blockSD.py
@@ -123,7 +123,6 @@
 LVM_ENC_ESCAPE = re.compile("&(\d+)&")
 
 
-# Move to lvm
 def lvmTagEncode(s):
     return INVALID_CHARS.sub(lambda c: "&%s&" % ord(c.group()), s)
 
@@ -505,7 +504,6 @@
 
         def makeChangeCmd(toRemove, toAdd):
             changeCmd = [constants.EXT_LVM, "vgchange"]
-            changeCmd.extend(lvm.LVM_NOBACKUP)
             changeCmd.extend(("--config", cmdConf % filter))
             for tag in toRemove:
                 changeCmd.extend(("--deltag", tag))
@@ -623,28 +621,23 @@
             DMDK_PHYBLKSIZE: phyBlkSize,
         }
 
-        initialMetadata.update(mapping)
-
         if version in VERS_METADATA_LV:
             md = LvBasedSDMetadata(vgName, sd.METADATA)
             md.update(initialMetadata)
             #Replace unready tag
             toRemove = (STORAGE_UNREADY_DOMAIN_TAG,)
             toAdd = (STORAGE_DOMAIN_TAG,)
+            initialMetadata.update(mapping)
         elif version in VERS_METADATA_TAG:
             md = TagBasedSDMetadata(vgName)
             #Add all tags here and remove the unready
-            toRemove = tuple(VGTagMetadataRW.METADATA_TAG_PREFIX +
-                             lvmTagEncode(item) for item in initialMetadata)
-            toRemove.append(STORAGE_UNREADY_DOMAIN_TAG)
-            toAdd = tuple(VGTagMetadataRW.METADATA_TAG_PREFIX +
-                          lvmTagEncode(item) for item in initialMetadata)
+            toRemove = [STORAGE_UNREADY_DOMAIN_TAG]
+            toAdd = [VGTagMetadataRW.METADATA_TAG_PREFIX +
+                     lvmTagEncode("%s=%s" % item)
+                     for item in initialMetadata.items()]
+            toAdd.extend([lvmTagEncode("%s,%s" % (k, v))
+                         for k, v in mapping.items()])
             toAdd.append(STORAGE_DOMAIN_TAG)
-
-        try:
-            setInitialTags(toRemove, toAdd)
-        except se.VolumeGroupReplaceTagError:
-            raise se.VolumeGroupUninitialized(vgName)
 
         if version in sd.DOM_SAFELEASE_VERS:
             initClusterLock()
@@ -653,6 +646,12 @@
         else:
             cls.log.warning("Lock method for version %s unknown", version)
 
+        try:
+            setInitialTags(toRemove, toAdd)
+        except se.VolumeGroupReplaceTagError:
+            raise se.VolumeGroupUninitialized(vgName)
+
+        lvm.invalidateVG(vgName)
         return None
 
     def getReadDelay(self):


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

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


More information about the vdsm-patches mailing list