1#!/bin/sh
2# Copyright (C) 2008 Red Hat, Inc. All rights reserved.
3#
4# This copyrighted material is made available to anyone wishing to use,
5# modify, copy, or redistribute it subject to the terms and conditions
6# of the GNU General Public License v.2.
7#
8# You should have received a copy of the GNU General Public License
9# along with this program; if not, write to the Free Software Foundation,
10# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
11
12# 'Test vgmerge command options for validity'
13
14. ./test-utils.sh
15
16aux prepare_pvs 4
17
18# 'vgmerge normal operation'
19# ensure ordering does not matter
20vgcreate $vg1 $dev1 $dev2 
21vgcreate $vg2 $dev3 $dev4 
22vgmerge $vg1 $vg2 
23vgremove $vg1
24vgcreate $vg2 $dev1 $dev2
25vgcreate $vg1 $dev3 $dev4
26vgmerge $vg2 $vg1
27vgremove $vg2
28
29# 'vgmerge rejects duplicate vg name'
30vgcreate $vg1 $dev1 $dev2 
31vgcreate $vg2 $dev3 $dev4 
32not vgmerge $vg1 $vg1 2>err
33grep "^  Duplicate volume group name \"$vg1\"\$" err 
34vgremove $vg2 
35vgremove $vg1
36
37# 'vgmerge rejects vgs with incompatible extent_size'
38vgcreate --physicalextentsize 4M $vg1 $dev1 $dev2 
39vgcreate --physicalextentsize 8M $vg2 $dev3 $dev4 
40not vgmerge $vg1 $vg2 2>err
41grep "^  Extent sizes differ" err 
42vgremove $vg2 
43vgremove $vg1
44
45# 'vgmerge rejects vgmerge because max_pv is exceeded'
46vgcreate --maxphysicalvolumes 2 $vg1 $dev1 $dev2 
47vgcreate --maxphysicalvolumes 2 $vg2 $dev3 $dev4 
48not vgmerge $vg1 $vg2 2>err
49grep "^  Maximum number of physical volumes (2) exceeded" err 
50vgremove $vg2 
51vgremove $vg1
52
53# 'vgmerge rejects vg with active lv'
54vgcreate $vg1 $dev1 $dev2 
55vgcreate $vg2 $dev3 $dev4 
56lvcreate -l 4 -n lv1 $vg2 
57not vgmerge $vg1 $vg2 2>err
58grep "^  Logical volumes in \"$vg2\" must be inactive\$" err 
59vgremove -f $vg2 
60vgremove -f $vg1
61
62# 'vgmerge rejects vgmerge because max_lv is exceeded' 
63vgcreate --maxlogicalvolumes 2 $vg1 $dev1 $dev2 
64vgcreate --maxlogicalvolumes 2 $vg2 $dev3 $dev4 
65lvcreate -l 4 -n lv1 $vg1 
66lvcreate -l 4 -n lv2 $vg1 
67lvcreate -l 4 -n lv3 $vg2 
68vgchange -an $vg1 
69vgchange -an $vg2 
70not vgmerge $vg1 $vg2 2>err
71grep "^  Maximum number of logical volumes (2) exceeded" err 
72vgremove -f $vg2 
73vgremove -f $vg1
74
75