Yeela Kaplan has uploaded a new change for review.

Change subject: [WIP] destroy storage pool using command type 1
......................................................................

[WIP] destroy storage pool using command type 1

Change-Id: I67cda9abd0bbc01d7d0642d5d3327f8687d7f728
Signed-off-by: Yeela Kaplan <ykap...@redhat.com>
---
M vdsm/storage/blockSD.py
M vdsm/storage/sd.py
M vdsm/storage/sp.py
3 files changed, 29 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/98/24398/1

diff --git a/vdsm/storage/blockSD.py b/vdsm/storage/blockSD.py
index 799ee01..0bbe5dd 100644
--- a/vdsm/storage/blockSD.py
+++ b/vdsm/storage/blockSD.py
@@ -559,9 +559,9 @@
             raise se.VolumesZeroingError(path)
 
         if version in VERS_METADATA_LV:
-            md = LvBasedSDMetadata(vgName, sd.METADATA)
+            LvBasedSDMetadata(vgName, sd.METADATA)
         elif version in VERS_METADATA_TAG:
-            md = TagBasedSDMetadata(vgName)
+            TagBasedSDMetadata(vgName)
 
         logBlkSize, phyBlkSize = lvm.getVGBlockSizes(vgName)
 
@@ -1327,10 +1327,10 @@
         vgName = vg.name
         toAdd = encodeVgTags(leaseParams)
         toAdd += encodeVgTags({sd.DMDK_POOLS: spUUID,
-                                  sd.DMDK_ROLE: sd.MASTER_DOMAIN})
+                               sd.DMDK_ROLE: sd.MASTER_DOMAIN})
         toDel = encodeVgTags({sd.DMDK_ROLE: sd.REGULAR_DOMAIN,
-                                sd.DMDK_POOLS: spUUID,
-                                sd.DMDK_POOLS: ''})
+                              sd.DMDK_POOLS: spUUID,
+                              sd.DMDK_POOLS: ''})
         lvm.changeVGTags(vgName, delTags=toDel, addTags=toAdd, safe=False)
 
     def refreshDirTree(self):
@@ -1357,6 +1357,26 @@
         finally:
             self._extendlock.release()
 
+    def detachMaster(self, spUUID):
+        self.invalidateMetadata()
+        pools = self.getPools()
+        try:
+            pools.remove(spUUID)
+        except ValueError:
+            self.log.error(
+                "Can't remove pool %s from domain %s pool list %s, "
+                "it does not exist",
+                spUUID, self.sdUUID, str(pools))
+            return
+        vgUUID = self.getInfo()['vguuid']
+        vg = lvm.getVGbyUUID(vgUUID)
+        vgName = vg.name
+        toAdd = encodeVgTags({sd.DMDK_POOLS: '',
+                              sd.DMDK_ROLE: sd.REGULAR_DOMAIN})
+        toDel = encodeVgTags({sd.DMDK_POOLS: spUUID,
+                              sd.DMDK_ROLE: sd.MASTER_DOMAIN})
+        lvm.changeVGTags(vgName, delTags=toDel, addTags=toAdd, safe=False)
+
     def refresh(self):
         self.refreshDirTree()
         lvm.invalidateVG(self.sdUUID)
diff --git a/vdsm/storage/sd.py b/vdsm/storage/sd.py
index 23ca112..6849545 100644
--- a/vdsm/storage/sd.py
+++ b/vdsm/storage/sd.py
@@ -524,6 +524,9 @@
         # Last thing to do is to remove pool from domain
         # do any required cleanup
 
+    def detachMaster(self, spUUID):
+        self.detach(spUUID)
+
     # I personally don't think there is a reason to pack these
     # but I already changed too much.
     def changeLeaseParams(self, leaseParamPack):
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index d228a9d..6ec941d 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -963,7 +963,7 @@
 
         # Forced detach master domain
         self.forcedDetachSD(self.masterDomain.sdUUID)
-        self.masterDomain.detach(self.spUUID)
+        self.masterDomain.detachMaster(self.spUUID)
 
     @unsecured
     def _convertDomain(self, domain, targetFormat=None):


-- 
To view, visit http://gerrit.ovirt.org/24398
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I67cda9abd0bbc01d7d0642d5d3327f8687d7f728
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Yeela Kaplan <ykap...@redhat.com>
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to