diff options
author | David Teigland <teigland@redhat.com> | 2021-08-18 16:23:48 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2021-08-18 16:27:53 -0500 |
commit | 74d1317da027bbdb355cd699787a6c108e9dde32 (patch) | |
tree | a002392fa4d505949e04f80bf6c30873756b3ddc | |
parent | 96b777167c63eaf2e8ef1a2e7a92dc6c66cbcd6a (diff) | |
download | lvm2-74d1317da027bbdb355cd699787a6c108e9dde32.tar.gz |
tests: adjust for check_devicesfile
-rw-r--r-- | test/lib/aux.sh | 56 | ||||
-rw-r--r-- | test/lib/inittest.sh | 2 | ||||
-rw-r--r-- | test/shell/allow-mixed-block-sizes.sh | 1 | ||||
-rw-r--r-- | test/shell/devicesfile-basic.sh | 87 | ||||
-rw-r--r-- | test/shell/duplicate-pvs-md0.sh | 6 | ||||
-rw-r--r-- | test/shell/hints.sh | 9 | ||||
-rw-r--r-- | test/shell/integrity-blocksize.sh | 4 | ||||
-rw-r--r-- | test/shell/losetup-partscan.sh | 2 | ||||
-rw-r--r-- | test/shell/process-each-duplicate-pvs.sh | 10 | ||||
-rw-r--r-- | test/shell/pv-duplicate-uuid.sh | 6 | ||||
-rw-r--r-- | test/shell/pv-ext-flags.sh | 2 | ||||
-rw-r--r-- | test/shell/pvcreate-restore.sh | 4 | ||||
-rw-r--r-- | test/shell/pvremove-thin.sh | 3 | ||||
-rw-r--r-- | test/shell/scan-lvs.sh | 3 | ||||
-rw-r--r-- | test/shell/snapshot-remove-dmsetup.sh | 3 | ||||
-rw-r--r-- | test/shell/snapshot-usage-exa.sh | 3 | ||||
-rw-r--r-- | test/shell/snapshot-usage.sh | 2 | ||||
-rw-r--r-- | test/shell/system_id.sh | 53 | ||||
-rw-r--r-- | test/shell/vg-check-devs-used.sh | 2 | ||||
-rw-r--r-- | test/shell/vgsplit-stacked.sh | 4 | ||||
-rw-r--r-- | test/shell/writecache-cache-blocksize-2.sh | 1 |
21 files changed, 214 insertions, 49 deletions
diff --git a/test/lib/aux.sh b/test/lib/aux.sh index bb189f466..67863d20b 100644 --- a/test/lib/aux.sh +++ b/test/lib/aux.sh @@ -1023,8 +1023,9 @@ prepare_devs() { if test -n "$LVM_TEST_DEVICES_FILE"; then mkdir -p "$TESTDIR/etc/lvm/devices" || true rm "$TESTDIR/etc/lvm/devices/system.devices" || true + touch "$TESTDIR/etc/lvm/devices/system.devices" for d in "${DEVICES[@]}"; do - lvmdevices --adddev "$dev" || true + lvmdevices --adddev "$d" || true done fi @@ -1342,9 +1343,19 @@ prepare_vg() { vgcreate $SHARED -s 512K "$vg" "${DEVICES[@]}" } +extend_devices() { + test -z "$LVM_TEST_DEVICES_FILE" && return + + for dev in "$@"; do + lvmdevices --adddev $dev + done +} + extend_filter() { local filter + test -n "$LVM_TEST_DEVICES_FILE" && return + filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1) for rx in "$@"; do filter=$(echo "$filter" | sed -e "s:\\[:[ \"$rx\", :") @@ -1355,6 +1366,8 @@ extend_filter() { extend_filter_md() { local filter + test -n "$LVM_TEST_DEVICES_FILE" && return + filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1) for rx in "$@"; do filter=$(echo "$filter" | sed -e "s:\\[:[ \"$rx\", :") @@ -1370,21 +1383,33 @@ extend_filter_LVMTEST() { hide_dev() { local filter - filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1) - for dev in "$@"; do - filter=$(echo "$filter" | sed -e "s:\\[:[ \"r|$dev|\", :") - done - lvmconf "$filter" + if test -n "$LVM_TEST_DEVICES_FILE"; then + for dev in "$@"; do + lvmdevices --deldev $dev + done + else + filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1) + for dev in "$@"; do + filter=$(echo "$filter" | sed -e "s:\\[:[ \"r|$dev|\", :") + done + lvmconf "$filter" + fi } unhide_dev() { local filter - filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1) - for dev in "$@"; do - filter=$(echo "$filter" | sed -e "s:\"r|$dev|\", ::") - done - lvmconf "$filter" + if test -n "$LVM_TEST_DEVICES_FILE"; then + for dev in "$@"; do + lvmdevices -y --adddev $dev + done + else + filter=$(grep ^devices/global_filter CONFIG_VALUES | tail -n 1) + for dev in "$@"; do + filter=$(echo "$filter" | sed -e "s:\"r|$dev|\", ::") + done + lvmconf "$filter" + fi } mkdev_md5sum() { @@ -1433,8 +1458,6 @@ backup/backup = 0 devices/cache_dir = "$TESTDIR/etc" devices/default_data_alignment = 1 devices/dir = "$DM_DEV_DIR" -devices/filter = "a|.*|" -devices/global_filter = [ "a|$DM_DEV_DIR/mapper/${PREFIX}.*pv[0-9_]*$|", "r|.*|" ] devices/md_component_detection = 0 devices/scan = "$DM_DEV_DIR" devices/sysfs_scan = 1 @@ -1478,6 +1501,13 @@ EOF } } + test "$LVM_TEST_DEVICES_FILE" -eq 1 || { + cat >> "$config_values" <<-EOF +devices/filter = "a|.*|" +devices/global_filter = [ "a|$DM_DEV_DIR/mapper/${PREFIX}.*pv[0-9_]*$|", "r|.*|" ] +EOF + } + # append all parameters (avoid adding empty \n) local v test $# -gt 0 && printf "%s\\n" "$@" >> "$config_values" diff --git a/test/lib/inittest.sh b/test/lib/inittest.sh index 4ca8ac59e..9f2713062 100644 --- a/test/lib/inittest.sh +++ b/test/lib/inittest.sh @@ -63,6 +63,8 @@ test -n "$SKIP_WITH_LVMPOLLD" && test -n "$LVM_TEST_LVMPOLLD" && test -z "$LVM_T test -n "$SKIP_WITH_LVMLOCKD" && test -n "$LVM_TEST_LVMLOCKD" && initskip +test -n "$SKIP_WITH_DEVICES_FILE" && test -n "$LVM_TEST_DEVICES_FILE" && initskip + unset CDPATH export LVM_TEST_BACKING_DEVICE LVM_TEST_DEVDIR LVM_TEST_NODEBUG LVM_TEST_FAILURE diff --git a/test/shell/allow-mixed-block-sizes.sh b/test/shell/allow-mixed-block-sizes.sh index 171942e4b..912f87781 100644 --- a/test/shell/allow-mixed-block-sizes.sh +++ b/test/shell/allow-mixed-block-sizes.sh @@ -45,6 +45,7 @@ for i in "$LOOP1" "$LOOP2"; do done aux extend_filter "a|$dev1|" "a|$dev2|" +aux extend_devices "$dev1" "$dev2" not vgcreate --config 'devices/allow_mixed_block_sizes=0' $vg "$dev1" "$dev2" vgcreate --config 'devices/allow_mixed_block_sizes=1' $vg "$dev1" "$dev2" diff --git a/test/shell/devicesfile-basic.sh b/test/shell/devicesfile-basic.sh index 8ad96e37d..53be895e7 100644 --- a/test/shell/devicesfile-basic.sh +++ b/test/shell/devicesfile-basic.sh @@ -287,35 +287,6 @@ pvscan --devices "$dev4" --cache -aay "$dev4" check lv_field $vg2/$lv2 lv_active "active" vgchange -an $vg2 - -# verify --devicesfile and --devices are not affected by a filter -# hide_dev excludes using existing filter -aux hide_dev "$dev2" -aux hide_dev "$dev4" -pvs --devicesfile test.devices "$dev1" -pvs --devicesfile test.devices "$dev2" -not pvs --devicesfile test.devices "$dev3" -not pvs --devicesfile test.devices "$dev4" -pvs --devices "$dev1" "$dev1" -pvs --devices "$dev2" "$dev2" -pvs --devices "$dev3" "$dev3" -pvs --devices "$dev4" "$dev4" -pvs --devices "$dev5" "$dev5" -pvs --devices "$dev1","$dev2","$dev3","$dev4","$dev5" "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" | tee out -grep "$dev1" out -grep "$dev2" out -grep "$dev3" out -grep "$dev4" out -grep "$dev5" out -vgchange --devices "$dev1","$dev2" -ay $vg1 -check lv_field $vg1/$lv1 lv_active "active" -lvchange --devices "$dev1","$dev2" -an $vg1/$lv1 -vgchange --devices "$dev3","$dev4" -ay $vg2 -check lv_field $vg2/$lv2 lv_active "active" -lvchange --devices "$dev3","$dev4" -an $vg2/$lv2 -aux unhide_dev "$dev2" -aux unhide_dev "$dev4" - vgchange --devicesfile "" -an vgremove --devicesfile "" -y $vg1 vgremove --devicesfile "" -y $vg2 @@ -636,3 +607,61 @@ grep "$dev2" "$DFDIR/test.devices" rm "$DFDIR/test.devices" vgcreate --devicesfile test.devices $vg3 "$dev3" grep "$dev3" "$DFDIR/test.devices" + +# +# verify --devicesfile and --devices are not affected by a filter +# This is last because it sets lvm.conf filter and +# I haven't found a way of removing the filter from +# the config after setting it. +# + +aux lvmconf 'devices/use_devicesfile = 0' +wipe_all +rm -f "$DF" +rm -f "$DFDIR/test.devices" + +vgcreate --devicesfile test.devices $vg1 "$dev1" "$dev2" +grep "$dev1" "$DFDIR/test.devices" +grep "$dev2" "$DFDIR/test.devices" +not ls "$DFDIR/system.devices" + +# create two VGs outside the special devices file +vgcreate $vg2 "$dev3" "$dev4" +vgcreate $vg3 "$dev5" "$dev6" +not grep "$dev3" "$DFDIR/test.devices" +not grep "$dev5" "$DFDIR/test.devices" +not ls "$DFDIR/system.devices" + +lvcreate -l4 -an -i2 -n $lv1 $vg1 +lvcreate -l4 -an -i2 -n $lv2 $vg2 +lvcreate -l4 -an -i2 -n $lv3 $vg3 + +aux lvmconf "devices/filter = [ \"r|$dev2|\" \"r|$dev4|\" ]" + +pvs --devicesfile test.devices "$dev1" +pvs --devicesfile test.devices "$dev2" +not pvs --devicesfile test.devices "$dev3" +not pvs --devicesfile test.devices "$dev4" +pvs --devices "$dev1" "$dev1" +pvs --devices "$dev2" "$dev2" +pvs --devices "$dev3" "$dev3" +pvs --devices "$dev4" "$dev4" +pvs --devices "$dev5" "$dev5" +pvs --devices "$dev1","$dev2","$dev3","$dev4","$dev5" "$dev1" "$dev2" "$dev3" "$dev4" "$dev5" | tee out +grep "$dev1" out +grep "$dev2" out +grep "$dev3" out +grep "$dev4" out +grep "$dev5" out +vgchange --devices "$dev1","$dev2" -ay $vg1 +check lv_field $vg1/$lv1 lv_active "active" +lvchange --devices "$dev1","$dev2" -an $vg1/$lv1 +vgchange --devices "$dev3","$dev4" -ay $vg2 +check lv_field $vg2/$lv2 lv_active "active" +lvchange --devices "$dev3","$dev4" -an $vg2/$lv2 + +vgchange -an --devicesfile test.devices $vg1 +vgremove -y --devicesfile test.devices $vg1 +vgremove -y $vg2 +vgremove -y $vg3 + diff --git a/test/shell/duplicate-pvs-md0.sh b/test/shell/duplicate-pvs-md0.sh index 82a179915..9156494e3 100644 --- a/test/shell/duplicate-pvs-md0.sh +++ b/test/shell/duplicate-pvs-md0.sh @@ -60,6 +60,7 @@ for pass in "auto" "start" ; do # aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2" mddev=$(< MD_DEV) +lvmdevices --adddev $mddev || true pvcreate "$mddev" PVIDMD=$(get pv_field "$mddev" uuid | tr -d - ) @@ -118,6 +119,7 @@ check inactive $vg $lv1 vgchange -an $vg vgremove -f $vg +lvmdevices --deldev $mddev || true aux cleanup_md_dev @@ -129,6 +131,7 @@ aux cleanup_md_dev aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2" mddev=$(< MD_DEV) +lvmdevices --adddev $mddev || true pvcreate "$mddev" PVIDMD=$(get pv_field "$mddev" uuid | tr -d - ) @@ -188,6 +191,7 @@ aux udev_wait aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=2 "$dev1" "$dev2" mddev=$(< MD_DEV) +lvmdevices --adddev $mddev || true pvcreate "$mddev" PVIDMD=$(get pv_field "$mddev" uuid | tr -d - ) @@ -235,6 +239,7 @@ test ! -f "$RUNDIR/lvm/pvs_online/$PVIDMD" test ! -f "$RUNDIR/lvm/vgs_online/$vg" aux enable_dev "$dev2" +lvmdevices --deldev $mddev || true aux cleanup_md_dev aux wipefs_a "$dev1" @@ -250,6 +255,7 @@ if [ "$MD_LEVEL" = "1" ] ; then # aux mdadm_create --metadata=1.0 --level="$MD_LEVEL" --chunk=64 --raid-devices=3 "$dev1" "$dev2" "$dev4" mddev=$(< MD_DEV) +lvmdevices --adddev $mddev || true pvcreate "$mddev" PVIDMD=$(get pv_field "$mddev" uuid | tr -d - ) diff --git a/test/shell/hints.sh b/test/shell/hints.sh index 3df875418..4fba5cae4 100644 --- a/test/shell/hints.sh +++ b/test/shell/hints.sh @@ -141,6 +141,12 @@ not cat $NEWHINTS # Test that adding a new device and removing a device # causes hints to be recreated. # +# with a devices file the appearance of a new device on +# the system does not disturb lvm, so this test doesn't +# apply +# + +if ! lvmdevices; then not pvs "$dev5" @@ -183,6 +189,9 @@ grep devs_hash $PREV > devs_hash1 grep devs_hash $HINTS > devs_hash2 not diff devs_hash1 devs_hash2 +# end of new device test for non-devicesfile case +fi + # # Test that hints don't change from a bunch of commands # that use hints and shouldn't change it. diff --git a/test/shell/integrity-blocksize.sh b/test/shell/integrity-blocksize.sh index a85070cc5..bf8def4ac 100644 --- a/test/shell/integrity-blocksize.sh +++ b/test/shell/integrity-blocksize.sh @@ -72,6 +72,10 @@ aux extend_filter "a|$LOOP1|" aux extend_filter "a|$LOOP2|" aux extend_filter "a|$LOOP3|" aux extend_filter "a|$LOOP4|" +aux extend_devices "$LOOP1" +aux extend_devices "$LOOP2" +aux extend_devices "$LOOP3" +aux extend_devices "$LOOP4" aux lvmconf 'devices/scan = "/dev"' diff --git a/test/shell/losetup-partscan.sh b/test/shell/losetup-partscan.sh index aa752064c..99f552ad1 100644 --- a/test/shell/losetup-partscan.sh +++ b/test/shell/losetup-partscan.sh @@ -34,6 +34,7 @@ ls -la "${LOOP}"* test -e "${LOOP}p1" aux extend_filter "a|$LOOP|" +aux extend_devices "$LOOP" # creation should fail for 'partitioned' loop device not pvcreate -y "$LOOP" @@ -57,6 +58,7 @@ ls -la "${LOOP}"* test ! -e "${LOOP}p1" aux extend_filter "a|$LOOP|" +aux extend_devices "$LOOP" # creation should pass for 'non-partitioned' loop device pvcreate -y "$LOOP" diff --git a/test/shell/process-each-duplicate-pvs.sh b/test/shell/process-each-duplicate-pvs.sh index ffd085a9a..bf86c141f 100644 --- a/test/shell/process-each-duplicate-pvs.sh +++ b/test/shell/process-each-duplicate-pvs.sh @@ -11,6 +11,16 @@ test_description='Test duplicate PVs' SKIP_WITH_LVMPOLLD=1 SKIP_WITH_CLVMD=1 +# This test should work with real device ids (not devnames). +# When PVs are being overwritten by the test, the devices file is +# excluding them since with idtype=devname the devices file falls +# back to including devs based on PVIDs in the devices file, +# but the 'dd' is clobbering the PVIDs so those devs aren't included +# so the 'pvs' commands below don't report them. +# In general this is better behavior, but needs to be tested +# with proper device ids. +SKIP_WITH_DEVICES_FILE=1 + . lib/inittest aux prepare_devs 6 16 diff --git a/test/shell/pv-duplicate-uuid.sh b/test/shell/pv-duplicate-uuid.sh index 37d851401..ac2b866f5 100644 --- a/test/shell/pv-duplicate-uuid.sh +++ b/test/shell/pv-duplicate-uuid.sh @@ -20,8 +20,8 @@ aux prepare_devs 3 pvcreate "$dev1" UUID1=$(get pv_field "$dev1" uuid) -pvcreate --config "devices{filter=[\"a|$dev2|\",\"r|.*|\"]}" -u "$UUID1" --norestorefile "$dev2" -pvcreate --config "devices{filter=[\"a|$dev3|\",\"r|.*|\"]}" -u "$UUID1" --norestorefile "$dev3" +pvcreate --devices "$dev2" -u "$UUID1" --norestorefile "$dev2" +pvcreate --devices "$dev3" -u "$UUID1" --norestorefile "$dev3" pvscan --cache 2>&1 | tee out @@ -35,7 +35,7 @@ test "$(grep -c $UUID1 main)" -eq 1 COUNT=$(grep --count "Not using device" warn) [ "$COUNT" -eq 2 ] -pvs -o+uuid --config "devices{filter=[\"a|$dev2|\",\"r|.*|\"]}" 2>&1 | tee out +pvs -o+uuid --devices $dev2 2>&1 | tee out rm warn main || true grep WARNING out > warn || true diff --git a/test/shell/pv-ext-flags.sh b/test/shell/pv-ext-flags.sh index 22e9b3aac..3e6bcff76 100644 --- a/test/shell/pv-ext-flags.sh +++ b/test/shell/pv-ext-flags.sh @@ -64,6 +64,7 @@ dd if=dev1_backup of="$dev1" bs=1M # prepare a VG with $dev1 and $dev both having 1 MDA aux enable_dev "$dev2" vgremove -ff $vg1 +pvremove -ff -y "$dev1" pvcreate --metadatacopies 1 "$dev1" vgcreate $vg1 "$dev1" "$dev2" @@ -122,6 +123,7 @@ dd if=dev1_backup of="$dev1" bs=1M # prepare a VG with $dev1 and $dev both having 1 MDA aux enable_dev "$dev2" vgremove -ff $vg1 +pvremove -ff -y "$dev1" pvcreate --metadatacopies 1 "$dev1" vgcreate $vg1 "$dev1" "$dev2" diff --git a/test/shell/pvcreate-restore.sh b/test/shell/pvcreate-restore.sh index d0b46eb2b..0e4a5dcba 100644 --- a/test/shell/pvcreate-restore.sh +++ b/test/shell/pvcreate-restore.sh @@ -22,6 +22,10 @@ lvcreate --type snapshot -s -L10 -n $lv2 $vg --virtualsize 4T lvcreate --type snapshot -s -L10 -n $lv3 $vg --virtualsize 4194300M aux extend_filter_LVMTEST +aux lvmconf "devices/scan_lvs = 1" +extend_devices "$DM_DEV_DIR/$vg/$lv1" +extend_devices "$DM_DEV_DIR/$vg/$lv2" +extend_devices "$DM_DEV_DIR/$vg/$lv3" vgcreate $vg1 "$DM_DEV_DIR/$vg/$lv2" diff --git a/test/shell/pvremove-thin.sh b/test/shell/pvremove-thin.sh index 9859b6cad..451255746 100644 --- a/test/shell/pvremove-thin.sh +++ b/test/shell/pvremove-thin.sh @@ -26,6 +26,9 @@ aux extend_filter_LVMTEST lvcreate -L10 -V10 -n $lv1 -T $vg/pool1 +aux extend_devices "$DM_DEV_DIR/$vg/$lv1" +aux lvmconf "devices/scan_lvs = 1" + pvcreate "$DM_DEV_DIR/$vg/$lv1" pvremove "$DM_DEV_DIR/$vg/$lv1" diff --git a/test/shell/scan-lvs.sh b/test/shell/scan-lvs.sh index f49bf4df5..fe11201f5 100644 --- a/test/shell/scan-lvs.sh +++ b/test/shell/scan-lvs.sh @@ -15,8 +15,8 @@ SKIP_WITH_LVMPOLLD=1 . lib/inittest -# Sets 'scan_lvs = 1' aux extend_filter_LVMTEST +aux lvmconf "devices/scan_lvs = 1" aux prepare_pvs 1 @@ -24,6 +24,7 @@ vgcreate $SHARED $vg1 "$dev1" lvcreate -l1 -n $lv1 $vg1 +aux extend_devices "$DM_DEV_DIR/$vg1/$lv1" pvcreate "$DM_DEV_DIR/$vg1/$lv1" pvs "$DM_DEV_DIR/$vg1/$lv1" diff --git a/test/shell/snapshot-remove-dmsetup.sh b/test/shell/snapshot-remove-dmsetup.sh index 2ef65a596..ab5e2e9ff 100644 --- a/test/shell/snapshot-remove-dmsetup.sh +++ b/test/shell/snapshot-remove-dmsetup.sh @@ -23,10 +23,11 @@ aux prepare_vg 5 # Create stacked device lvcreate --type snapshot -s -L10 -n $lv1 $vg --virtualsize 100M +aux lvmconf "devices/scan_lvs = 1" aux extend_filter_LVMTEST +aux extend_devices "$DM_DEV_DIR"/$vg/$lv1 vgcreate $vg1 "$DM_DEV_DIR"/$vg/$lv1 - lvcreate -L20 -n $lv1 $vg1 lvcreate -L10 -n snap -s $vg1/$lv1 diff --git a/test/shell/snapshot-usage-exa.sh b/test/shell/snapshot-usage-exa.sh index 5d666bf43..475960df7 100644 --- a/test/shell/snapshot-usage-exa.sh +++ b/test/shell/snapshot-usage-exa.sh @@ -26,7 +26,10 @@ get_devs # Prepare large enough backend device vgcreate -s 4M "$vg" "${DEVICES[@]}" lvcreate --type snapshot -s -l 100%FREE -n $lv $vg --virtualsize 15P + +aux lvmconf "devices/scan_lvs = 1" aux extend_filter_LVMTEST +aux extend_devices "$DM_DEV_DIR/$vg/$lv" # Check usability with largest extent size pvcreate "$DM_DEV_DIR/$vg/$lv" diff --git a/test/shell/snapshot-usage.sh b/test/shell/snapshot-usage.sh index bcfa16a3e..0f14dd6e0 100644 --- a/test/shell/snapshot-usage.sh +++ b/test/shell/snapshot-usage.sh @@ -77,6 +77,8 @@ lvremove -f $vg lvcreate --type snapshot -s -l 100%FREE -n $lv $vg --virtualsize $TSIZE aux extend_filter_LVMTEST +aux extend_devices "$DM_DEV_DIR/$vg/$lv" +aux lvmconf "devices/scan_lvs = 1" aux lvmconf "activation/snapshot_autoextend_percent = 20" \ "activation/snapshot_autoextend_threshold = 50" diff --git a/test/shell/system_id.sh b/test/shell/system_id.sh index 8814d5497..ee51ca179 100644 --- a/test/shell/system_id.sh +++ b/test/shell/system_id.sh @@ -27,6 +27,19 @@ aux prepare_devs 1 SIDFILE="etc/lvm_test.conf" LVMLOCAL="etc/lvmlocal.conf" +DFDIR="$LVM_SYSTEM_DIR/devices" +DF="$DFDIR/system.devices" + +# Avoid system id validation in the devices file +# which gets in the way of the test switching the +# local system id. +clear_df_systemid() { + if [[ -f $DF ]]; then + sed -e "s|SYSTEMID=.||" "$DF" > tmpdf + cp tmpdf $DF + fi +} + # create vg with system_id using each source ## none @@ -38,7 +51,8 @@ check vg_field $vg1 systemid "$SID" vgremove $vg1 # FIXME - print 'life' config data -eval "$(lvmconfig global/etc 2>/dev/null || lvmconfig --type default global/etc)" +#eval "$(lvmconfig global/etc 2>/dev/null || lvmconfig --type default global/etc)" +etc="/etc" ## machineid if [ -e "$etc/machine-id" ]; then @@ -77,6 +91,7 @@ rm -f "$LVMLOCAL" SID=sidfoofile echo "$SID" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" vgcreate $vg1 "$dev1" @@ -89,6 +104,7 @@ vgremove $vg1 SID1=sidfoofile1 SID2=sidfoofile2 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg, overriding the local system_id so the vg looks foreign @@ -108,6 +124,7 @@ vgs --foreign $vg1 >err grep $vg1 err # change the local system_id to the second value, making the vg not foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # we can now see and remove the vg vgs $vg1 >err grep $vg1 err @@ -118,6 +135,7 @@ vgremove $vg1 SID1=sidfoofile1 SID2=sidfoofile2 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -127,6 +145,7 @@ vgs >err grep $vg1 err # change the local system_id, making the vg foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # normal vgs doesn't see the vg vgs >err not grep $vg1 err @@ -135,6 +154,7 @@ vgs --foreign >err grep $vg1 err # change the local system_id back to the first value, making the vg not foreign echo "$SID1" > "$SIDFILE" +clear_df_systemid vgs >err grep $vg1 err vgremove $vg1 @@ -144,6 +164,7 @@ vgremove $vg1 SID1=sidfoofile1 SID2=sidfoofile2 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -161,6 +182,7 @@ vgs --foreign >err grep $vg1 err # change the local system_id to the second system_id so we can remove the vg echo "$SID2" > "$SIDFILE" +clear_df_systemid vgs >err grep $vg1 err vgremove $vg1 @@ -172,6 +194,7 @@ vgremove $vg1 SID1=sidfoofile1 SID2=sidfoofile2 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -183,6 +206,7 @@ grep $vg1 err check lv_exists $vg1 $lv1 # change our system_id, making the vg foreign, but accessible echo "$SID2" > "$SIDFILE" +clear_df_systemid vgs >err grep $vg1 err check lv_exists $vg1 $lv1 @@ -193,6 +217,7 @@ not lvremove $vg1/$lv1 not vgremove $vg1 # change our system_id back to match the vg so it's not foreign echo "$SID1" > "$SIDFILE" +clear_df_systemid vgs >err grep $vg1 err lvremove $vg1/$lv1 @@ -202,6 +227,7 @@ vgremove $vg1 SID1=sidfoofile1 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -220,12 +246,14 @@ vgremove $vg1 SID1=sidfoofile1 rm -f "$SIDFILE" +clear_df_systemid # create a vg with no system_id aux lvmconf "global/system_id_source = none" vgcreate $vg1 "$dev1" check vg_field $vg1 systemid "" # set a local system_id echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # check we can see and use the vg with no system_id @@ -239,6 +267,7 @@ vgremove $vg1 SID1=sidfoofile1 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -269,6 +298,7 @@ SID2=012345678901234567890123456789012345678901234567890123456789012345678901234 # max len system_id should appear normally echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -281,6 +311,7 @@ vgremove $vg1 # max+1 len system_id should be missing the last character echo "$SID2" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -300,6 +331,7 @@ SID1=012345678901234567890123456789012345678901234567890123456789012345678901234 # The string is truncated to max length (128) before the invalid character is omitted SID2=012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789abcdefg echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -316,6 +348,7 @@ SID1="?%$&A.@1]" # SID1 without the invalid characters SID2=A.1 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -334,6 +367,7 @@ vgremove $vg1 SID1=sidfoofile1 SID2=sidfoofile2 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -344,6 +378,7 @@ grep $vg1 err grep "$dev1" err # change the local system_id, making the vg foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # normal pvs does not see the vg or pv pvs >err not grep $vg1 err @@ -354,6 +389,7 @@ grep $vg1 err grep "$dev1" err # change the local system_id back so the vg can be removed echo "$SID1" > "$SIDFILE" +clear_df_systemid vgremove $vg1 rm -f "$SIDFILE" @@ -363,6 +399,7 @@ rm -f "$SIDFILE" SID1=sidfoofile1 SID2=sidfoofile2 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -375,6 +412,7 @@ grep $vg1 err grep $lv1 err # change the local system_id, making the vg foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # normal lvs does not see the vg or lv lvs >err not grep $vg1 err @@ -385,6 +423,7 @@ grep $vg1 err grep $lv1 err # change the local system_id back so the vg can be removed echo "$SID1" > "$SIDFILE" +clear_df_systemid lvremove $vg1/$lv1 vgremove $vg1 rm -f "$SIDFILE" @@ -395,6 +434,7 @@ SID1=sidfoofile1 SID2=sidfoofile2 rm -f "$LVMLOCAL" echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -404,6 +444,7 @@ vgs >err grep $vg1 err # change the local system_id, making the vg foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # normal vgs doesn't see the vg vgs >err not grep $vg1 err @@ -420,6 +461,7 @@ rm -f "$LVMLOCAL" # vgcreate --systemid "" creates a vg without a system_id even if source is set SID1=sidfoofile1 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -436,6 +478,7 @@ rm -f "$SIDFILE" # vgchange --systemid "" clears the system_id on owned vg SID1=sidfoofile1 echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -461,6 +504,7 @@ SID1=sidfoofile1 SID2=sidfoofile2 rm -f "$LVMLOCAL" echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -470,6 +514,7 @@ vgs >err grep $vg1 err # change the local system_id, making the vg foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # normal vgs doesn't see the vg vgs >err not grep $vg1 err @@ -482,6 +527,7 @@ not vgchange --yes --systemid "" $vg1 not vgchange --yes --systemid foo $vg1 # change our system_id back so we can remove the vg echo "$SID1" > "$SIDFILE" +clear_df_systemid vgremove $vg1 # vgcfgbackup backs up foreign vg with --foreign @@ -489,6 +535,7 @@ SID1=sidfoofile1 SID2=sidfoofile2 rm -f "$LVMLOCAL" echo "$SID1" > "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" # create a vg @@ -498,6 +545,7 @@ vgs >err grep $vg1 err # change the local system_id, making the vg foreign echo "$SID2" > "$SIDFILE" +clear_df_systemid # normal vgs doesn't see the vg vgs >err not grep $vg1 err @@ -506,6 +554,7 @@ not vgcfgbackup $vg1 vgcfgbackup --foreign $vg1 # change our system_id back so we can remove the vg echo "$SID1" > "$SIDFILE" +clear_df_systemid vgremove $vg1 rm -f "$SIDFILE" @@ -562,6 +611,7 @@ rm -f $LVMLOCAL # vgcreate with source file, but no system_id_file config SID="" rm -f "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" vgcreate $vg1 "$dev1" 2>&1 | tee err vgs -o+systemid $vg1 @@ -572,6 +622,7 @@ vgremove $vg1 # vgcreate with source file, but system_id_file does not exist SID="" rm -f "$SIDFILE" +clear_df_systemid aux lvmconf "global/system_id_source = file" \ "global/system_id_file = \"$SIDFILE\"" vgcreate $vg1 "$dev1" 2>&1 | tee err diff --git a/test/shell/vg-check-devs-used.sh b/test/shell/vg-check-devs-used.sh index 3b911bc10..15cdff624 100644 --- a/test/shell/vg-check-devs-used.sh +++ b/test/shell/vg-check-devs-used.sh @@ -23,7 +23,7 @@ aux prepare_devs 3 8 vgcreate $SHARED "$vg" "$dev1" "$dev2" lvcreate -l100%FREE -n $lv $vg dd if="$dev1" of="$dev3" bs=1M oflag=direct -pvs --config "devices/global_filter = [ \"a|$dev2|\", \"a|$dev3|\", \"r|.*|\" ]" 2>err +pvs --devices $dev2,$dev3 2>err grep "WARNING: Device mismatch detected for $vg/$lv which is accessing $dev1 instead of $dev3" err dd if=/dev/zero of="$dev3" bs=1M count=8 oflag=direct diff --git a/test/shell/vgsplit-stacked.sh b/test/shell/vgsplit-stacked.sh index 331ee8e86..085d65b44 100644 --- a/test/shell/vgsplit-stacked.sh +++ b/test/shell/vgsplit-stacked.sh @@ -16,11 +16,15 @@ SKIP_WITH_LVMPOLLD=1 . lib/inittest aux extend_filter_LVMTEST +aux lvmconf "devices/scan_lvs = 1" + aux prepare_pvs 3 vgcreate $SHARED $vg1 "$dev1" "$dev2" lvcreate -n $lv1 -l 100%FREE $vg1 +aux extend_devices "$DM_DEV_DIR/$vg/$lv1" + #top VG pvcreate "$DM_DEV_DIR/$vg1/$lv1" vgcreate $SHARED $vg "$DM_DEV_DIR/$vg1/$lv1" "$dev3" diff --git a/test/shell/writecache-cache-blocksize-2.sh b/test/shell/writecache-cache-blocksize-2.sh index dfb4f19a1..9b5d15365 100644 --- a/test/shell/writecache-cache-blocksize-2.sh +++ b/test/shell/writecache-cache-blocksize-2.sh @@ -201,6 +201,7 @@ blockdev --getpbsz "$LOOP1" | grep 512 blockdev --getpbsz "$LOOP2" | grep 512 aux extend_filter "a|$dev3|" "a|$dev4|" +aux extend_devices "$dev3" "$dev4" # place main LV on dev1 with LBS 512, PBS 4096 # and the cache on dev3 with LBS 512, PBS 512 |