Files
puppet-nova/spec/classes/nova_rabbitmq_spec.rb
Bogdan Dobrelya 87be273bcf Add an option to not configure RabbitMQ service.
W/o this change we cannot drop a RabbitMQ service (cluster)
installation and configuration from Nova module.
We want Nova module to has an option to configure only users,
rights, vhosts but not the AMQP cluster itself (this part
should be moved to some other modules).

The solution is:
* add a False value for the rabbitmq_class parameter and skip
  all of the related configuration steps, if the False value
  was specified.
* Deprecate rabbitmq_class parameter.

Closes-bug: #1407077

Change-Id: I31984e2ca1b2959d9e58c02db620f56931d38e7b
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
2015-01-14 10:22:34 +01:00

121 lines
2.4 KiB
Ruby

require 'spec_helper'
describe 'nova::rabbitmq' do
let :facts do
{
:puppetversion => '2.7',
:osfamily => 'Debian'
}
end
describe 'with defaults' do
it 'should contain all of the default resources' do
should contain_class('rabbitmq::server').with(
:service_ensure => 'running',
:port => '5672',
:delete_guest_user => false
)
should contain_rabbitmq_vhost('/').with(
:provider => 'rabbitmqctl'
)
end
end
describe 'when a rabbitmq user is specified' do
let :params do
{
:userid => 'dan',
:password => 'pass'
}
end
it 'should contain user and permissions' do
should contain_rabbitmq_user('dan').with(
:admin => true,
:password => 'pass',
:provider => 'rabbitmqctl'
)
should contain_rabbitmq_user_permissions('dan@/').with(
:configure_permission => '.*',
:write_permission => '.*',
:read_permission => '.*',
:provider => 'rabbitmqctl'
)
end
end
describe 'when disabled' do
let :params do
{
:userid => 'dan',
:password => 'pass',
:enabled => false
}
end
it 'should be disabled' do
should_not contain_rabbitmq_user('dan')
should_not contain_rabbitmq_user_permissions('dan@/')
should contain_class('rabbitmq::server').with(
:service_ensure => 'stopped',
:port => '5672',
:delete_guest_user => false
)
should_not contain_rabbitmq_vhost('/')
end
end
describe 'with clustering' do
let :params do
{
:cluster_disk_nodes => ['rabbit01', 'rabbit02', 'rabbit03']
}
end
it 'should contain all the clustering resources' do
should contain_class('rabbitmq::server').with(
:service_ensure => 'running',
:port => '5672',
:delete_guest_user => false,
:config_cluster => true,
:cluster_disk_nodes => ['rabbit01', 'rabbit02', 'rabbit03'],
:wipe_db_on_cookie_change => true
)
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