Merge pull request #648 from enovance/mongo-without-rs

MongoDB replicaset is now an option
This commit is contained in:
Sebastien Badia 2014-10-01 00:14:47 +02:00
commit ab558e85b0
4 changed files with 36 additions and 6 deletions

View File

@ -32,6 +32,7 @@
# [*replset_members*]
# (optional) Ceilometer Replica set members hostnames
# Should be an array. Example: ['node1', 'node2', node3']
# If set to false, the setup won't be HA and no replicaset will be created.
# Defaults to hostname
#
@ -72,13 +73,14 @@ class cloud::database::nosql(
require => Service['mongodb'],
}
if $replset_members {
mongodb_replset{'ceilometer':
members => $array_replset_members,
before => Anchor['mongodb setup done'],
}
}
anchor {'mongodb setup done' :
require => Exec['check_mongodb'],
}
}

View File

@ -18,12 +18,18 @@
class cloud::telemetry::collector(
$mongo_nodes = ['127.0.0.1:27017'],
$replicaset_enabled = true,
){
include 'cloud::telemetry'
$s_mongo_nodes = join($mongo_nodes, ',')
if $replicaset_enabled {
$db_conn = "mongodb://${s_mongo_nodes}/ceilometer?replicaSet=ceilometer"
} else {
$db_conn = "mongodb://${s_mongo_nodes}/ceilometer"
}
class { 'ceilometer::db':
database_connection => $db_conn,

View File

@ -50,6 +50,15 @@ describe 'cloud::database::nosql' do
)
is_expected.to contain_anchor('mongodb setup done')
end
context 'without replica set' do
before :each do
params.merge!( :replset_members => false)
end
it 'do not configure mongodb replicasets' do
is_expected.not_to contain_mongodb_replset('ceilometer')
end
end
end
context 'on Debian platforms' do

View File

@ -71,6 +71,19 @@ describe 'cloud::telemetry::collector' do
:database_connection => 'mongodb://node1,node2,node3/ceilometer?replicaSet=ceilometer'
)
end
context 'without replica set' do
before :each do
params.merge!( :replicaset_enabled => false,
:mongo_nodes => ['node1'] )
end
it 'do not configure mongodb replicasets' do
is_expected.to contain_class('ceilometer::db').with(
:sync_db => true,
:database_connection => 'mongodb://node1/ceilometer'
)
end
end
end
context 'on Debian platforms' do