xref: /dflybsd-src/contrib/lvm2/dist/test/t-vgmerge-operation.sh (revision 86d7f5d305c6adaa56ff4582ece9859d73106103)
186d7f5d3SJohn Marino#!/bin/sh
286d7f5d3SJohn Marino# Copyright (C) 2007-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 Marinotest_description='Test vgmerge operation'
1386d7f5d3SJohn Marino
1486d7f5d3SJohn Marino. ./test-utils.sh
1586d7f5d3SJohn Marino
1686d7f5d3SJohn Marinoaux prepare_pvs 4 64
1786d7f5d3SJohn Marino
1886d7f5d3SJohn Marino# 'vgmerge succeeds with single linear LV in source VG'
1986d7f5d3SJohn Marinovgcreate $vg1 $dev1 $dev2
2086d7f5d3SJohn Marinovgcreate $vg2 $dev3 $dev4
2186d7f5d3SJohn Marinolvcreate -l 4 -n $lv1 $vg1 $dev1
2286d7f5d3SJohn Marinovgchange -an $vg1
2386d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg1 2 1 0
2486d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 2 0 0
2586d7f5d3SJohn Marinovgmerge $vg2 $vg1
2686d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 4 1 0
2786d7f5d3SJohn Marinovgremove -f $vg2
2886d7f5d3SJohn Marino
2986d7f5d3SJohn Marino# 'vgmerge succeeds with single linear LV in source and destination VG'
3086d7f5d3SJohn Marinovgcreate $vg1 $dev1 $dev2
3186d7f5d3SJohn Marinovgcreate $vg2 $dev3 $dev4
3286d7f5d3SJohn Marinolvcreate -l 4 -n $lv1 $vg1
3386d7f5d3SJohn Marinolvcreate -l 4 -n $lv2 $vg2
3486d7f5d3SJohn Marinovgchange -an $vg1
3586d7f5d3SJohn Marinovgchange -an $vg2
3686d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg1 2 1 0
3786d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 2 1 0
3886d7f5d3SJohn Marinovgmerge $vg2 $vg1
3986d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 4 2 0
4086d7f5d3SJohn Marinovgremove -f $vg2
4186d7f5d3SJohn Marino
4286d7f5d3SJohn Marino# 'vgmerge succeeds with linear LV + snapshots in source VG'
4386d7f5d3SJohn Marinovgcreate $vg1 $dev1 $dev2
4486d7f5d3SJohn Marinovgcreate $vg2 $dev3 $dev4
4586d7f5d3SJohn Marinolvcreate -l 16 -n $lv1 $vg1
4686d7f5d3SJohn Marinolvcreate -l 4 -s -n $lv2 $vg1/$lv1
4786d7f5d3SJohn Marinovgchange -an $vg1
4886d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg1 2 2 1
4986d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 2 0 0
5086d7f5d3SJohn Marinovgmerge $vg2 $vg1
5186d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 4 2 1
5286d7f5d3SJohn Marinolvremove -f $vg2/$lv2
5386d7f5d3SJohn Marinovgremove -f $vg2
5486d7f5d3SJohn Marino
5586d7f5d3SJohn Marino# 'vgmerge succeeds with mirrored LV in source VG'
5686d7f5d3SJohn Marinovgcreate $vg1 $dev1 $dev2 $dev3
5786d7f5d3SJohn Marinovgcreate $vg2 $dev4
5886d7f5d3SJohn Marinolvcreate -l 4 -n $lv1 -m1 $vg1
5986d7f5d3SJohn Marinovgchange -an $vg1
6086d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg1 3 1 0
6186d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 1 0 0
6286d7f5d3SJohn Marinovgmerge $vg2 $vg1
6386d7f5d3SJohn Marinovg_validate_pvlv_counts_ $vg2 4 1 0
6486d7f5d3SJohn Marinolvremove -f $vg2/$lv1
6586d7f5d3SJohn Marinovgremove -f $vg2
6686d7f5d3SJohn Marino
6786d7f5d3SJohn Marino# 'vgmerge rejects LV name collision'
6886d7f5d3SJohn Marinovgcreate $vg1 $dev1 $dev2
6986d7f5d3SJohn Marinovgcreate $vg2 $dev3 $dev4
7086d7f5d3SJohn Marinolvcreate -l 4 -n $lv1 $vg1
7186d7f5d3SJohn Marinolvcreate -l 4 -n $lv1 $vg2
7286d7f5d3SJohn Marinovgchange -an $vg1
7386d7f5d3SJohn Marinoaux vg_validate_pvlv_counts_ $vg1 2 1 0
7486d7f5d3SJohn Marinoaux vg_validate_pvlv_counts_ $vg2 2 1 0
7586d7f5d3SJohn Marinonot vgmerge $vg2 $vg1 2>err
7686d7f5d3SJohn Marinogrep "Duplicate logical volume name \"$lv1\" in \"$vg2\" and \"$vg1" err
7786d7f5d3SJohn Marinoaux vg_validate_pvlv_counts_ $vg1 2 1 0
7886d7f5d3SJohn Marinoaux vg_validate_pvlv_counts_ $vg2 2 1 0
7986d7f5d3SJohn Marinovgremove -f $vg1
8086d7f5d3SJohn Marinovgremove -f $vg2
8186d7f5d3SJohn Marino
82