Adam Litke has uploaded a new change for review.

Change subject: StorageDomainManifest: Manifest objects produce VolumeMetadata 
objects
......................................................................

StorageDomainManifest: Manifest objects produce VolumeMetadata objects

When we are working directly with StorageDomainManifest objects we do
not want to produce Volume objects.  Instead, we'll produce
VolumeMetadata objects.  The interface between Volume and VolumeMetadata
is consistent (except that VolumeMetadata lacks functions that can only
be called when working with an SPM).

Change-Id: Iacb2723c8ce2108b3e5ac2f35be2f59f083095e0
Signed-off-by: Adam Litke <ali...@redhat.com>
---
M tests/manifest_tests.py
M vdsm/storage/blockSD.py
M vdsm/storage/fileSD.py
M vdsm/storage/sd.py
4 files changed, 22 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/40/44040/1

diff --git a/tests/manifest_tests.py b/tests/manifest_tests.py
index 6891033..b5f0a7f 100644
--- a/tests/manifest_tests.py
+++ b/tests/manifest_tests.py
@@ -92,7 +92,7 @@
             self.assertEquals('3', manifest.getFormat())
             self.assertEquals(os.path.join(STORAGE_REPO, pooluuid),
                               manifest.getRepoPath())
-            self.assertEquals(fileVolume.FileVolume,
+            self.assertEquals(fileVolume.FileVolumeMetadata,
                               manifest.getVolumeClass())
 
     def test_getrepopath_with_iso_domain(self):
@@ -504,7 +504,7 @@
                 self.assertEquals('3', manifest.getFormat())
                 self.assertEquals(os.path.join(STORAGE_REPO, poolID),
                                   manifest.getRepoPath())
-                self.assertEquals(blockVolume.BlockVolume,
+                self.assertEquals(blockVolume.BlockVolumeMetadata,
                                   manifest.getVolumeClass())
 
     def test_deleteimage(self):
diff --git a/vdsm/storage/blockSD.py b/vdsm/storage/blockSD.py
index 2aad14e..b48b236 100644
--- a/vdsm/storage/blockSD.py
+++ b/vdsm/storage/blockSD.py
@@ -583,7 +583,7 @@
         """
         Return a type specific volume generator object
         """
-        return blockVolume.BlockVolume
+        return blockVolume.BlockVolumeMetadata
 
     def _getImgExclusiveVols(self, imgUUID, volsImgs):
         """Filter vols belonging to imgUUID only."""
@@ -1397,6 +1397,12 @@
 
         raise se.StorageDomainDoesNotExist(sdUUID)
 
+    def getVolumeClass(self):
+        """
+        Return a type specific volume generator object
+        """
+        return blockVolume.BlockVolume
+
 
 def _createVMSfs(dev):
     """
diff --git a/vdsm/storage/fileSD.py b/vdsm/storage/fileSD.py
index 1669c86..82e6fb5 100644
--- a/vdsm/storage/fileSD.py
+++ b/vdsm/storage/fileSD.py
@@ -187,7 +187,7 @@
         """
         Return a type specific volume generator object
         """
-        return fileVolume.FileVolume
+        return fileVolume.FileVolumeMetadata
 
     def deleteImage(self, sdUUID, imgUUID, volsImgs):
         currImgDir = self.getImagePath(imgUUID)
@@ -677,6 +677,12 @@
                 self.log.debug("Force linking %s to %s", tVol, tLink)
                 self.oop.utils.forceLink(tVol, tLink)
 
+    def getVolumeClass(self):
+        """
+        Return a type specific volume generator object
+        """
+        return fileVolume.FileVolume
+
 
 def _getMountsList(pattern="*"):
     fileDomPattern = os.path.join(
diff --git a/vdsm/storage/sd.py b/vdsm/storage/sd.py
index 70425c6..ddad760 100644
--- a/vdsm/storage/sd.py
+++ b/vdsm/storage/sd.py
@@ -374,8 +374,12 @@
                 pools.remove(BLANK_UUID)
         return pools
 
-    def getVolumeClass(self):
-        pass
+    def produceVolume(self, imgUUID, volUUID):
+        """
+        Produce a type specific volume object
+        """
+        return self.getVolumeClass()(self.mountpoint, self.sdUUID, imgUUID,
+                                     volUUID)
 
     def isISO(self):
         return self.getMetaParam(DMDK_CLASS) == ISO_DOMAIN
@@ -574,9 +578,6 @@
         """
         return self.getVolumeClass()(self.mountpoint, self.sdUUID, imgUUID,
                                      volUUID)
-
-    def getVolumeClass(self):
-        return self._manifest.getVolumeClass()
 
     def validateCreateVolumeParams(self, volFormat, srcVolUUID,
                                    preallocate=None):


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iacb2723c8ce2108b3e5ac2f35be2f59f083095e0
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Adam Litke <ali...@redhat.com>
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to