23 lines
1.5 KiB
Bash
23 lines
1.5 KiB
Bash
vgf() { vgs --noheadings --units m --nosuffix -o "$2" "$1" 2>/dev/null | tr -d ' '; }
|
|
lvf() { lvs --noheadings --units m --nosuffix -o "$2" "$1" 2>/dev/null | tr -d ' '; }
|
|
pv_vg() { pvs --noheadings -o vg_name "$1" 2>/dev/null | tr -d ' '; }
|
|
|
|
task 1 "vgdata with 8 MiB extents; lvdata of 50 extents"
|
|
need "volume group vgdata exists" vgs vgdata
|
|
need "/dev/loop40p1 is a physical volume in vgdata" '[ "$(pv_vg /dev/loop40p1)" = vgdata ]'
|
|
need "vgdata's extents are 8 MiB" '[ "$(vgf vgdata vg_extent_size)" = 8.00 ]'
|
|
need "logical volume vgdata/lvdata exists" lvs vgdata/lvdata
|
|
need "lvdata is 50 extents (400 MiB)" '[ "$(lvf vgdata/lvdata lv_size)" = 400.00 ]'
|
|
|
|
task 2 "/dev/loop40p2 in vgdata; lvrest uses all the space left"
|
|
need "/dev/loop40p2 is a physical volume in vgdata" '[ "$(pv_vg /dev/loop40p2)" = vgdata ]'
|
|
need "vgdata has 2 physical volumes" '[ "$(vgf vgdata pv_count)" = 2 ]'
|
|
need "logical volume vgdata/lvrest exists" lvs vgdata/lvrest
|
|
need "vgdata has no free space left" '[ "$(vgf vgdata vg_free_count)" = 0 ]'
|
|
|
|
task 3 "vgold, its logical volumes and physical volumes removed"
|
|
need "lvone and lvtwo are gone" '! lvs vgold/lvone && ! lvs vgold/lvtwo'
|
|
need "volume group vgold is gone" '! vgs vgold'
|
|
need "/dev/loop41p1 and /dev/loop41p2 are no longer physical volumes" '! pvs /dev/loop41p1 && ! pvs /dev/loop41p2'
|
|
need "lsblk -f shows no LVM2_member on them" '[ -b /dev/loop41p1 ] && [ -b /dev/loop41p2 ] && ! blkid -p /dev/loop41p1 /dev/loop41p2 | grep -q LVM2_member'
|