Adam Litke has uploaded a new change for review. Change subject: VolumeMetadata: move newVolumeLease ......................................................................
VolumeMetadata: move newVolumeLease Change-Id: If18aa7d526d9eb334c638fdf4cc93d31a4943cb6 Signed-off-by: Adam Litke <ali...@redhat.com> --- M vdsm/storage/blockVolume.py M vdsm/storage/fileVolume.py M vdsm/storage/volume.py 3 files changed, 38 insertions(+), 35 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/02/42002/1 diff --git a/vdsm/storage/blockVolume.py b/vdsm/storage/blockVolume.py index d80c2a8..bf1a002 100644 --- a/vdsm/storage/blockVolume.py +++ b/vdsm/storage/blockVolume.py @@ -38,7 +38,6 @@ import lvm import resourceManager as rm from threadLocal import vars -from sdc import sdCache from resourceFactories import LVM_ACTIVATION_NAMESPACE import fileUtils @@ -262,6 +261,19 @@ except Exception as e: self.log.error(e, exc_info=True) raise se.VolumeMetadataWriteError("%s: %s" % (metaId, e)) + + @classmethod + def newVolumeLease(cls, metaId, sdUUID, volUUID): + cls.log.debug("Initializing volume lease volUUID=%s sdUUID=%s, " + "metaId=%s", volUUID, sdUUID, metaId) + manifest = blockSD.BlockStorageDomainManifest(sdUUID) + metaSdUUID, mdSlot = metaId + + leasePath = manifest.getLeasesFilePath() + leaseOffset = ((mdSlot + RESERVED_LEASES) + * manifest.logBlkSize * sd.LEASE_BLOCKS) + + sanlock.init_resource(sdUUID, volUUID, [(leasePath, leaseOffset)]) class BlockVolume(volume.Volume): @@ -665,19 +677,6 @@ def setMetadata(self, meta, metaId=None): return self.md.setMetadata(meta, metaId) - - @classmethod - def newVolumeLease(cls, metaId, sdUUID, volUUID): - cls.log.debug("Initializing volume lease volUUID=%s sdUUID=%s, " - "metaId=%s", volUUID, sdUUID, metaId) - dom = sdCache.produce(sdUUID) - metaSdUUID, mdSlot = metaId - - leasePath = dom.getLeasesFilePath() - leaseOffset = ((mdSlot + RESERVED_LEASES) - * dom.logBlkSize * sd.LEASE_BLOCKS) - - sanlock.init_resource(sdUUID, volUUID, [(leasePath, leaseOffset)]) def _extendSizeRaw(self, newSize): # Since this method relies on lvm.extendLV (lvextend) when the diff --git a/vdsm/storage/fileVolume.py b/vdsm/storage/fileVolume.py index 06ac8f8..54cfe9d 100644 --- a/vdsm/storage/fileVolume.py +++ b/vdsm/storage/fileVolume.py @@ -219,6 +219,24 @@ self.log.debug("Removing: %s", metaPath) self.oop.os.unlink(metaPath) + @classmethod + def _leaseVolumePath(cls, vol_path): + if vol_path: + return vol_path + LEASE_FILEEXT + else: + return None + + @classmethod + def newVolumeLease(cls, metaId, sdUUID, volUUID): + cls.log.debug("Initializing volume lease volUUID=%s sdUUID=%s, " + "metaId=%s", volUUID, sdUUID, metaId) + volPath, = metaId + leasePath = cls._leaseVolumePath(volPath) + oop.getProcessPool(sdUUID).truncateFile(leasePath, LEASE_FILEOFFSET) + cls.file_setrw(leasePath, rw=True) + sanlock.init_resource(sdUUID, volUUID, [(leasePath, + LEASE_FILEOFFSET)]) + class FileVolume(volume.Volume): """ Actually represents a single volume (i.e. part of virtual disk). @@ -320,7 +338,7 @@ self.log.info("Request to delete volume %s", self.volUUID) vol_path = self.getVolumePath() - lease_path = self.__leaseVolumePath(vol_path) + lease_path = self.md._leaseVolumePath(vol_path) if not force: self.md.validateDelete() @@ -398,7 +416,7 @@ procPool = oop.getProcessPool(getDomUuidFromVolumePath(volPath)) procPool.utils.rmFile(volPath) procPool.utils.rmFile(cls.__metaVolumePath(volPath)) - procPool.utils.rmFile(cls.__leaseVolumePath(volPath)) + procPool.utils.rmFile(cls.MetadataClass._leaseVolumePath(volPath)) def llPrepare(self, rw=False, setrw=False): """ @@ -442,17 +460,6 @@ getImage() == imgUUID): volList.append(volid) return volList - - @classmethod - def newVolumeLease(cls, metaId, sdUUID, volUUID): - cls.log.debug("Initializing volume lease volUUID=%s sdUUID=%s, " - "metaId=%s", volUUID, sdUUID, metaId) - volPath, = metaId - leasePath = cls.__leaseVolumePath(volPath) - oop.getProcessPool(sdUUID).truncateFile(leasePath, LEASE_FILEOFFSET) - cls.file_setrw(leasePath, rw=True) - sanlock.init_resource(sdUUID, volUUID, [(leasePath, - LEASE_FILEOFFSET)]) def setParentMeta(self, puuid): """ @@ -541,13 +548,6 @@ def __metaVolumePath(cls, volPath): return cls.MetadataClass._metaVolumePath(volPath) - @classmethod - def __leaseVolumePath(cls, vol_path): - if vol_path: - return vol_path + LEASE_FILEEXT - else: - return None - def _getMetaVolumePath(self, vol_path=None): """ Get the volume metadata file/link path @@ -560,7 +560,7 @@ """ if not vol_path: vol_path = self.getVolumePath() - return self.__leaseVolumePath(vol_path) + return self.md._leaseVolumePath(vol_path) def validateVolumePath(self): """ diff --git a/vdsm/storage/volume.py b/vdsm/storage/volume.py index c8a7dc0..461aa3c 100644 --- a/vdsm/storage/volume.py +++ b/vdsm/storage/volume.py @@ -1155,3 +1155,7 @@ @classmethod def createMetadata(cls, metaId, meta): return cls.MetadataClass.createMetadata(metaId, meta) + + @classmethod + def newVolumeLease(cls, metaId, sdUUID, volUUID): + return cls.MetadataClass.newVolumeLease(metaId, sdUUID, volUUID) -- To view, visit https://gerrit.ovirt.org/42002 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If18aa7d526d9eb334c638fdf4cc93d31a4943cb6 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