diff --git a/manifests/rabbitmq.pp b/manifests/rabbitmq.pp index 1c69f355..4ea667b6 100644 --- a/manifests/rabbitmq.pp +++ b/manifests/rabbitmq.pp @@ -25,9 +25,11 @@ # Defaults to false # # [*rabbitmq_class*] -# (optional) The rabbitmq puppet class to depend on, +# (optional) Deprecated. The rabbitmq puppet class to depend on, # which is dependent on the puppet-rabbitmq version. -# Use the default for 1.x, use 'rabbitmq' for 3.x +# Use the default for 1.x, use 'rabbitmq' for 3.x. +# Use false if rabbitmq class should not be configured +# here # Defaults to 'rabbitmq::server' # class cinder::rabbitmq( @@ -36,12 +38,10 @@ class cinder::rabbitmq( $port = '5672', $virtual_host = '/', $enabled = true, + # DEPRECATED PARAMETER $rabbitmq_class = 'rabbitmq::server', ) { - # only configure cinder after the queue is up - Class[$rabbitmq_class] -> Anchor<| title == 'cinder-start' |> - if ($enabled) { if $userid == 'guest' { $delete_guest_user = false @@ -51,7 +51,6 @@ class cinder::rabbitmq( admin => true, password => $password, provider => 'rabbitmqctl', - require => Class[$rabbitmq_class], } # I need to figure out the appropriate permissions rabbitmq_user_permissions { "${userid}@${virtual_host}": @@ -66,16 +65,25 @@ class cinder::rabbitmq( $service_ensure = 'stopped' } - class { $rabbitmq_class: - service_ensure => $service_ensure, - port => $port, - delete_guest_user => $delete_guest_user, + # NOTE(bogdando) do not cinder manage rabbitmq service + # if rabbitmq_class is set to False + if $rabbitmq_class { + warning('The rabbitmq_class parameter is deprecated.') + + class { $rabbitmq_class: + service_ensure => $service_ensure, + port => $port, + delete_guest_user => $delete_guest_user, + } + Class[$rabbitmq_class] -> Rabbitmq_user<| title == $userid |> + Class[$rabbitmq_class] -> Rabbitmq_vhost<| title == $virtual_host |> + # only configure cinder after the queue is up + Class[$rabbitmq_class] -> Anchor<| title == 'cinder-start' |> } if ($enabled) { rabbitmq_vhost { $virtual_host: provider => 'rabbitmqctl', - require => Class[$rabbitmq_class], } } } diff --git a/spec/classes/cinder_rabbitmq_spec.rb b/spec/classes/cinder_rabbitmq_spec.rb index 3fcfd7a0..e38de3b7 100644 --- a/spec/classes/cinder_rabbitmq_spec.rb +++ b/spec/classes/cinder_rabbitmq_spec.rb @@ -77,5 +77,18 @@ describe 'cinder::rabbitmq' do end end + describe 'when no rabbitmq class specified' do + + let :params do + { + :rabbitmq_class => false + } + end + + it 'should not contain rabbitmq class calls' do + should_not contain_class('rabbitmq::server') + end + + end end