From 6ac991e465edbd184e9e9d2609760589269eed7c Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 9 Apr 2014 13:01:15 +0200 Subject: [PATCH] messaging: add cluster_node_type param Allow the end-user to choose starting RabbitMQ in RAM or on the disk. Backward compatible since the default value is to 'disk'. Signed-off-by: Emilien Macchi --- manifests/messaging.pp | 10 ++++++++-- spec/classes/cloud_messaging_spec.rb | 20 ++++++++++++++++---- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/manifests/messaging.pp b/manifests/messaging.pp index 56d59f71..ae94ad5c 100644 --- a/manifests/messaging.pp +++ b/manifests/messaging.pp @@ -27,10 +27,15 @@ # (optional) Password to connect to OpenStack queues. # Default value in params # +# [*cluster_node_type*] +# (optionnal) Store the queues on the disc or in the RAM. +# Could be set to 'disk' or 'ram'. +# Defaults to 'disc' class cloud::messaging( - $rabbit_names = $os_params::rabbit_names, - $rabbit_password = $os_params::rabbit_password + $rabbit_names = $os_params::rabbit_names, + $rabbit_password = $os_params::rabbit_password, + $cluster_node_type = 'disc' ){ class { 'rabbitmq': @@ -38,6 +43,7 @@ class cloud::messaging( config_cluster => true, cluster_nodes => $rabbit_names, wipe_db_on_cookie_change => true, + cluster_node_type => $cluster_node_type } rabbitmq_vhost { '/': diff --git a/spec/classes/cloud_messaging_spec.rb b/spec/classes/cloud_messaging_spec.rb index 0b72bce6..ea05c40a 100644 --- a/spec/classes/cloud_messaging_spec.rb +++ b/spec/classes/cloud_messaging_spec.rb @@ -24,20 +24,32 @@ describe 'cloud::messaging' do let :params do { - :rabbit_names => ['foo','boo','zoo'], - :rabbit_password => 'secrete' + :rabbit_names => ['foo','boo','zoo'], + :rabbit_password => 'secrete', + :cluster_node_type => 'disc' } end - it 'configure rabbitmq-server' do + it 'configure rabbitmq-server with default values' do should contain_class('rabbitmq').with( :delete_guest_user => true, :config_cluster => true, :cluster_nodes => params[:rabbit_names], - :wipe_db_on_cookie_change => true + :wipe_db_on_cookie_change => true, + :cluster_node_type => 'disc' ) end + context 'with RAM mode' do + before :each do + params.merge!( :cluster_node_type => 'ram') + end + + it 'configure rabbitmq-server in RAM mode' do + should contain_class('rabbitmq').with( :cluster_node_type => 'ram' ) + end + end + end context 'on Debian platforms' do