$service_ensure = 'stopped'
}
}
+
Package['ceilometer-common'] -> Service[$service_name]
if $service_name == $::ceilometer::params::api_service_name {
if $manage_service {
if $enabled {
$service_ensure = 'running'
- Class['ceilometer::db'] -> Service['ceilometer-collector']
- Exec['ceilometer-dbsync'] ~> Service['ceilometer-collector']
} else {
$service_ensure = 'stopped'
}
}
}
- if $sync_db {
- $command = $::ceilometer::params::dbsync_command
- } else {
- $command = '/bin/true'
- }
-
if $backend_package and !defined(Package[$backend_package]) {
package {'ceilometer-backend-package':
ensure => present,
'database/connection': value => $database_connection, secret => true;
}
- Ceilometer_config['database/connection'] ~> Exec['ceilometer-dbsync']
-
- exec { 'ceilometer-dbsync':
- command => $command,
- path => '/usr/bin',
- user => $::ceilometer::params::user,
- refreshonly => true,
- logoutput => on_failure,
- subscribe => Ceilometer_config['database/connection']
+ if $sync_db {
+ include ::ceilometer::db::sync
}
}
--- /dev/null
+#
+# Class to execute ceilometer dbsync
+#
+class ceilometer::db::sync {
+
+ include ::ceilometer::params
+
+ Package<| tag == 'ceilometer-package' |> ~> Exec['ceilometer-dbsync']
+ Exec['ceilometer-dbsync'] ~> Service <| tag == 'ceilometer-service' |>
+
+ Ceilometer_config<||> -> Exec['ceilometer-dbsync']
+ Ceilometer_config<| title == 'database/connection' |> ~> Exec['ceilometer-dbsync']
+
+ exec { 'ceilometer-dbsync':
+ command => $::ceilometer::params::dbsync_command,
+ path => '/usr/bin',
+ user => $::ceilometer::params::user,
+ refreshonly => true,
+ logoutput => on_failure,
+ }
+
+}
:hasstatus => true,
:hasrestart => true,
:require => 'Class[Ceilometer::Db]',
- :subscribe => 'Exec[ceilometer-dbsync]',
:tag => 'ceilometer-service',
)
end
)
end
- it 'configures relationships on database' do
- is_expected.to contain_class('ceilometer::db').with_before(['Service[ceilometer-collector]'])
- is_expected.to contain_exec('ceilometer-dbsync').with_notify(['Service[ceilometer-collector]'])
- end
end
context 'when disabled' do
is_expected.to contain_ceilometer_config('database/connection').with_value( params[:database_connection] ).with_secret(true)
end
- it 'runs ceilometer-dbsync' do
- is_expected.to contain_exec('ceilometer-dbsync').with(
- :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
- :path => '/usr/bin',
- :refreshonly => 'true',
- :user => 'ceilometer',
- :logoutput => 'on_failure'
- )
+ it 'includes ceilometer::db::sync' do
+ is_expected.to contain_class('ceilometer::db::sync')
end
end
is_expected.to contain_ceilometer_config('database/connection').with_value( params[:database_connection] ).with_secret(true)
end
- it 'runs ceilometer-dbsync' do
- is_expected.to contain_exec('ceilometer-dbsync').with(
- :command => '/bin/true',
- :path => '/usr/bin',
- :refreshonly => 'true',
- :user => 'ceilometer',
- :logoutput => 'on_failure'
- )
+ it 'does not include ceilometer::db::sync' do
+ is_expected.not_to contain_class('ceilometer::db::sync')
end
end
:name => 'python-pymongo')
end
- it 'runs ceilometer-dbsync' do
- is_expected.to contain_exec('ceilometer-dbsync').with(
- :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
- :path => '/usr/bin',
- :refreshonly => 'true',
- :user => 'ceilometer',
- :logoutput => 'on_failure'
- )
+ it 'includes ceilometer::db::sync' do
+ is_expected.to contain_class('ceilometer::db::sync')
end
end
is_expected.to contain_ceilometer_config('database/connection').with_value( params[:database_connection] ).with_secret(true)
end
- it 'runs ceilometer-dbsync' do
- is_expected.to contain_exec('ceilometer-dbsync').with(
- :command => '/bin/true',
- :path => '/usr/bin',
- :refreshonly => 'true',
- :user => 'ceilometer',
- :logoutput => 'on_failure'
- )
+ it 'does not include ceilomter::db::sync' do
+ is_expected.not_to contain_class('ceilometer::db::sync')
end
end
:name => 'python-pysqlite2')
end
- it 'runs ceilometer-dbsync' do
- is_expected.to contain_exec('ceilometer-dbsync').with(
- :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
- :path => '/usr/bin',
- :refreshonly => 'true',
- :user => 'ceilometer',
- :logoutput => 'on_failure'
- )
+ it 'includes ceilometer::db::sync' do
+ is_expected.to contain_class('ceilometer::db::sync')
end
end
--- /dev/null
+require 'spec_helper'
+
+describe 'ceilometer::db::sync' do
+
+ shared_examples_for 'ceilometer-dbsync' do
+
+ it 'runs ceilometer-dbsync' do
+ is_expected.to contain_exec('ceilometer-dbsync').with(
+ :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
+ :path => '/usr/bin',
+ :refreshonly => 'true',
+ :user => 'ceilometer',
+ :logoutput => 'on_failure'
+ )
+ end
+
+ end
+
+ context 'on a RedHat osfamily' do
+ let :facts do
+ {
+ :osfamily => 'RedHat',
+ :operatingsystemrelease => '7.0',
+ :concat_basedir => '/var/lib/puppet/concat'
+ }
+ end
+
+ it_configures 'ceilometer-dbsync'
+ end
+
+ context 'on a Debian osfamily' do
+ let :facts do
+ {
+ :operatingsystemrelease => '7.8',
+ :operatingsystem => 'Debian',
+ :osfamily => 'Debian',
+ :concat_basedir => '/var/lib/puppet/concat'
+ }
+ end
+
+ it_configures 'ceilometer-dbsync'
+ end
+
+end