Added lvm support for removing partitions

Change-Id: I48322db9181eea36c74473c81809f65e35264aa9
Related-Prod: PROD-34370
diff --git a/src/com/mirantis/mk/Ceph.groovy b/src/com/mirantis/mk/Ceph.groovy
index bb837b2..5326321 100644
--- a/src/com/mirantis/mk/Ceph.groovy
+++ b/src/com/mirantis/mk/Ceph.groovy
@@ -41,52 +41,62 @@
     def salt = new com.mirantis.mk.Salt()
     def common = new com.mirantis.mk.Common()
     def partition = ""
-    if (type == 'lockbox') {
-        try {
-            // umount - partition = /dev/sdi2
-            partition = salt.cmdRun(master, target, "lsblk -rp | grep -v mapper | grep ${partition_uuid} ")['return'][0].values()[0].split()[0]
-            salt.cmdRun(master, target, "umount ${partition}")
-        } catch (Exception e) {
-            common.warningMsg(e)
+    def dev = ''
+    def lvm_enabled = salt.getPillar(master, "I@ceph:osd", "ceph:osd:lvm_enabled")['return'].first().containsValue(true)
+    if ( !lvm_enabled ){
+        if (type == 'lockbox') {
+            try {
+                // umount - partition = /dev/sdi2
+                partition = salt.cmdRun(master, target, "lsblk -rp | grep -v mapper | grep ${partition_uuid} ")['return'][0].values()[0].split()[0]
+                salt.cmdRun(master, target, "umount ${partition}")
+            } catch (Exception e) {
+                common.warningMsg(e)
+            }
+        } else if (type == 'data') {
+            try {
+                // umount - partition = /dev/sdi2
+                partition = salt.cmdRun(master, target, "df | grep /var/lib/ceph/osd/ceph-${id}")['return'][0].values()[0].split()[0]
+                salt.cmdRun(master, target, "umount ${partition}")
+            } catch (Exception e) {
+                common.warningMsg(e)
+            }
+            try {
+                // partition = /dev/sdi2
+                partition = salt.cmdRun(master, target, "blkid | grep ${partition_uuid} ")['return'][0].values()[0].split(":")[0]
+            } catch (Exception e) {
+                common.warningMsg(e)
+            }
+        } else {
+            try {
+                // partition = /dev/sdi2
+                partition = salt.cmdRun(master, target, "blkid | grep ${partition_uuid} ")['return'][0].values()[0].split(":")[0]
+            } catch (Exception e) {
+                common.warningMsg(e)
+            }
         }
-    } else if (type == 'data') {
-        try {
-            // umount - partition = /dev/sdi2
-            partition = salt.cmdRun(master, target, "df | grep /var/lib/ceph/osd/ceph-${id}")['return'][0].values()[0].split()[0]
-            salt.cmdRun(master, target, "umount ${partition}")
-        } catch (Exception e) {
-            common.warningMsg(e)
-        }
-        try {
-            // partition = /dev/sdi2
-            partition = salt.cmdRun(master, target, "blkid | grep ${partition_uuid} ")['return'][0].values()[0].split(":")[0]
-        } catch (Exception e) {
-            common.warningMsg(e)
-        }
-    } else {
-        try {
-            // partition = /dev/sdi2
-            partition = salt.cmdRun(master, target, "blkid | grep ${partition_uuid} ")['return'][0].values()[0].split(":")[0]
-        } catch (Exception e) {
-            common.warningMsg(e)
+        if (partition?.trim()) {
+            if (partition.contains("nvme")) {
+                // partition = /dev/nvme1n1p2
+                // dev = /dev/nvme1n1
+                dev = partition.replaceAll('p\\d+$', "")
+                // part_id = 2
+                def part_id = partition.substring(partition.lastIndexOf("p") + 1).replaceAll("[^0-9]+", "")
+
+            } else {
+                // partition = /dev/sdi2
+                // dev = /dev/sdi
+                dev = partition.replaceAll('\\d+$', "")
+                // part_id = 2
+                def part_id = partition.substring(partition.lastIndexOf("/") + 1).replaceAll("[^0-9]+", "")
+            }
         }
     }
-    if (partition?.trim()) {
-        if (partition.contains("nvme")) {
-            // partition = /dev/nvme1n1p2
-            // dev = /dev/nvme1n1
-            def dev = partition.replaceAll('p\\d+$', "")
-            // part_id = 2
-            def part_id = partition.substring(partition.lastIndexOf("p") + 1).replaceAll("[^0-9]+", "")
-
-        } else {
-            // partition = /dev/sdi2
-            // dev = /dev/sdi
-            def dev = partition.replaceAll('\\d+$', "")
-            // part_id = 2
-            def part_id = partition.substring(partition.lastIndexOf("/") + 1).replaceAll("[^0-9]+", "")
-        }
-        salt.cmdRun(master, target, "Ignore | parted ${dev} rm ${part_id}")
+    if (lvm_enabled && type != 'lockbox') {
+        salt.cmdRun(master, target, "ceph-volume lvm zap ${partition_uuid} --destroy")
+    } else if (dev != '') {
+        salt.cmdRun(master, target, "parted ${dev} rm ${part_id}")
+    } else {
+        common.infoMsg("Did not found any device to be wiped.")
     }
     return
 }