puppet-cinder/manifests/rabbitmq.pp
Dan Prince cb3b84abb0 Add cinder::rabbitmq class.
Updates the cinder module so that it supports full Rabbitmq
configuration for the Cinder service. Previously the Cinder module
piggy-backed on the Nova module for its Rabbitmq configuration.

It is now possible to configure Cinder with its own Rabbitmq
service/vhost/etc.

Change-Id: I1ce84d0716d333fe68d3a60ba7d7543c93a70ba3
2013-04-23 07:44:10 -04:00

53 lines
1.3 KiB
Puppet

#
# class for installing rabbitmq server for cinder
#
#
class cinder::rabbitmq(
$userid ='guest',
$password ='guest',
$port ='5672',
$virtual_host ='/',
$enabled = true
) {
# only configure cinder after the queue is up
Class['rabbitmq::service'] -> Anchor<| title == 'cinder-start' |>
if ($enabled) {
if $userid == 'guest' {
$delete_guest_user = false
} else {
$delete_guest_user = true
rabbitmq_user { $userid:
admin => true,
password => $password,
provider => 'rabbitmqctl',
require => Class['rabbitmq::server'],
}
# I need to figure out the appropriate permissions
rabbitmq_user_permissions { "${userid}@${virtual_host}":
configure_permission => '.*',
write_permission => '.*',
read_permission => '.*',
provider => 'rabbitmqctl',
}->Anchor<| title == 'cinder-start' |>
}
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
class { 'rabbitmq::server':
service_ensure => $service_ensure,
port => $port,
delete_guest_user => $delete_guest_user,
}
if ($enabled) {
rabbitmq_vhost { $virtual_host:
provider => 'rabbitmqctl',
require => Class['rabbitmq::server'],
}
}
}