]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/openstacklib/manifests/db/postgresql.pp
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / openstacklib / manifests / db / postgresql.pp
diff --git a/3rdparty/modules/openstacklib/manifests/db/postgresql.pp b/3rdparty/modules/openstacklib/manifests/db/postgresql.pp
new file mode 100644 (file)
index 0000000..febbb44
--- /dev/null
@@ -0,0 +1,46 @@
+# == Definition: openstacklib::db::postgresql
+#
+# This resource configures a postgresql database for an OpenStack service
+#
+# == Parameters:
+#
+#  [*password_hash*]
+#    Password hash to use for the database user for this service;
+#    string; required
+#
+#  [*dbname*]
+#    The name of the database
+#    string; optional; default to the $title of the resource, i.e. 'nova'
+#
+#  [*user*]
+#    The database user to create;
+#    string; optional; default to the $title of the resource, i.e. 'nova'
+#
+#  [*encoding*]
+#    The charset to use for the database;
+#    string; optional; default to undef
+#
+#  [*privileges*]
+#    Privileges given to the database user;
+#    string or array of strings; optional; default to 'ALL'
+
+define openstacklib::db::postgresql (
+  $password_hash,
+  $dbname     = $title,
+  $user       = $title,
+  $encoding   = undef,
+  $privileges = 'ALL',
+){
+
+  if ((($::operatingsystem == 'RedHat' or $::operatingsystem == 'CentOS') and (versioncmp($::operatingsystemmajrelease, '6') <= 0))
+    or ($::operatingsystem == 'Fedora' and (versioncmp($::operatingsystemmajrelease, '14') <= 0))) {
+    warning('The system packages handling the postgresql infrastructure for OpenStack are out of date and should not be relied on for database migrations.')
+  }
+
+  postgresql::server::db { $dbname:
+    user     => $user,
+    password => $password_hash,
+    encoding => $encoding,
+    grant    => $privileges,
+  }
+}