#!/bin/sh
# Copyright (C) 2008 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

SKIP_WITH_LVMLOCKD=1
SKIP_WITH_LVMPOLLD=1

. lib/inittest

aux prepare_devs 4
pvcreate "$dev1" "$dev2"
pvcreate --metadatacopies 0 "$dev3" "$dev4"

# vgrename normal operation - rename vg1 to vg2
# vgrename normal operation - rename vg2 to vg1
# ensure name ordering does not matter
vgcreate $vg1 "$dev1" "$dev2"
vgrename $vg1 $vg2
check vg_field $vg2 vg_name $vg2
vgrename $vg2 $vg1
check vg_field $vg1 vg_name $vg1
vgremove $vg1

# vgrename by uuid (bz231187)
vgcreate $vg1 "$dev1" "$dev3"
UUID=$(vgs --noheading -o vg_uuid $vg1)
check vg_field $vg1 vg_uuid $UUID
vgrename $UUID $vg2
check vg_field $vg2 vg_name $vg2
vgremove $vg2

# vgrename fails - new vg already exists
vgcreate $vg1 "$dev1"
vgcreate $vg2 "$dev2"
not vgrename $vg1 $vg2
vgremove $vg1 $vg2

# vgrename duplicate name
vgcreate $vg1 "$dev1"
aux disable_dev "$dev1"
vgcreate $vg1 "$dev2"
UUID=$(vgs --noheading -o vg_uuid $vg1)
aux enable_dev "$dev1"

not vgrename $vg1 $vg2
vgrename $UUID $vg2
not vgrename $UUID $vg1

vgs

vgremove $vg1 $vg2
