diff --git a/manifests/telemetry/server.pp b/manifests/telemetry/server.pp index 6b873385..7d07a3b0 100644 --- a/manifests/telemetry/server.pp +++ b/manifests/telemetry/server.pp @@ -27,10 +27,19 @@ class cloud::telemetry::server( include 'cloud::telemetry' -# Install MongoDB database + $db_conn = regsubst($ceilometer_database_connection, 'mongodb:\/\/(\.*)', '\2') + exec {'check_mongodb' : + command => "/usr/bin/mongo ${db_conn}", + logoutput => false, + tries => 60, + try_sleep => 5, + require => Service['mongodb'], + } + + # Install MongoDB database class { 'ceilometer::db': database_connection => $ceilometer_database_connection, - require => Class['mongodb'] + require => Exec['check_mongodb'], } # Install Ceilometer-collector diff --git a/spec/classes/privatecloud_telemetry_server_spec.rb b/spec/classes/privatecloud_telemetry_server_spec.rb index 25ead407..47ecab98 100644 --- a/spec/classes/privatecloud_telemetry_server_spec.rb +++ b/spec/classes/privatecloud_telemetry_server_spec.rb @@ -61,6 +61,12 @@ describe 'cloud::telemetry::server' do should contain_ceilometer_config('DEFAULT/use_syslog').with('value' => 'yes') 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'