diff --git a/test/shell/listings.sh b/test/shell/listings.sh index 2121ecd3a..7069707c6 100644 --- a/test/shell/listings.sh +++ b/test/shell/listings.sh @@ -94,6 +94,7 @@ pvscan -e pvscan -s pvscan --novolumegroup vgscan --mknodes +vgmknodes --refresh lvscan lvmdiskscan diff --git a/test/shell/vgextend-restoremissing.sh b/test/shell/vgextend-restoremissing.sh index 143bff76d..8812c8cce 100644 --- a/test/shell/vgextend-restoremissing.sh +++ b/test/shell/vgextend-restoremissing.sh @@ -16,15 +16,37 @@ aux prepare_vg 3 lvcreate -an -Zn --type mirror -m 1 -l 1 -n mirror $vg lvcreate -l 1 -n lv1 $vg "$dev1" +# vgextend require vgname +invalid vgextend +# --metadatacopies => use --pvmetadatacopies +invalid vgextend --metadatacopies 3 $vg "$dev1" |& tee out +grep -- "use --pvmetadatacopies" out + +# VG name should exist +fail vgextend --restoremissing $vg-invalid "$dev1" + # try to just change metadata; we expect the new version (with MISSING_PV set # on the reappeared volume) to be written out to the previously missing PV aux disable_dev "$dev1" lvremove $vg/mirror +# try restore the still existing device +fail vgextend --restore $vg "$dev1" aux enable_dev "$dev1" not vgck $vg 2>&1 | tee log grep "missing 1 physical volume" log not lvcreate -aey --type mirror -m 1 -l 1 -n mirror $vg # write operations fail -vgextend --restore $vg "$dev1" # restore the missing device +# try restore the non-missing device +fail vgextend --restore $vg "$dev2" +# try restore the non-existing device +fail vgextend --restore $vg "$dev2-invalid" +# restore the missing device +vgextend --restore $vg "$dev1" + +vgreduce $vg "$dev3" +vgchange --metadatacopies 1 $vg +# 'n' failing to change volume group +fail vgextend --metadataignore y --pvmetadatacopies 2 $vg "$dev3" +vgextend --yes --metadataignore y --pvmetadatacopies 2 $vg "$dev3" vgck $vg lvcreate -an -Zn --type mirror -m 1 -l 1 -n mirror $vg