Updates cinder-group-active script to work on Ubuntu

Setting the following attribute to true causes a chef-client to fail on
Ubuntu:

default['openstack']['block-storage']['volume']['create_volume_group']

The reason is that when this is enabled, the file cinder-group-active
is dropped in /etc/init.d and attempting to start it fails since it's
not written for Ubuntu.  This change wraps some of the Red Hat specific
bits with if statements and also conditionally runs the vgcreate so we
don't run losetup unnecessarily (which keeps mapping the volume file to
new /dev/loop devices).

Change-Id: I5e14aeec64b1c1d596584bfc5d3352f45114421a
Closes-Bug: #1274385
This commit is contained in:
Matt Thompson 2014-01-30 13:30:12 +08:00
parent 3cc1b69377
commit ad7da3d0cc
2 changed files with 14 additions and 4 deletions

View File

@ -113,6 +113,7 @@ when 'cinder.volume.drivers.lvm.LVMISCSIDriver'
source 'cinder-group-active.erb'
mode '755'
variables(
volume_name: vg_name,
volume_file: vg_file
)
notifies :start, 'service[cinder-group-active]', :immediately

View File

@ -13,14 +13,23 @@
# Short-Description: cinder volume group active script
### END INIT INFO
<% if platform?(%w{centos redhat amazon scientific}) %>
. /etc/rc.d/init.d/functions
<% end %>
start()
{
echo -n "Activing cinder volume group ..."
vgcreate cinder-volumes $(losetup --show -f <%= @volume_file %>)
success
echo
vgs <%= @volume_name %> > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo -n "Activating cinder volume group ..."
vgcreate <%= @volume_name %> $(losetup --show -f <%= @volume_file %>)
<% if platform?(%w{centos redhat amazon scientific}) %>
success
echo
<% elsif platform?(%w{debian ubuntu}) %>
echo "SUCCESS"
<% end %>
fi
}
RETVAL=0