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