# [*database_connection*]
# the connection string. format: [driver]://[user]:[password]@[host]/[database]
#
+# [*sync_db*]
+# enable dbsync.
+#
class ceilometer::db (
- $database_connection = 'mysql://ceilometer:ceilometer@localhost/ceilometer'
+ $database_connection = 'mysql://ceilometer:ceilometer@localhost/ceilometer',
+ $sync_db = true
) {
include ceilometer::params
}
}
+ 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,
Ceilometer_config['database/connection'] ~> Exec['ceilometer-dbsync']
exec { 'ceilometer-dbsync':
- command => $::ceilometer::params::dbsync_command,
+ command => $command,
path => '/usr/bin',
user => $::ceilometer::params::username,
refreshonly => true,
end
let :params do
- { :database_connection => 'mongodb://localhost:1234/ceilometer' }
+ { :database_connection => 'mongodb://localhost:1234/ceilometer',
+ :sync_db => true }
end
it { should contain_class('ceilometer::params') }
:name => 'python-pymongo')
should contain_ceilometer_config('database/connection').with_value('mongodb://localhost:1234/ceilometer')
end
+
+ it 'runs ceilometer-dbsync' do
+ should contain_exec('ceilometer-dbsync').with(
+ :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
+ :path => '/usr/bin',
+ :refreshonly => 'true',
+ :logoutput => 'on_failure'
+ )
+ end
end
# Fedora > 18 has python-pymongo too
end
let :params do
- { :database_connection => 'mongodb://localhost:1234/ceilometer' }
+ { :database_connection => 'mongodb://localhost:1234/ceilometer',
+ :sync_db => false }
end
it { should contain_class('ceilometer::params') }
:name => 'python-pymongo')
should contain_ceilometer_config('database/connection').with_value('mongodb://localhost:1234/ceilometer')
end
+
+ it 'runs ceilometer-dbsync' do
+ should contain_exec('ceilometer-dbsync').with(
+ :command => '/bin/true',
+ :path => '/usr/bin',
+ :refreshonly => 'true',
+ :logoutput => 'on_failure'
+ )
+ end
end
# RHEL has python-pymongo too
end
let :params do
- { :database_connection => 'mongodb://localhost:1234/ceilometer' }
+ { :database_connection => 'mongodb://localhost:1234/ceilometer',
+ :sync_db => true }
end
it { should contain_class('ceilometer::params') }
:ensure => 'present',
:name => 'python-pymongo')
end
+
+ it 'runs ceilometer-dbsync' do
+ should contain_exec('ceilometer-dbsync').with(
+ :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
+ :path => '/usr/bin',
+ :refreshonly => 'true',
+ :logoutput => 'on_failure'
+ )
+ end
end
# RHEL has python-sqlite2
end
let :params do
- { :database_connection => 'sqlite:///var/lib/ceilometer.db' }
+ { :database_connection => 'sqlite:///var/lib/ceilometer.db',
+ :sync_db => false }
end
it { should contain_class('ceilometer::params') }
:name => 'python-sqlite2')
should contain_ceilometer_config('database/connection').with_value('sqlite:///var/lib/ceilometer.db')
end
+
+ it 'runs ceilometer-dbsync' do
+ should contain_exec('ceilometer-dbsync').with(
+ :command => '/bin/true',
+ :path => '/usr/bin',
+ :refreshonly => 'true',
+ :logoutput => 'on_failure'
+ )
+ end
end
# debian has "python-pysqlite2"
end
let :params do
- { :database_connection => 'sqlite:///var/lib/ceilometer.db' }
+ { :database_connection => 'sqlite:///var/lib/ceilometer.db',
+ :sync_db => true }
end
it { should contain_class('ceilometer::params') }
:ensure => 'present',
:name => 'python-pysqlite2')
end
+
+ it 'runs ceilometer-dbsync' do
+ should contain_exec('ceilometer-dbsync').with(
+ :command => 'ceilometer-dbsync --config-file=/etc/ceilometer/ceilometer.conf',
+ :path => '/usr/bin',
+ :refreshonly => 'true',
+ :logoutput => 'on_failure'
+ )
+ end
end
end