require => Package['ceilometer-api']
}
+ Service['ceilometer-api'] -> Class['ceilometer::db']
+
ceilometer_setting {
'keystone_authtoken/auth_host': value => $keystone_host;
'keystone_authtoken/auth_port': value => $keystone_port;
--- /dev/null
+# Ceilometer::Db::Settings class
+#
+#
+class ceilometer::db::settings (
+ $database_connection = 'mysql://ceilometer:ceilometer@127.0.0.1/ceilometer'
+) {
+
+ validate_re($database_connection,
+ '(sqlite|mysql|posgres|mongodb):\/\/(\S+:\S+@\S+\/\S+)?')
+
+ case $database_connection {
+ /^mysql:\/\//: {
+ $backend_package = false
+ include mysql::python
+ }
+ /^postgres:\/\//: {
+ $backend_package = 'python-psycopg2'
+ }
+ /^mongodb:\/\//: {
+ $backend_package = 'python-pymongo'
+ }
+ /^sqlite:\/\//: {
+ $backend_package = 'python-pysqlite2'
+ }
+ default: {
+ fail('Unsupported backend configured')
+ }
+ }
+
+ if $backend_package and !defined(Package[$backend_package]) {
+ package {'ceilometer-backend-package':
+ ensure => present,
+ name => $backend_package,
+ }
+ }
+
+ ceilometer_setting {
+ 'DEFAULT/database_connection': value => $database_connection;
+ }
+}