1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00
lvm2/test/shell/devicesfile-backup.sh

110 lines
2.5 KiB
Bash
Raw Normal View History

#!/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='devices file backups'
SKIP_WITH_LVMPOLLD=1
. lib/inittest
aux prepare_devs 3
aux lvmconf 'devices/use_devicesfile = 1'
# Stupid tests use plain /etc/ rather than /etc/lvm/
DFDIR="$LVM_SYSTEM_DIR/devices"
BKDIR="$LVM_SYSTEM_DIR/devices/backup"
mkdir -p "$DFDIR" || true
mkdir -p "$BKDIR" || true
DF="$DFDIR/system.devices"
vgcreate $vg "$dev1"
diff $DF $BKDIR/*.0001
pvcreate "$dev2"
diff $DF $BKDIR/*.0002
lvmdevices --deldev "$dev2"
diff $DF $BKDIR/*.0003
lvmdevices --adddev "$dev2"
diff $DF $BKDIR/*.0004
# DF update and backup when an entry is manually removed
cat $DF | grep -v "$dev2" > tmp1
cp tmp1 $DF
pvs
diff $DF $BKDIR/*.0005
lvmdevices --adddev "$dev2"
diff $DF $BKDIR/*.0006
# DF update and abckup when HASH value changes
sed -e "s|HASH=.......|HASH=1111111|" $DF > tmp1
cp tmp1 $DF
pvs
not grep "HASH=1111111" $DF
diff $DF $BKDIR/*.0007
# DF update and backup when old DF has no HASH value
cat $DF | grep -v HASH > tmp1
cp tmp1 $DF
pvs
grep HASH $DF
diff $DF $BKDIR/*.0008
# DF update and backup when dev names change
pvcreate "$dev3"
diff $DF $BKDIR/*.0009
grep "$dev2" $DF
grep "$dev3" $DF
dd if="$dev2" of=dev2_header bs=1M count=1
dd if="$dev3" of=dev3_header bs=1M count=1
dd if=dev2_header of="$dev3"
dd if=dev3_header of="$dev2"
pvs
diff $DF $BKDIR/*.0010
# backup limit, remove 1
aux lvmconf 'devices/devicesfile_backup_limit = 10'
lvmdevices --deldev "$dev2"
diff $DF $BKDIR/*.0011
not ls $BKDIR/*.0001
# backup limit, remove N
aux lvmconf 'devices/devicesfile_backup_limit = 5'
lvmdevices --adddev "$dev2"
diff $DF $BKDIR/*.0012
not ls $BKDIR/*.0002
not ls $BKDIR/*.0003
not ls $BKDIR/*.0004
not ls $BKDIR/*.0005
not ls $BKDIR/*.0006
not ls $BKDIR/*.0007
ls $BKDIR/*.0008
ls $BKDIR/*.0009
ls $BKDIR/*.0010
ls $BKDIR/*.0011
# backup disabled
aux lvmconf 'devices/devicesfile_backup_limit = 0'
lvmdevices --deldev "$dev2"
not ls $BKDIR/*.0013
# backup re-enabled
aux lvmconf 'devices/devicesfile_backup_limit = 5'
lvmdevices --adddev "$dev2"
ls $BKDIR/*.0014
not ls $BKDIR/*.0013
vgremove -ff $vg