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