xref: /dflybsd-src/contrib/lvm2/dist/test/t-pvremove-usage.sh (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino#!/bin/sh
286d7f5d3SJohn Marino# Copyright (C) 2008 Red Hat, Inc. All rights reserved.
386d7f5d3SJohn Marino#
486d7f5d3SJohn Marino# This copyrighted material is made available to anyone wishing to use,
586d7f5d3SJohn Marino# modify, copy, or redistribute it subject to the terms and conditions
686d7f5d3SJohn Marino# of the GNU General Public License v.2.
786d7f5d3SJohn Marino#
886d7f5d3SJohn Marino# You should have received a copy of the GNU General Public License
986d7f5d3SJohn Marino# along with this program; if not, write to the Free Software Foundation,
1086d7f5d3SJohn Marino# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
1186d7f5d3SJohn Marino
1286d7f5d3SJohn Marino. ./test-utils.sh
1386d7f5d3SJohn Marino
1486d7f5d3SJohn Marinoaux prepare_devs 3
1586d7f5d3SJohn Marinopvcreate $dev1
1686d7f5d3SJohn Marinopvcreate --metadatacopies 0 $dev2
1786d7f5d3SJohn Marinopvcreate --metadatacopies 2 $dev3
1886d7f5d3SJohn Marinopvremove $dev2
1986d7f5d3SJohn Marino
2086d7f5d3SJohn Marino# failing, but still removing everything what can be removed
2186d7f5d3SJohn Marino# is somewhat odd as default, what do we have -f for?
2286d7f5d3SJohn Marinopvs | not grep $dev2
2386d7f5d3SJohn Marinopvcreate  --metadatacopies 0 $dev2
2486d7f5d3SJohn Marino
2586d7f5d3SJohn Marino# check pvremove refuses to remove pv in a vg
2686d7f5d3SJohn Marinovgcreate -c n $vg $dev1 $dev2
2786d7f5d3SJohn Marinonot pvremove $dev2 $dev3
2886d7f5d3SJohn Marino
2986d7f5d3SJohn Marinofor mdacp in 0 1 2; do
3086d7f5d3SJohn Marino    # check pvremove truly wipes the label (pvscan wont find) (---metadatacopies $mdacp)
3186d7f5d3SJohn Marino    pvcreate --metadatacopies $mdacp $dev3
3286d7f5d3SJohn Marino    pvremove $dev3
3386d7f5d3SJohn Marino    # try to remove agail - should fail cleanly
3486d7f5d3SJohn Marino    not pvremove $dev3
3586d7f5d3SJohn Marino    pvscan | not grep $dev3
3686d7f5d3SJohn Marino
3786d7f5d3SJohn Marino	# bz179473 refuse to wipe non-PV device without -f
3886d7f5d3SJohn Marino    not pvremove $dev3
3986d7f5d3SJohn Marino    pvremove -f $dev3
4086d7f5d3SJohn Marino
4186d7f5d3SJohn Marino    # reset setup
4286d7f5d3SJohn Marino    vgremove -ff $vg
4386d7f5d3SJohn Marino    pvcreate --metadatacopies $mdacp $dev1
4486d7f5d3SJohn Marino    pvcreate $dev2
4586d7f5d3SJohn Marino    vgcreate $vg $dev1 $dev2
4686d7f5d3SJohn Marino
4786d7f5d3SJohn Marino    # pvremove -f fails when pv in a vg (---metadatacopies $mdacp)
4886d7f5d3SJohn Marino    not pvremove -f $dev1
4986d7f5d3SJohn Marino    pvs $dev1
5086d7f5d3SJohn Marino
5186d7f5d3SJohn Marino    # pvremove -ff fails without confirmation when pv in a vg (---metadatacopies $mdacp)
5286d7f5d3SJohn Marino    echo n | not pvremove -ff $dev1
5386d7f5d3SJohn Marino
5486d7f5d3SJohn Marino    # pvremove -ff succeds with confirmation when pv in a vg (---metadatacopies $mdacp)
5586d7f5d3SJohn Marino    yes | pvremove -ff $dev1
5686d7f5d3SJohn Marino    not pvs $dev1
5786d7f5d3SJohn Marino
5886d7f5d3SJohn Marino    vgreduce --removemissing $vg
5986d7f5d3SJohn Marino    pvcreate --metadatacopies $mdacp $dev1
6086d7f5d3SJohn Marino    vgextend $vg $dev1
6186d7f5d3SJohn Marino
6286d7f5d3SJohn Marino    # pvremove -ff -y is sufficient when pv in a vg (---metadatacopies $mdacp)" '
6386d7f5d3SJohn Marino    echo n | pvremove -ff -y $dev1
6486d7f5d3SJohn Marino
6586d7f5d3SJohn Marino    vgreduce --removemissing $vg
6686d7f5d3SJohn Marino    pvcreate --metadatacopies $mdacp $dev1
6786d7f5d3SJohn Marino    vgextend $vg $dev1
6886d7f5d3SJohn Marinodone
69