--- /dev/null
+# 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}",
+ }
+}