telemetry: do not use mongodb primary node anymore

Before, the synchronization was done only if the telemetry server was
also a mongodb primary node, which has no sense.
This patch aims to ensure mongodb servers can be outside telemetry
nodes.

Close bug #297

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
Emilien Macchi 2014-02-26 11:08:31 +01:00
parent fff978ca56
commit 146ef38fef
2 changed files with 7 additions and 29 deletions

View File

@ -23,7 +23,6 @@ class cloud::telemetry::server(
$ks_ceilometer_password = $os_params::ks_ceilometer_password,
$api_eth = $os_params::api_eth,
$mongo_nodes = $os_params::mongo_nodes,
$mongo_primary = $os_params::mongo_primary,
){
include 'cloud::telemetry'
@ -31,16 +30,10 @@ class cloud::telemetry::server(
$s_mongo_nodes = join($mongo_nodes, ',')
$db_conn = "mongodb://${s_mongo_nodes}/ceilometer?replicaSet=ceilometer"
if $::hostname == $mongo_primary {
$sync_db = true
} else {
$sync_db = false
}
# Install MongoDB database
class { 'ceilometer::db':
database_connection => $db_conn,
sync_db => $sync_db,
sync_db => true,
require => Anchor['mongodb setup done'],
}

View File

@ -44,8 +44,7 @@ describe 'cloud::telemetry::server' do
:ks_ceilometer_internal_port => '8777',
:ks_ceilometer_password => 'secrete',
:api_eth => '10.0.0.1',
:mongo_nodes => ['node1', 'node2', 'node3'],
:mongo_primary => 'node1' }
:mongo_nodes => ['node1', 'node2', 'node3'] }
end
it 'configure ceilometer common' do
@ -95,25 +94,11 @@ describe 'cloud::telemetry::server' do
)
end
context 'configure ceilometer db on primary mongodb node' do
it 'configure ceilometer db' do
should contain_class('ceilometer::db').with(
:sync_db => true,
:database_connection => 'mongodb://node1,node2,node3/ceilometer?replicaSet=ceilometer'
)
end
end
context 'configure ceilometer db on secondary mongodb node' do
before :each do
facts.merge!( :hostname => 'node2' )
end
it 'configure ceilometer db' do
should contain_class('ceilometer::db').with(
:sync_db => false,
:database_connection => 'mongodb://node1,node2,node3/ceilometer?replicaSet=ceilometer'
)
end
it 'synchronize ceilometer db indexes' do
should contain_class('ceilometer::db').with(
:sync_db => true,
:database_connection => 'mongodb://node1,node2,node3/ceilometer?replicaSet=ceilometer'
)
end
end