mongodb/replicaset: add unit tests
Close bug #56 Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
@@ -30,19 +30,15 @@
|
|||||||
# Defaults to false
|
# Defaults to false
|
||||||
#
|
#
|
||||||
# [*replset_members*]
|
# [*replset_members*]
|
||||||
# (optional) Ceilometer Replica set members
|
# (optional) Ceilometer Replica set members hostnames
|
||||||
# Default value in params
|
# Should be an array. Example: ['node1', 'node2', node3']
|
||||||
#
|
|
||||||
# [*mongo_primary*]
|
|
||||||
# (optional) MongoDB replicaset primary hostname
|
|
||||||
# Default value in params
|
# Default value in params
|
||||||
#
|
#
|
||||||
|
|
||||||
class cloud::database::nosql(
|
class cloud::database::nosql(
|
||||||
$bind_ip = $os_params::internal_netif_ip,
|
$bind_ip = $os_params::internal_netif_ip,
|
||||||
$nojournal = false,
|
$nojournal = false,
|
||||||
$replset_members = $os_params::mongo_nodes,
|
$replset_members = $os_params::mongo_nodes
|
||||||
$mongo_primary = $os_params::mongo_primary
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
# bind_ip should be an array
|
# bind_ip should be an array
|
||||||
@@ -70,15 +66,11 @@ class cloud::database::nosql(
|
|||||||
require => Service['mongodb'],
|
require => Service['mongodb'],
|
||||||
}
|
}
|
||||||
|
|
||||||
if $::hostname == $mongo_primary and !empty($replset_members) {
|
|
||||||
|
|
||||||
mongodb_replset{'ceilometer':
|
mongodb_replset{'ceilometer':
|
||||||
members => $replset_members,
|
members => $replset_members,
|
||||||
before => Anchor['mongodb setup done'],
|
before => Anchor['mongodb setup done'],
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
anchor {'mongodb setup done' :
|
anchor {'mongodb setup done' :
|
||||||
require => Exec['check_mongodb'],
|
require => Exec['check_mongodb'],
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,8 @@ describe 'cloud::database::nosql' do
|
|||||||
|
|
||||||
let :params do
|
let :params do
|
||||||
{ :bind_ip => '10.0.0.1',
|
{ :bind_ip => '10.0.0.1',
|
||||||
:nojournal => false }
|
:nojournal => false,
|
||||||
|
:replset_members => ['node1', 'node2', 'node3'] }
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'configure mongodb server' do
|
it 'configure mongodb server' do
|
||||||
@@ -35,6 +36,18 @@ describe 'cloud::database::nosql' do
|
|||||||
)
|
)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
context 'on Debian platforms' do
|
context 'on Debian platforms' do
|
||||||
|
@@ -44,7 +44,8 @@ describe 'cloud::telemetry::server' do
|
|||||||
:ks_ceilometer_internal_port => '8777',
|
:ks_ceilometer_internal_port => '8777',
|
||||||
:ks_ceilometer_password => 'secrete',
|
:ks_ceilometer_password => 'secrete',
|
||||||
:api_eth => '10.0.0.1',
|
:api_eth => '10.0.0.1',
|
||||||
:ceilometer_database_connection => 'mongodb://10.0.0.2/ceilometer' }
|
:mongo_nodes => ['node1', 'node2', 'node3'],
|
||||||
|
:mongo_primary => 'node1' }
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'configure ceilometer common' do
|
it 'configure ceilometer common' do
|
||||||
@@ -65,18 +66,6 @@ describe 'cloud::telemetry::server' do
|
|||||||
)
|
)
|
||||||
end
|
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
|
it 'configure ceilometer collector' do
|
||||||
should contain_class('ceilometer::collector')
|
should contain_class('ceilometer::collector')
|
||||||
end
|
end
|
||||||
@@ -106,11 +95,32 @@ describe 'cloud::telemetry::server' do
|
|||||||
)
|
)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
context 'on Debian platforms' do
|
context 'on Debian platforms' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{ :osfamily => 'Debian' }
|
{ :osfamily => 'Debian',
|
||||||
|
:hostname => 'node1' }
|
||||||
end
|
end
|
||||||
|
|
||||||
it_configures 'openstack telemetry server'
|
it_configures 'openstack telemetry server'
|
||||||
@@ -118,7 +128,8 @@ describe 'cloud::telemetry::server' do
|
|||||||
|
|
||||||
context 'on RedHat platforms' do
|
context 'on RedHat platforms' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{ :osfamily => 'RedHat' }
|
{ :osfamily => 'RedHat',
|
||||||
|
:hostname => 'node1' }
|
||||||
end
|
end
|
||||||
|
|
||||||
it_configures 'openstack telemetry server'
|
it_configures 'openstack telemetry server'
|
||||||
|
Reference in New Issue
Block a user