]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume lvm.zap loop over all vgs from a pv to destroy them 23532/head
authorAlfredo Deza <adeza@redhat.com>
Tue, 14 Aug 2018 15:59:25 +0000 (11:59 -0400)
committerAlfredo Deza <adeza@redhat.com>
Tue, 14 Aug 2018 15:59:25 +0000 (11:59 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
src/ceph-volume/ceph_volume/devices/lvm/zap.py

index 475be18a6b83de9f2e55d03ca284d9f8ee99bb99..b640f76d4a94388b6797c1a0668b0877a1cafb67 100644 (file)
@@ -86,6 +86,7 @@ class Zap(object):
         # name of device
         pvs = api.PVolumes()
         pvs.filter(pv_name=device)
+        vgs = set([pv.vg_name for pv in pvs])
         for pv in pvs:
             vg_name = pv.vg_name
             lv = api.get_lv(vg_name=vg_name, lv_uuid=pv.lv_uuid)
@@ -93,15 +94,12 @@ class Zap(object):
             if lv:
                 self.unmount_lv(lv)
 
-        if args.destroy and pvs:
-            logger.info("Found a physical volume created from %s, will destroy all it's vgs and lvs", device)
-            vg_name = pv.vg_name
-            mlogger.info("Destroying volume group %s because --destroy was given", vg_name)
-            api.remove_vg(vg_name)
+        if args.destroy:
+            for vg_name in vgs:
+                mlogger.info("Destroying volume group %s because --destroy was given", vg_name)
+                api.remove_vg(vg_name)
             mlogger.info("Destroying physical volume %s because --destroy was given", device)
             api.remove_pv(device)
-        elif args.destroy and not pvs:
-            mlogger.info("Skipping --destroy because no associated physical volumes are found for %s", device)
 
         wipefs(path)
         zap_data(path)