| #!/bin/sh |
| # Copyright (C) 2010 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 activation behaviour with devices missing. |
| # - snapshots and their origins are only activated together; if one fails, both |
| # fail |
| # - partial mirrors are not activated (but maybe they should? maybe we should |
| # instead lvconvert --repair them?) |
| # - linear LVs with bits missing are not activated |
| |
| SKIP_WITH_LVMLOCKD=1 |
| SKIP_WITH_LVMPOLLD=1 |
| |
| . lib/inittest |
| |
| aux prepare_vg 4 |
| |
| lvcreate -l1 -n linear1 $vg "$dev1" |
| lvcreate -l1 -n linear2 $vg "$dev2" |
| lvcreate -l2 -n linear12 $vg "$dev1":4 "$dev2":4 |
| |
| lvcreate -aey -l1 -n origin1 $vg "$dev1" |
| lvcreate -s $vg/origin1 -l1 -n s_napshot2 "$dev2" |
| |
| lvcreate -aey -l1 --type mirror -m1 -n mirror12 --mirrorlog core $vg "$dev1" "$dev2" |
| lvcreate -aey -l1 --type mirror -m1 -n mirror123 $vg "$dev1" "$dev2" "$dev3" |
| |
| vgchange -a n $vg |
| aux disable_dev "$dev1" |
| not vgchange -a y $vg |
| not vgck $vg |
| |
| check inactive $vg linear1 |
| check active $vg linear2 |
| check inactive $vg origin1 |
| check inactive $vg s_napshot2 |
| check inactive $vg linear12 |
| check inactive $vg mirror12 |
| check inactive $vg mirror123 |
| |
| vgchange -a n $vg |
| aux enable_dev "$dev1" |
| aux disable_dev "$dev2" |
| not vgchange -aey $vg |
| not vgck $vg |
| |
| check active $vg linear1 |
| check inactive $vg linear2 |
| check inactive $vg linear12 |
| check inactive $vg origin1 |
| check inactive $vg s_napshot2 |
| check inactive $vg mirror12 |
| check inactive $vg mirror123 |
| |
| vgchange -a n $vg |
| aux enable_dev "$dev2" |
| aux disable_dev "$dev3" |
| not vgchange -aey $vg |
| not vgck $vg |
| |
| check active $vg origin1 |
| check active $vg s_napshot2 |
| check active $vg linear1 |
| check active $vg linear2 |
| check active $vg linear12 |
| check inactive $vg mirror123 |
| check active $vg mirror12 |
| |
| vgchange -a n $vg |
| aux enable_dev "$dev3" |
| aux disable_dev "$dev4" |
| vgchange -aey $vg |
| not vgck $vg |
| |
| check active $vg origin1 |
| check active $vg s_napshot2 |
| check active $vg linear1 |
| check active $vg linear2 |
| check active $vg linear12 |
| check active $vg mirror12 |
| check active $vg mirror123 |
| |
| vgremove -ff $vg |