]> review.fuel-infra Code Review - puppet-modules/puppet-ceilometer.git/commitdiff
Move database settings to a different class
authorFrançois Charlier <fcharlier@ploup.net>
Mon, 10 Dec 2012 15:52:40 +0000 (16:52 +0100)
committerFrançois Charlier <fcharlier@ploup.net>
Mon, 10 Dec 2012 15:55:38 +0000 (16:55 +0100)
manifests/api.pp
manifests/collector.pp
manifests/db/init.pp [new file with mode: 0644]

index 1751a38c7ad7c898bc7ae96390a91ad2231cee37..d5d37f288af6f109045dca2bbf70fdb9a461ba32 100644 (file)
@@ -28,6 +28,8 @@ class ceilometer::api(
     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;
index 5088474b7dcec4d3bc7daf3bbfa40cffee7d37c5..74ef3e259dfcb764f589c0f2d15354beddc24bdc 100644 (file)
@@ -20,4 +20,5 @@ class ceilometer::collector(
     require => Package['ceilometer-collector']
   }
 
+  Service['ceilometer-collector'] -> Class['ceilometer::db']
 }
diff --git a/manifests/db/init.pp b/manifests/db/init.pp
new file mode 100644 (file)
index 0000000..67c7c14
--- /dev/null
@@ -0,0 +1,40 @@
+# 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;
+  }
+}