mongodb/replicaset: add unit tests

Close bug #56

Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
Emilien Macchi 2014-02-24 16:36:07 +01:00
parent 4cf8809e4b
commit 95df7cbb58
3 changed files with 47 additions and 31 deletions

View File

@ -30,19 +30,15 @@
# Defaults to false
#
# [*replset_members*]
# (optional) Ceilometer Replica set members
# Default value in params
#
# [*mongo_primary*]
# (optional) MongoDB replicaset primary hostname
# (optional) Ceilometer Replica set members hostnames
# Should be an array. Example: ['node1', 'node2', node3']
# Default value in params
#
class cloud::database::nosql(
$bind_ip = $os_params::internal_netif_ip,
$nojournal = false,
$replset_members = $os_params::mongo_nodes,
$mongo_primary = $os_params::mongo_primary
$replset_members = $os_params::mongo_nodes
) {
# bind_ip should be an array
@ -70,13 +66,9 @@ class cloud::database::nosql(
require => Service['mongodb'],
}
if $::hostname == $mongo_primary and !empty($replset_members) {
mongodb_replset{'ceilometer':
members => $replset_members,
before => Anchor['mongodb setup done'],
}
mongodb_replset{'ceilometer':
members => $replset_members,
before => Anchor['mongodb setup done'],
}
anchor {'mongodb setup done' :

View File

@ -23,8 +23,9 @@ describe 'cloud::database::nosql' do
shared_examples_for 'openstack database nosql' do
let :params do
{ :bind_ip => '10.0.0.1',
:nojournal => false }
{ :bind_ip => '10.0.0.1',
:nojournal => false,
:replset_members => ['node1', 'node2', 'node3'] }
end
it 'configure mongodb server' do
@ -35,6 +36,18 @@ describe 'cloud::database::nosql' do
)
end
it 'configure mongodb replicasets' do
should contain_exec('check_mongodb').with(
:command => "/usr/bin/mongo 10.0.0.1:27017",
:logoutput => false,
:tries => 60,
:try_sleep => 5
)
should contain_mongodb_replset('ceilometer').with(
:members => ['node1', 'node2', 'node3']
)
should contain_anchor('mongodb setup done')
end
end
context 'on Debian platforms' do

View File

@ -44,7 +44,8 @@ describe 'cloud::telemetry::server' do
:ks_ceilometer_internal_port => '8777',
:ks_ceilometer_password => 'secrete',
:api_eth => '10.0.0.1',
:ceilometer_database_connection => 'mongodb://10.0.0.2/ceilometer' }
:mongo_nodes => ['node1', 'node2', 'node3'],
:mongo_primary => 'node1' }
end
it 'configure ceilometer common' do
@ -65,18 +66,6 @@ describe 'cloud::telemetry::server' do
)
end
it 'check mongodb is started' do
should contain_exec('check_mongodb').with({
:command => '/usr/bin/mongo 10.0.0.2/ceilometer',
})
end
it 'configure ceilometer db' do
should contain_class('ceilometer::db').with(
:database_connection => 'mongodb://10.0.0.2/ceilometer'
)
end
it 'configure ceilometer collector' do
should contain_class('ceilometer::collector')
end
@ -106,11 +95,32 @@ 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
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
{ :osfamily => 'Debian',
:hostname => 'node1' }
end
it_configures 'openstack telemetry server'
@ -118,7 +128,8 @@ describe 'cloud::telemetry::server' do
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
{ :osfamily => 'RedHat',
:hostname => 'node1' }
end
it_configures 'openstack telemetry server'