
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>
121 lines
2.4 KiB
Ruby
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
|