mongodb/replicaset: add unit tests
Close bug #56 Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
parent
4cf8809e4b
commit
95df7cbb58
@ -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' :
|
||||
|
@ -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
|
||||
|
@ -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'
|
||||
|
Loading…
x
Reference in New Issue
Block a user