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

Reply via email to