summaryrefslogtreecommitdiff
path: root/test/shell/lvchange-vdo.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/shell/lvchange-vdo.sh')
-rw-r--r--test/shell/lvchange-vdo.sh170
1 files changed, 170 insertions, 0 deletions
diff --git a/test/shell/lvchange-vdo.sh b/test/shell/lvchange-vdo.sh
new file mode 100644
index 0000000..b11edf3
--- /dev/null
+++ b/test/shell/lvchange-vdo.sh
@@ -0,0 +1,170 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2018 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
+
+
+SKIP_WITH_LVMPOLLD=1
+
+. lib/inittest
+
+aux have_vdo 6 2 0 || skip
+
+aux prepare_vg 2 6400
+
+lvcreate --vdo -L5G -n $lv1 $vg/vdopool
+
+# deduplication_ARG (default is 'yes')
+# compression_ARG (default is 'yes')
+
+# Wait till index gets openned
+for i in {1..10} ; do
+ sleep .1
+ check grep_dmsetup status $vg-vdopool-vpool " online online " || continue
+ break
+done
+
+
+# compression_ARG
+lvchange --compression n $vg/vdopool
+check grep_dmsetup status $vg-vdopool-vpool " online offline "
+lvchange --compression y $vg/vdopool
+check grep_dmsetup status $vg-vdopool-vpool " online online "
+
+# dedulication_ARG
+lvchange --deduplication n $vg/vdopool
+check grep_dmsetup status $vg-vdopool-vpool -E " offline|closed online "
+
+lvchange --deduplication y $vg/vdopool
+check grep_dmsetup status $vg-vdopool-vpool -E " online|opening online "
+
+
+lvchange --compression n --deduplication n $vg/vdopool
+check grep_dmsetup status $vg-vdopool-vpool -E " offline|closed offline "
+
+# --vdosettings needs inactive LV
+not lvchange --vdosettings 'ack_threads=8' $vg/vdopool
+
+lvchange -an $vg/$lv1
+
+# With inactive vdo-pool changes are applied
+# explicit option --compression has highest priority
+lvchange --vdosettings 'ack_threads=5 compression=0' --compression y $vg/vdopool
+check lv_field $vg/$lv1 vdo_ack_threads "5"
+check lv_field $vg/$lv1 vdo_compression "enabled"
+
+# Test activation
+lvchange -aly $vg/$lv1
+check active $vg $lv1
+
+lvchange -aln $vg/$lv1
+check inactive $vg $lv1
+
+# Test for allowable changes
+#
+# contiguous_ARG
+lvchange -C y $vg/$lv1
+lvchange -C n $vg/$lv1
+
+# permission_ARG
+lvchange -p r $vg/$lv1
+lvchange -p rw $vg/$lv1
+
+# FIXME
+#should lvchange -p r $vg/vdopool
+#should lvchange -p rw $vg/vdopool
+
+# readahead_ARG
+lvchange -r none $vg/$lv1
+lvchange -r auto $vg/$lv1
+# FIXME
+# Think about more support
+
+# minor_ARG
+lvchange --yes -M y --minor 234 --major 253 $vg/$lv1
+lvchange -M n $vg/$lv1
+
+# cannot change major minor for pools
+not lvchange --yes -M y --minor 235 --major 253 $vg/vdopool
+not lvchange -M n $vg/vdopool
+
+# addtag_ARG
+lvchange --addtag foo $vg/$lv1
+lvchange --addtag foo $vg/vdopool
+
+# deltag_ARG
+lvchange --deltag foo $vg/$lv1
+lvchange --deltag foo $vg/vdopool
+
+
+#
+# Test for disallowed metadata changes
+#
+# resync_ARG
+not lvchange --resync $vg/$lv1
+
+# alloc_ARG
+#not lvchange --alloc anywhere $vg/$lv1
+
+# discards_ARG
+not lvchange --discards ignore $vg/$lv1
+
+# zero_ARG
+not lvchange --zero y $vg/$lv1
+
+
+#
+# Ensure that allowed args don't cause disallowed args to get through
+#
+not lvchange --resync -ay $vg/$lv1
+not lvchange --resync --addtag foo $vg/$lv1
+
+# Check activation of VDO alone works (like for thin-pools)
+lvchange -an $vg
+
+lvchange -ay $vg/vdopool
+check active $vg vdopool
+check inactive $vg $lv1
+
+lvchange -ay $vg/$lv1
+check active $vg $lv1
+
+lvchange -an $vg/$lv1
+check active $vg vdopool
+check inactive $vg $lv1
+
+lvchange -ay $vg/$lv1
+lvchange -an $vg/vdopool
+lvchange -an $vg/$lv1
+check inactive $vg vdopool
+
+#
+# Play with tags and activation
+#
+TAG=$(uname -n)
+aux lvmconf "activation/volume_list = [ \"$vg/$lv2\", \"@mytag\" ]"
+
+lvchange -ay $vg/$lv1
+check inactive $vg $lv1
+
+lvchange --addtag mytag $vg/$lv1
+
+lvchange -ay @mytag_fake
+check inactive $vg $lv1
+
+lvchange -ay $vg/$lv1
+# Volume has matching tag
+check active $vg $lv1
+lvchange -an $vg/$lv1
+
+lvchange -ay @mytag
+check active $vg $lv1
+
+vgremove -ff $vg