1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/test/shell/vgimportdevices.sh
2023-02-10 17:50:27 +01:00

308 lines
5.9 KiB
Bash

#!/usr/bin/env bash
# Copyright (C) 2020 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
# of the GNU General Public License v.2.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
test_description='vgimportdevices'
. lib/inittest
aux prepare_devs 5
DFDIR="$LVM_SYSTEM_DIR/devices"
mkdir "$DFDIR" || true
DF="$DFDIR/system.devices"
aux lvmconf 'devices/use_devicesfile = 1'
not ls "$DF"
pvcreate "$dev1"
ls "$DF"
grep "$dev1" "$DF"
rm -f "$DF"
dd if=/dev/zero of="$dev1" bs=1M count=1
#
# vgimportdevices -a with no prev df
#
# no devs found
not vgimportdevices -a
not ls "$DF"
# one orphan pv, no vgs
pvcreate "$dev1"
rm -f "$DF"
not vgimportdevices -a
not ls "$DF"
# one complete vg
vgcreate $vg1 "$dev1"
rm -f "$DF"
vgimportdevices -a
ls "$DF"
grep "$dev1" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
rm -f "$DF"
# two complete vgs
vgcreate $vg1 "$dev1"
vgcreate $vg2 "$dev2"
rm -f "$DF"
vgimportdevices -a
ls "$DF"
grep "$dev1" "$DF"
grep "$dev2" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
rm -f "$DF"
# one incomplete vg
vgcreate $vg1 "$dev1" "$dev2"
lvcreate -l1 -an $vg1
rm -f "$DF"
dd if=/dev/zero of="$dev1" bs=1M count=1
not vgimportdevices -a
not ls "$DF"
vgs $vg1
pvs "$dev2"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
rm -f "$DF"
# three complete, one incomplete vg
vgcreate $vg1 "$dev1"
vgcreate $vg2 "$dev2"
vgcreate $vg3 "$dev3"
vgcreate $vg4 "$dev4" "$dev5"
rm -f "$DF"
dd if=/dev/zero of="$dev5" bs=1M count=1
vgimportdevices -a
ls "$DF"
grep "$dev1" "$DF"
grep "$dev2" "$DF"
grep "$dev3" "$DF"
not grep "$dev4" "$DF"
not grep "$dev5" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
dd if=/dev/zero of="$dev3" bs=1M count=1
dd if=/dev/zero of="$dev4" bs=1M count=1
rm -f "$DF"
#
# vgimportdevices -a with existing df
#
# no devs found
vgcreate $vg1 "$dev1"
grep "$dev1" "$DF"
dd if=/dev/zero of="$dev1" bs=1M count=1
not vgimportdevices -a
ls "$DF"
# one complete vg
vgcreate $vg1 "$dev1"
vgimportdevices -a
grep "$dev1" "$DF"
vgcreate --devicesfile "" $vg2 "$dev2"
not grep "$dev2" "$DF"
vgimportdevices -a
grep "$dev1" "$DF"
grep "$dev2" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
rm -f "$DF"
# two complete vgs
vgcreate --devicesfile "" $vg1 "$dev1"
vgcreate --devicesfile "" $vg2 "$dev2"
rm -f "$DF"
vgimportdevices -a
ls "$DF"
grep "$dev1" "$DF"
grep "$dev2" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
rm -f "$DF"
# one incomplete vg
vgcreate $vg1 "$dev1"
vgimportdevices -a
grep "$dev1" "$DF"
dd if=/dev/zero of="$dev1" bs=1M count=1
vgcreate --devicesfile "" $vg2 "$dev2" "$dev3"
not grep "$dev2" "$DF"
not grep "$dev3" "$DF"
dd if=/dev/zero of="$dev2" bs=1M count=1
not vgimportdevices -a
ls "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
dd if=/dev/zero of="$dev3" bs=1M count=1
rm -f "$DF"
# import the same vg again
vgcreate --devicesfile "" $vg1 "$dev1"
not ls "$DF"
vgimportdevices -a
ls "$DF"
grep "$dev1" "$DF"
vgimportdevices -a
ls "$DF"
grep "$dev1" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
rm -f "$DF"
# import a series of vgs
vgcreate --devicesfile "" $vg1 "$dev1"
vgimportdevices -a
grep "$dev1" "$DF"
vgcreate --devicesfile "" $vg2 "$dev2"
vgimportdevices -a
grep "$dev1" "$DF"
grep "$dev2" "$DF"
vgcreate --devicesfile "" $vg3 "$dev3"
vgimportdevices -a
grep "$dev1" "$DF"
grep "$dev2" "$DF"
grep "$dev3" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
dd if=/dev/zero of="$dev3" bs=1M count=1
rm -f "$DF"
#
# vgimportdevices vg with no prev df
#
# no devs found
not vgimportdevices $vg1
not ls "$DF"
# one complete vg
vgcreate $vg1 "$dev1"
rm -f "$DF"
vgimportdevices $vg1
ls "$DF"
grep "$dev1" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
rm -f "$DF"
# two complete vgs
vgcreate $vg1 "$dev1"
vgcreate $vg2 "$dev2"
rm -f "$DF"
vgimportdevices $vg1
ls "$DF"
grep "$dev1" "$DF"
vgimportdevices $vg2
ls "$DF"
grep "$dev2" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
rm -f "$DF"
# one incomplete vg
vgcreate $vg1 "$dev1" "$dev2"
lvcreate -l1 -an $vg1
rm -f "$DF"
dd if=/dev/zero of="$dev1" bs=1M count=1
not vgimportdevices $vg1
not ls "$DF"
vgs $vg1
pvs "$dev2"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
rm -f "$DF"
# three complete, one incomplete vg
vgcreate $vg1 "$dev1"
vgcreate $vg2 "$dev2"
vgcreate $vg3 "$dev3"
vgcreate $vg4 "$dev4" "$dev5"
rm -f "$DF"
dd if=/dev/zero of="$dev5" bs=1M count=1
not vgimportdevices $vg4
not ls "$DF"
vgimportdevices $vg3
ls "$DF"
grep "$dev3" "$DF"
not grep "$dev1" "$DF"
not grep "$dev2" "$DF"
not grep "$dev4" "$DF"
not grep "$dev5" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
dd if=/dev/zero of="$dev3" bs=1M count=1
dd if=/dev/zero of="$dev4" bs=1M count=1
rm -f "$DF"
#
# vgimportdevices vg with existing df
#
# vg not found
vgcreate $vg1 "$dev1"
vgimportdevices -a
grep "$dev1" "$DF"
not vgimportdevices $vg2
grep "$dev1" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
rm -f "$DF"
# vg incomplete
vgcreate $vg1 "$dev1"
vgimportdevices -a
grep "$dev1" "$DF"
vgcreate --devicesfile "" $vg2 "$dev2" "$dev3"
dd if=/dev/zero of="$dev2" bs=1M count=1
not vgimportdevices $vg2
grep "$dev1" "$DF"
not grep "$dev2" "$DF"
not grep "$dev3" "$DF"
# reset
dd if=/dev/zero of="$dev1" bs=1M count=1
dd if=/dev/zero of="$dev2" bs=1M count=1
dd if=/dev/zero of="$dev3" bs=1M count=1
dd if=/dev/zero of="$dev4" bs=1M count=1
rm -f "$DF"