| #!/bin/sh |
| # Copyright (C) 2008-2013 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='Exercise toollib process_each_lv' |
| SKIP_WITH_LVMPOLLD=1 |
| |
| # disable lvmetad logging as it bogs down test systems |
| export LVM_TEST_LVMETAD_DEBUG_OPTS=${LVM_TEST_LVMETAD_DEBUG_OPTS-} |
| |
| . lib/inittest |
| |
| aux prepare_devs 10 |
| |
| # |
| # process_each_lv is used by a number of lv commands: |
| # lvconvert lv (none is error) |
| # lvchange vg|lv (none is error) |
| # lvremove vg|lv (none is error) |
| # lvdisplay [vg|lv] (none is all) |
| # vgmknodes [vg|lv] (none is all) |
| # lvs [vg|lv] (none is all) |
| # lvscan (none is all) |
| # |
| # (lv can also be a tag matching an lv tag, and |
| # vg can also be a tag matching a vg tag.) |
| # |
| # The logic in process_each_vl is mainly related to |
| # selecting which vgs/lvs to process. |
| # |
| |
| # |
| # test lvremove vg|lv names |
| # |
| |
| prepare_vgs_() { |
| # set up vgs/lvs that we will remove |
| vgcreate $SHARED $vg1 "$dev1" "$dev2" |
| vgcreate $SHARED $vg2 "$dev3" "$dev4" |
| vgcreate $SHARED $vg3 "$dev5" "$dev6" |
| vgcreate $SHARED $vg4 "$dev7" "$dev8" |
| vgcreate $SHARED $vg5 "$dev9" "$dev10" |
| lvcreate -Zn -an -l 2 -n $lv1 $vg1 |
| lvcreate -Zn -an -l 2 -n $lv1 $vg2 |
| lvcreate -Zn -an -l 2 -n $lv2 $vg2 |
| lvcreate -Zn -an -l 2 -n $lv1 $vg3 |
| lvcreate -Zn -an -l 2 -n $lv2 $vg3 |
| lvcreate -Zn -an -l 2 -n $lv3 $vg3 |
| lvcreate -Zn -an -l 2 -n $lv1 $vg5 |
| lvcreate -Zn -an -l 2 -n $lv2 $vg5 |
| lvcreate -Zn -an -l 2 -n $lv3 $vg5 |
| lvcreate -Zn -an -l 2 -n $lv4 $vg5 |
| lvcreate -Zn -an -l 2 -n $lv5 $vg5 |
| } |
| |
| # |
| # |
| # |
| prepare_vgs_ |
| |
| not lvremove |
| not lvremove garbage |
| not lvremove $vg1/garbage |
| |
| lvremove $vg1 |
| check lv_exists $vg1 |
| check lv_not_exists $vg1 $lv1 |
| vgremove $vg1 |
| |
| lvremove $vg2 |
| check lv_exists $vg2 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| vgremove $vg2 |
| |
| lvremove $vg3/$lv1 |
| lvremove $vg3/$lv2 $vg3/$lv3 |
| check lv_exists $vg3 |
| check lv_not_exists $vg3 $lv1 $lv2 $lv3 |
| vgremove $vg3 |
| |
| lvremove $vg4 |
| check lv_exists $vg4 |
| vgremove $vg4 |
| |
| lvremove $vg5/$lv1 $vg5 $vg5/$lv3 |
| check lv_not_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| vgremove $vg5 |
| |
| |
| # |
| # test lvremove vg|lv names from multiple vgs |
| # |
| prepare_vgs_ |
| |
| lvremove $vg2 $vg3/$lv3 $vg5/$lv1 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| check lv_not_exists $vg3 $lv3 |
| check lv_not_exists $vg5 $lv1 |
| |
| lvremove $vg2 $vg1 |
| check lv_not_exists $vg1 $lv1 |
| |
| lvremove $vg3/$lv1 $vg3 $vg4 $vg5/$lv2 |
| check lv_not_exists $vg3 $lv1 $lv2 |
| check lv_not_exists $vg5 $lv2 |
| |
| lvremove $vg5 $vg1 $vg5/$lv3 |
| check lv_not_exists $vg5 $lv3 $lv4 $lv5 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvremove @lvtags |
| # |
| prepare_vgs_ |
| |
| lvchange --addtag V1L1 $vg1/$lv1 |
| lvchange --addtag V2L1 $vg2/$lv1 |
| lvchange --addtag V2L2 $vg2/$lv2 |
| lvchange --addtag V23 $vg2/$lv1 |
| lvchange --addtag V23 $vg2/$lv2 |
| lvchange --addtag V23 $vg3/$lv1 |
| lvchange --addtag V23 $vg3/$lv2 |
| lvchange --addtag V23 $vg3/$lv3 |
| lvchange --addtag V3L2 $vg3/$lv2 |
| lvchange --addtag V3L3A $vg3/$lv3 |
| lvchange --addtag V3L3B $vg3/$lv3 |
| lvchange --addtag V5L1 $vg5/$lv1 |
| lvchange --addtag V5L234 $vg5/$lv2 |
| lvchange --addtag V5L234 $vg5/$lv3 |
| lvchange --addtag V5L234 $vg5/$lv4 |
| lvchange --addtag V5L5 $vg5/$lv5 |
| vgchange -an $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| # verify all exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv2 $lv3 |
| check lv_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| |
| lvremove @garbage |
| |
| lvremove @V3L3A |
| check lv_not_exists $vg3 $lv3 |
| # verify unremoved still exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv2 |
| check lv_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| |
| lvremove @V5L234 |
| check lv_not_exists $vg5 $lv2 $lv3 $lv4 |
| # verify unremoved still exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv2 |
| check lv_exists $vg5 $lv1 $lv5 |
| |
| lvremove @V5L1 @V5L5 |
| check lv_not_exists $vg5 $lv1 $lv5 |
| # verify unremoved still exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv2 |
| |
| lvremove @V23 @V1L1 @V3L2 |
| check lv_not_exists $vg1 $lv1 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| check lv_not_exists $vg3 $lv1 $lv2 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvremove @vgtags |
| # |
| prepare_vgs_ |
| |
| vgchange --addtag V1 $vg1 |
| vgchange --addtag V23 $vg2 |
| vgchange --addtag V23 $vg3 |
| vgchange --addtag V35 $vg3 |
| vgchange --addtag V4 $vg4 |
| vgchange --addtag V35 $vg5 |
| vgchange --addtag V5 $vg5 |
| vgchange -an $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| lvremove @V4 |
| # verify unremoved exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv2 $lv3 |
| check lv_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| |
| lvremove @V5 |
| check lv_not_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| # verify unremoved exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv2 $lv3 |
| |
| lvremove @V1 @V23 |
| check lv_not_exists $vg1 $lv1 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| check lv_not_exists $vg3 $lv1 $lv2 $lv3 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| # |
| # |
| # |
| prepare_vgs_ |
| |
| vgchange --addtag V1 $vg1 |
| vgchange --addtag V23 $vg2 |
| vgchange --addtag V23 $vg3 |
| vgchange --addtag V35 $vg3 |
| vgchange --addtag V4 $vg4 |
| vgchange --addtag V35 $vg5 |
| vgchange --addtag V5 $vg5 |
| |
| lvremove @V35 @V5 |
| check lv_not_exists $vg3 $lv1 $lv2 /$lv3 |
| check lv_not_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| # verify unremoved exist |
| check lv_exists $vg1 $lv1 |
| check lv_exists $vg2 $lv1 $lv2 |
| |
| lvremove @V1 @V23 |
| check lv_not_exists $vg1 $lv1 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvremove vg|lv names and @lvtags |
| # |
| prepare_vgs_ |
| |
| lvchange --addtag V1L1 $vg1/$lv1 |
| lvchange --addtag V2L1 $vg2/$lv1 |
| lvchange --addtag V2L2 $vg2/$lv2 |
| lvchange --addtag V23 $vg2/$lv1 |
| lvchange --addtag V23 $vg2/$lv2 |
| lvchange --addtag V23 $vg3/$lv1 |
| lvchange --addtag V23 $vg3/$lv2 |
| lvchange --addtag V23 $vg3/$lv3 |
| lvchange --addtag V3L2 $vg3/$lv2 |
| lvchange --addtag V3L3A $vg3/$lv3 |
| lvchange --addtag V3L3B $vg3/$lv3 |
| lvchange --addtag V5L1 $vg5/$lv1 |
| lvchange --addtag V5L234 $vg5/$lv2 |
| lvchange --addtag V5L234 $vg5/$lv3 |
| lvchange --addtag V5L234 $vg5/$lv4 |
| lvchange --addtag V5L5 $vg5/$lv5 |
| vgchange -an $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| lvremove $vg1/$lv1 @V3L2 @V5L234 |
| check lv_not_exists $vg1 $lv1 |
| check lv_not_exists $vg3 $lv2 |
| check lv_not_exists $vg5 $lv2 $lv3 $lv4 |
| # verify unremoved exist |
| check lv_exists $vg2 $lv1 $lv2 |
| check lv_exists $vg3 $lv1 $lv3 |
| check lv_exists $vg5 $lv1 $lv5 |
| |
| lvremove $vg2/$lv1 @V23 $vg5/$lv1 @V5L5 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvremove vg|lv names and @vgtags |
| # |
| prepare_vgs_ |
| |
| vgchange --addtag V1 $vg1 |
| vgchange --addtag V23 $vg2 |
| vgchange --addtag V23 $vg3 |
| vgchange --addtag V35 $vg3 |
| vgchange --addtag V4 $vg4 |
| vgchange --addtag V35 $vg5 |
| vgchange --addtag V5 $vg5 |
| |
| lvremove $vg1/$lv1 @V35 |
| check lv_not_exists $vg1 $lv1 |
| check lv_not_exists $vg3 $lv1 $lv2 $lv3 |
| check lv_not_exists $vg5 $lv1 $lv2 $lv3not $lv4 $lv5 |
| # verify unremoved exist |
| check lv_exists $vg2 $lv1 $lv2 |
| |
| lvremove $vg2/$lv1 @V23 $vg2/$lv2 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvremove @lvtags and @vgtags |
| # |
| prepare_vgs_ |
| |
| lvchange --addtag V1L1 $vg1/$lv1 |
| lvchange --addtag V2L1 $vg2/$lv1 |
| lvchange --addtag V2L2 $vg2/$lv2 |
| lvchange --addtag V23 $vg2/$lv1 |
| lvchange --addtag V23 $vg2/$lv2 |
| lvchange --addtag V23 $vg3/$lv1 |
| lvchange --addtag V23 $vg3/$lv2 |
| # to check that vg tag @V23 includes this |
| # lvchange --addtag V23 $vg3/$lv3 |
| lvchange --addtag V3L2 $vg3/$lv2 |
| lvchange --addtag V3L3A $vg3/$lv3 |
| lvchange --addtag V3L3B $vg3/$lv3 |
| lvchange --addtag V5L1 $vg5/$lv1 |
| lvchange --addtag V5L234 $vg5/$lv2 |
| lvchange --addtag V5L234 $vg5/$lv3 |
| lvchange --addtag V5L234 $vg5/$lv4 |
| lvchange --addtag V5L5 $vg5/$lv5 |
| vgchange --addtag V1 $vg1 |
| vgchange --addtag V23 $vg2 |
| vgchange --addtag V23 $vg3 |
| vgchange --addtag V35 $vg3 |
| vgchange --addtag V4 $vg4 |
| vgchange --addtag V35 $vg5 |
| vgchange --addtag V5 $vg5 |
| |
| lvremove @V23 @V35 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| check lv_not_exists $vg3 $lv1 $lv2 $lv3 |
| check lv_not_exists $vg5 $lv1 $lv2 $lv3 $lv4 $lv5 |
| # verify unremoved exist |
| check lv_exists $vg1 $lv1 |
| |
| lvremove @V1 @V1L1 |
| check lv_not_exists $vg1 $lv1 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvremove vg|lv names and @lvtags and @vgtags |
| # |
| prepare_vgs_ |
| |
| lvchange --addtag V1L1 $vg1/$lv1 |
| lvchange --addtag V2L1 $vg2/$lv1 |
| lvchange --addtag V2L2 $vg2/$lv2 |
| lvchange --addtag V23 $vg2/$lv1 |
| lvchange --addtag V23 $vg2/$lv2 |
| lvchange --addtag V23 $vg3/$lv1 |
| lvchange --addtag V23 $vg3/$lv2 |
| # to check that vg tag @V23 includes this |
| # lvchange --addtag V23 $vg3/$lv3 |
| lvchange --addtag V3L2 $vg3/$lv2 |
| lvchange --addtag V3L3A $vg3/$lv3 |
| lvchange --addtag V3L3B $vg3/$lv3 |
| lvchange --addtag V5L1 $vg5/$lv1 |
| lvchange --addtag V5L234 $vg5/$lv2 |
| lvchange --addtag V5L234 $vg5/$lv3 |
| lvchange --addtag V5L234 $vg5/$lv4 |
| lvchange --addtag V5L5 $vg5/$lv5 |
| vgchange --addtag V1 $vg1 |
| vgchange --addtag V23 $vg2 |
| vgchange --addtag V23 $vg3 |
| vgchange --addtag V35 $vg3 |
| vgchange --addtag V4 $vg4 |
| vgchange --addtag V35 $vg5 |
| vgchange --addtag V5 $vg5 |
| |
| lvremove $vg1/$lv1 @V23 @V5L5 |
| check lv_not_exists $vg1 $lv1 |
| check lv_not_exists $vg2 $lv1 $lv2 |
| check lv_not_exists $vg3 $lv1 $lv2 $lv3 |
| check lv_not_exists $vg5 $lv5 |
| # verify unremoved exist |
| check lv_exists $vg5 $lv1 $lv2 $lv3 $lv4 |
| |
| lvremove $vg5/$lv2 @V5L234 @V5 |
| check lv_not_exists $vg5 $lv1 $lv2 $lv3 $lv4 |
| |
| vgremove $vg1 $vg2 $vg3 $vg4 $vg5 |
| |
| |
| # |
| # test lvs: empty, vg(s), lv(s), vgtag(s), lvtag(s), garbage, combinations |
| # |
| prepare_vgs_ |
| |
| lvchange --addtag V1L1 $vg1/$lv1 |
| lvchange --addtag V2L1 $vg2/$lv1 |
| lvchange --addtag V2L2 $vg2/$lv2 |
| lvchange --addtag V23 $vg2/$lv1 |
| lvchange --addtag V23 $vg2/$lv2 |
| lvchange --addtag V23 $vg3/$lv1 |
| lvchange --addtag V23 $vg3/$lv2 |
| lvchange --addtag V23 $vg3/$lv3 |
| lvchange --addtag V3L2 $vg3/$lv2 |
| lvchange --addtag V3L3A $vg3/$lv3 |
| lvchange --addtag V3L3B $vg3/$lv3 |
| lvchange --addtag V5L1 $vg5/$lv1 |
| lvchange --addtag V5L234 $vg5/$lv2 |
| lvchange --addtag V5L234 $vg5/$lv3 |
| lvchange --addtag V5L234 $vg5/$lv4 |
| lvchange --addtag V5L5 $vg5/$lv5 |
| vgchange --addtag V1 $vg1 |
| vgchange --addtag V23 $vg2 |
| vgchange --addtag V23 $vg3 |
| vgchange --addtag V35 $vg3 |
| vgchange --addtag V4 $vg4 |
| vgchange --addtag V35 $vg5 |
| vgchange --addtag V5 $vg5 |
| |
| # empty |
| lvs -o vg_name,lv_name --separator '-' >err |
| grep $vg1-$lv1 err |
| grep $vg2-$lv1 err |
| grep $vg2-$lv2 err |
| grep $vg3-$lv1 err |
| grep $vg3-$lv2 err |
| grep $vg3-$lv3 err |
| grep $vg5-$lv1 err |
| grep $vg5-$lv2 err |
| grep $vg5-$lv3 err |
| grep $vg5-$lv4 err |
| grep $vg5-$lv5 err |
| |
| # vg |
| lvs -o vg_name,lv_name --separator '-' $vg1 >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # vgs |
| lvs -o vg_name,lv_name --separator '-' $vg1 $vg2 >err |
| grep $vg1-$lv1 err |
| grep $vg2-$lv1 err |
| grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # lv |
| lvs -o vg_name,lv_name --separator '-' $vg1/$lv1 >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # lvs |
| lvs -o vg_name,lv_name --separator '-' $vg1/$lv1 $vg2/$lv1 $vg2/$lv2 >err |
| grep $vg1-$lv1 err |
| grep $vg2-$lv1 err |
| grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # vgtag |
| lvs -o vg_name,lv_name --separator '-' @V1 >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # vgtags |
| lvs -o vg_name,lv_name --separator '-' @V1 @V35 >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| grep $vg3-$lv1 err |
| grep $vg3-$lv2 err |
| grep $vg3-$lv3 err |
| grep $vg5-$lv1 err |
| grep $vg5-$lv2 err |
| grep $vg5-$lv3 err |
| grep $vg5-$lv4 err |
| grep $vg5-$lv5 err |
| |
| # lvtag |
| lvs -o vg_name,lv_name --separator '-' @V1L1 >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # lvtags |
| lvs -o vg_name,lv_name --separator '-' @V1L1 @V5L234 >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| grep $vg5-$lv2 err |
| grep $vg5-$lv3 err |
| grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # vg and lv and vgtag and lvtag |
| lvs -o vg_name,lv_name --separator '-' $vg2 $vg5/$lv5 @V1 @V5L234 >err |
| grep $vg1-$lv1 err |
| grep $vg2-$lv1 err |
| grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| grep $vg5-$lv2 err |
| grep $vg5-$lv3 err |
| grep $vg5-$lv4 err |
| grep $vg5-$lv5 err |
| |
| # garbage name gives an error if used without a tag |
| |
| not lvs -o vg_name,lv_name --separator '-' garbage >err |
| not grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| not lvs -o vg_name,lv_name --separator '-' $vg1/$lv1 garbage >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # garbage name does not give an error if used with a tag |
| |
| lvs -o vg_name,lv_name --separator '-' @V1 garbage >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| lvs -o vg_name,lv_name --separator '-' @garbage garbage >err |
| not grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| # garbage tag never gives an error |
| |
| lvs -o vg_name,lv_name --separator '-' @V1 @garbage >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| lvs -o vg_name,lv_name --separator '-' $vg1/$lv1 @garbage >err |
| grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| lvs -o vg_name,lv_name --separator '-' @garbage >err |
| not grep $vg1-$lv1 err |
| not grep $vg2-$lv1 err |
| not grep $vg2-$lv2 err |
| not grep $vg3-$lv1 err |
| not grep $vg3-$lv2 err |
| not grep $vg3-$lv3 err |
| not grep $vg5-$lv1 err |
| not grep $vg5-$lv2 err |
| not grep $vg5-$lv3 err |
| not grep $vg5-$lv4 err |
| not grep $vg5-$lv5 err |
| |
| vgremove -f $vg1 $vg2 $vg3 $vg4 $vg5 |