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
This commit is contained in:
Bogdan Katynski 2017-06-28 12:34:52 +01:00
parent 254116305c
commit 8175df1912

13
lib/lvm
View File

@ -35,7 +35,7 @@ BACKING_FILE_SUFFIX=-backing-file
# _clean_lvm_volume_group removes all default LVM volumes
#
# Usage: clean_lvm_volume_group $vg
# Usage: _clean_lvm_volume_group $vg
function _clean_lvm_volume_group {
local vg=$1
@ -43,6 +43,16 @@ function _clean_lvm_volume_group {
sudo lvremove -f $vg
}
# _remove_lvm_volume_group removes the volume group
#
# Usage: _remove_lvm_volume_group $vg
function _remove_lvm_volume_group {
local vg=$1
# Remove the volume group
sudo vgremove -f $vg
}
# _clean_lvm_backing_file() removes the backing file of the
# volume group
#
@ -69,6 +79,7 @@ function clean_lvm_volume_group {
local vg=$1
_clean_lvm_volume_group $vg
_remove_lvm_volume_group $vg
# if there is no logical volume left, it's safe to attempt a cleanup
# of the backing file
if [[ -z "$(sudo lvs --noheadings -o lv_name $vg 2>/dev/null)" ]]; then