Browse code

Remove VGs when cleaning LVM up in devstack

This patch adds removing of the volume group
before removing the loopback device and
the backing file when performing LVM cleanup
in unstack.sh

Without this commit:

unstack.sh removes logical volumes, removes the
loopback devices and deletes the backing file
but leaves a dangling volume group

$ ./stack.sh && ./unstack.sh
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
stack-volumes-default 1 0 0 wz--n- 10.01g 10.01g
$ sudo losetup -a
$ sudo vgremove stack-volumes-default
/dev/loop0: lseek 4096 failed: Invalid argument
vg_remove_mdas stack-volumes-default failed

With this commit:

unstack.sh removes volume groups after removing
all logical volumes but before removing
the loopback device and deleting the backing file

Partial-Bug: 1441236
Change-Id: Id9c06fa50f6cad28764f5a3396f559cac9999649

Bogdan Katynski authored on 2017/06/28 20:34:52
Showing 1 changed files
... ...
@@ -35,7 +35,7 @@ BACKING_FILE_SUFFIX=-backing-file
35 35
 
36 36
 # _clean_lvm_volume_group removes all default LVM volumes
37 37
 #
38
-# Usage: clean_lvm_volume_group $vg
38
+# Usage: _clean_lvm_volume_group $vg
39 39
 function _clean_lvm_volume_group {
40 40
     local vg=$1
41 41
 
... ...
@@ -43,6 +43,16 @@ function _clean_lvm_volume_group {
43 43
     sudo lvremove -f $vg
44 44
 }
45 45
 
46
+# _remove_lvm_volume_group removes the volume group
47
+#
48
+# Usage: _remove_lvm_volume_group $vg
49
+function _remove_lvm_volume_group {
50
+    local vg=$1
51
+
52
+    # Remove the volume group
53
+    sudo vgremove -f $vg
54
+}
55
+
46 56
 # _clean_lvm_backing_file() removes the backing file of the
47 57
 # volume group
48 58
 #
... ...
@@ -69,6 +79,7 @@ function clean_lvm_volume_group {
69 69
     local vg=$1
70 70
 
71 71
     _clean_lvm_volume_group $vg
72
+    _remove_lvm_volume_group $vg
72 73
     # if there is no logical volume left, it's safe to attempt a cleanup
73 74
     # of the backing file
74 75
     if [[ -z "$(sudo lvs --noheadings -o lv_name $vg 2>/dev/null)" ]]; then