]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/openstacklib/manifests/db/mysql.pp
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / openstacklib / manifests / db / mysql.pp
diff --git a/3rdparty/modules/openstacklib/manifests/db/mysql.pp b/3rdparty/modules/openstacklib/manifests/db/mysql.pp
new file mode 100644 (file)
index 0000000..7cf1010
--- /dev/null
@@ -0,0 +1,68 @@
+# == Definition: openstacklib::db::mysql
+#
+# This resource configures a mysql 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'
+#
+#  [*host*]
+#    The IP address or hostname of the user in mysql_grant;
+#    string; optional; default to '127.0.0.1'
+#
+#  [*charset*]
+#    The charset to use for the database;
+#    string; optional; default to 'utf8'
+#
+#  [*collate*]
+#    The collate to use for the database;
+#    string; optional; default to 'utf8_general_ci'
+#
+#  [*allowed_hosts*]
+#    Additional hosts that are allowed to access this database;
+#    array or string; optional; default to undef
+#
+#  [*privileges*]
+#    Privileges given to the database user;
+#    string or array of strings; optional; default to 'ALL'
+
+define openstacklib::db::mysql (
+  $password_hash,
+  $dbname         = $title,
+  $user           = $title,
+  $host           = '127.0.0.1',
+  $charset        = 'utf8',
+  $collate        = 'utf8_general_ci',
+  $allowed_hosts  = [],
+  $privileges     = 'ALL',
+) {
+
+  include ::mysql::client
+
+  mysql_database { $dbname:
+    ensure  => present,
+    charset => $charset,
+    collate => $collate,
+    require => [ Class['mysql::server'], Class['mysql::client'] ],
+  }
+
+  $allowed_hosts_list = unique(concat(any2array($allowed_hosts), [$host]))
+  $real_allowed_hosts = prefix($allowed_hosts_list, "${dbname}_")
+
+  openstacklib::db::mysql::host_access { $real_allowed_hosts:
+    user          => $user,
+    password_hash => $password_hash,
+    database      => $dbname,
+    privileges    => $privileges,
+  }
+}