From 4ae12d7905a6ea43e9c97a40b56fe5a6e13a3565 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fran=C3=A7ois=20Charlier?= Date: Mon, 10 Dec 2012 17:22:46 +0100 Subject: [PATCH] Add ceilometer-dbsync and fix some db-related deps --- manifests/api.pp | 7 ++++--- manifests/collector.pp | 6 ++++-- manifests/{db/init.pp => db.pp} | 16 +++++++++++++++- manifests/params.pp | 2 ++ 4 files changed, 25 insertions(+), 6 deletions(-) rename manifests/{db/init.pp => db.pp} (68%) diff --git a/manifests/api.pp b/manifests/api.pp index a937236..bccdb47 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -10,6 +10,8 @@ class ceilometer::api( $keystone_password = undef, ) { + include 'ceilometer::params' + validate_string($keystone_password) package { 'ceilometer-api': @@ -27,11 +29,10 @@ class ceilometer::api( enable => $enabled, hasstatus => true, hasrestart => true, - require => Package['ceilometer-api'] + require => [Package['ceilometer-api'], Class['ceilometer::db']], + subscribe => Exec['ceilometer-dbsync'] } - Service['ceilometer-api'] -> Class['ceilometer::db'] - ceilometer_setting { 'keystone_authtoken/auth_host' : value => $keystone_host; 'keystone_authtoken/auth_port' : value => $keystone_port; diff --git a/manifests/collector.pp b/manifests/collector.pp index edb6fec..d8b86d9 100644 --- a/manifests/collector.pp +++ b/manifests/collector.pp @@ -5,6 +5,8 @@ class ceilometer::collector( $enabled = true, ) { + include 'ceilometer::params' + package { 'ceilometer-collector': ensure => installed } @@ -20,8 +22,8 @@ class ceilometer::collector( enable => $enabled, hasstatus => true, hasrestart => true, - require => Package['ceilometer-collector'] + require => [Package['ceilometer-collector'], Class['ceilometer::db']], + subscribe => Exec['ceilometer-dbsync'] } - Service['ceilometer-collector'] -> Class['ceilometer::db'] } diff --git a/manifests/db/init.pp b/manifests/db.pp similarity index 68% rename from manifests/db/init.pp rename to manifests/db.pp index 67c7c14..778f254 100644 --- a/manifests/db/init.pp +++ b/manifests/db.pp @@ -1,10 +1,12 @@ # Ceilometer::Db::Settings class # # -class ceilometer::db::settings ( +class ceilometer::db ( $database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer' ) { + include 'ceilometer::params' + validate_re($database_connection, '(sqlite|mysql|posgres|mongodb):\/\/(\S+:\S+@\S+\/\S+)?') @@ -37,4 +39,16 @@ class ceilometer::db::settings ( ceilometer_setting { 'DEFAULT/database_connection': value => $database_connection; } + + Ceilometer_setting['DEFAULT/database_connection'] ~> Exec['ceilometer-dbsync'] + + exec{ 'ceilometer-dbsync': + command => $::ceilometer::params::dbsync_command, + require => Package['ceilometer-collector'], + user => $::ceilometer::params::username, + refreshonly => true, + logoutput => on_failure, + subscribe => Ceilometer + } + } diff --git a/manifests/params.pp b/manifests/params.pp index e68e31b..96b5201 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -13,4 +13,6 @@ class ceilometer::params { $agent_compute_service_name = 'ceilometer-agent-compute' $api_service_name = 'ceilometer-api' $collector_service_name = 'ceilometer-collector' + + $dbsync_command = 'ceilometer-dbsync' } -- 2.45.2