]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/openstacklib/manifests/db/mysql/host_access.pp
add stackforge/openstacklib to 3rdparty
[dsa-puppet.git] / 3rdparty / modules / openstacklib / manifests / db / mysql / host_access.pp
diff --git a/3rdparty/modules/openstacklib/manifests/db/mysql/host_access.pp b/3rdparty/modules/openstacklib/manifests/db/mysql/host_access.pp
new file mode 100644 (file)
index 0000000..4909f63
--- /dev/null
@@ -0,0 +1,41 @@
+# Allow a user to access the database for the service
+#
+# == Namevar
+#  String with the form dbname_host. The host part of the string is the host
+#  to allow
+#
+# == Parameters
+#  [*user*]
+#    username to allow
+#
+#  [*password_hash*]
+#    user password hash
+#
+#  [*database*]
+#    the database name
+#
+#  [*privileges*]
+#    the privileges to grant to this user
+#
+define openstacklib::db::mysql::host_access (
+  $user,
+  $password_hash,
+  $database,
+  $privileges,
+) {
+  validate_re($title, '_', 'Title must be $dbname_$host')
+
+  $host = inline_template('<%= @title.split("_").last %>')
+
+  mysql_user { "${user}@${host}":
+    password_hash => $password_hash,
+    require       => Mysql_database[$database],
+  }
+
+  mysql_grant { "${user}@${host}/${database}.*":
+    privileges => $privileges,
+    table      => "${database}.*",
+    require    => Mysql_user["${user}@${host}"],
+    user       => "${user}@${host}",
+  }
+}