Change in vdsm[master]: VolumeMetadata: move newMetadata

alitke at redhat.com alitke at redhat.com
Fri Jun 5 20:57:13 UTC 2015


Adam Litke has uploaded a new change for review.

Change subject: VolumeMetadata: move newMetadata
......................................................................

VolumeMetadata: move newMetadata

Change-Id: I115fb4da48ef39bbbda5475cefbed1ab26ee1764
Signed-off-by: Adam Litke <alitke at redhat.com>
---
M vdsm/storage/blockVolume.py
M vdsm/storage/fileVolume.py
M vdsm/storage/volume.py
3 files changed, 56 insertions(+), 45 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/01/42001/1

diff --git a/vdsm/storage/blockVolume.py b/vdsm/storage/blockVolume.py
index 73b6a5e..d80c2a8 100644
--- a/vdsm/storage/blockVolume.py
+++ b/vdsm/storage/blockVolume.py
@@ -253,6 +253,16 @@
         # tags
         self.setMetaParam(volume.IMAGE, imgUUID)
 
+    def removeMetadata(self, metaId):
+        """
+        Just wipe meta.
+        """
+        try:
+            self._putMetadata(metaId, {"NONE": "#" * (sd.METASIZE - 10)})
+        except Exception as e:
+            self.log.error(e, exc_info=True)
+            raise se.VolumeMetadataWriteError("%s: %s" % (metaId, e))
+
 
 class BlockVolume(volume.Volume):
     """ Actually represents a single volume (i.e. part of virtual disk).
@@ -646,23 +656,9 @@
         lvs = lvm.lvsByTag(sdUUID, "%s%s" % (TAG_PREFIX_IMAGE, imgUUID))
         return [lv.name for lv in lvs]
 
-    def removeMetadata(self, metaId):
-        """
-        Just wipe meta.
-        """
-        try:
-            self.__putMetadata(metaId, {"NONE": "#" * (sd.METASIZE - 10)})
-        except Exception as e:
-            self.log.error(e, exc_info=True)
-            raise se.VolumeMetadataWriteError("%s: %s" % (metaId, e))
-
     @classmethod
     def __putMetadata(cls, metaId, meta):
         cls.MetadataClass._putMetadata(metaId, meta)
-
-    @classmethod
-    def createMetadata(cls, metaId, meta):
-        cls.__putMetadata(metaId, meta)
 
     def getMetaOffset(self):
         return self.md.getMetaOffset()
diff --git a/vdsm/storage/fileVolume.py b/vdsm/storage/fileVolume.py
index cfd05f8..06ac8f8 100644
--- a/vdsm/storage/fileVolume.py
+++ b/vdsm/storage/fileVolume.py
@@ -210,6 +210,15 @@
         """
         self.setMetaParam(volume.IMAGE, imgUUID)
 
+    def removeMetadata(self):
+        """
+        Remove the meta file
+        """
+        metaPath = self._getMetaVolumePath()
+        if self.oop.os.path.lexists(metaPath):
+            self.log.debug("Removing: %s", metaPath)
+            self.oop.os.unlink(metaPath)
+
 
 class FileVolume(volume.Volume):
     """ Actually represents a single volume (i.e. part of virtual disk).
@@ -411,22 +420,9 @@
             if not self.oop.os.access(volPath, os.R_OK):
                 raise se.VolumeAccessError(volPath)
 
-    def removeMetadata(self):
-        """
-        Remove the meta file
-        """
-        metaPath = self._getMetaVolumePath()
-        if self.oop.os.path.lexists(metaPath):
-            self.log.debug("Removing: %s", metaPath)
-            self.oop.os.unlink(metaPath)
-
     @classmethod
     def __putMetadata(cls, metaId, meta):
         FileVolumeMetadata._putMetadata(metaId, meta)
-
-    @classmethod
-    def createMetadata(cls, metaId, meta):
-        cls.__putMetadata(metaId, meta)
 
     @classmethod
     def getImageVolumes(cls, repoPath, sdUUID, imgUUID):
diff --git a/vdsm/storage/volume.py b/vdsm/storage/volume.py
index abbd906..c8a7dc0 100644
--- a/vdsm/storage/volume.py
+++ b/vdsm/storage/volume.py
@@ -430,9 +430,36 @@
         if self.getChildren():
             raise se.VolumeImageHasChildren(self)
 
+    @classmethod
+    def createMetadata(cls, metaId, meta):
+        cls._putMetadata(metaId, meta)
+
+    @classmethod
+    def newMetadata(cls, metaId, sdUUID, imgUUID, puuid, size, format, type,
+                    voltype, disktype, desc="", legality=ILLEGAL_VOL):
+        meta = {
+            FORMAT: str(format),
+            TYPE: str(type),
+            VOLTYPE: str(voltype),
+            DISKTYPE: str(disktype),
+            SIZE: int(size),
+            CTIME: int(time.time()),
+            sd.DMDK_POOLS: "",  # obsolete
+            DOMAIN: str(sdUUID),
+            IMAGE: str(imgUUID),
+            DESCRIPTION: str(desc),
+            PUUID: str(puuid),
+            MTIME: 0,
+            LEGALITY: str(legality),
+            }
+
+        cls.createMetadata(metaId, meta)
+        return meta
+
 
 class Volume(object):
     log = logging.getLogger('Storage.Volume')
+    MetadataClass = VolumeMetadata
 
     def __init__(self, md):
         self.md = md
@@ -497,6 +524,9 @@
         Set the read/write permission on the volume (deprecated)
         """
         self.md._setrw(rw)
+
+    def removeMetadata(self):
+        self.md.removeMetadata()
 
     @classmethod
     def _getModuleAndClass(cls):
@@ -1069,24 +1099,9 @@
     @classmethod
     def newMetadata(cls, metaId, sdUUID, imgUUID, puuid, size, format, type,
                     voltype, disktype, desc="", legality=ILLEGAL_VOL):
-        meta = {
-            FORMAT: str(format),
-            TYPE: str(type),
-            VOLTYPE: str(voltype),
-            DISKTYPE: str(disktype),
-            SIZE: int(size),
-            CTIME: int(time.time()),
-            sd.DMDK_POOLS: "",  # obsolete
-            DOMAIN: str(sdUUID),
-            IMAGE: str(imgUUID),
-            DESCRIPTION: str(desc),
-            PUUID: str(puuid),
-            MTIME: 0,
-            LEGALITY: str(legality),
-        }
-
-        cls.createMetadata(metaId, meta)
-        return meta
+        return cls.MetadataClass.newMetadata(
+            metaId, sdUUID, imgUUID, puuid, size, format, type, voltype,
+            disktype, desc, legality)
 
     def getInfo(self):
         return self.md.getInfo()
@@ -1136,3 +1151,7 @@
         by reducing the lv to minimal size required
         """
         pass
+
+    @classmethod
+    def createMetadata(cls, metaId, meta):
+        return cls.MetadataClass.createMetadata(metaId, meta)


-- 
To view, visit https://gerrit.ovirt.org/42001
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I115fb4da48ef39bbbda5475cefbed1ab26ee1764
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Adam Litke <alitke at redhat.com>


More information about the vdsm-patches mailing list