diff options
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/default_database.pp | 73 |
1 files changed, 38 insertions, 35 deletions
diff --git a/manifests/default_database.pp b/manifests/default_database.pp index 1c99af5..34b986f 100644 --- a/manifests/default_database.pp +++ b/manifests/default_database.pp @@ -2,44 +2,47 @@ # generate hashed password with: # ruby -r'digest/sha1' -e 'puts "*" + Digest::SHA1.hexdigest(Digest::SHA1.digest(ARGV[0])).upcase' PASSWORD define mysql::default_database( - $username = 'absent', - $password, - $password_is_encrypted = true, - $privileges = 'all', - $host = '127.0.0.1', - $ensure = 'present' + $username = 'absent', + $password = 'absent', + $password_is_encrypted = true, + $privileges = 'all', + $host = '127.0.0.1', + $ensure = 'present' ) { - $real_username = $username ? { - 'absent' => $name, - default => $username + $real_username = $username ? { + 'absent' => $name, + default => $username + } + mysql_database{"$name": + ensure => $ensure + } + if $password == 'absent' and $ensure != 'absent' { + info("we don't create the user for database: ${name}") + $grant_require = Mysql_database["$name"] + } else { + mysql_user{"${real_username}@${host}": + ensure => $ensure, + require => [ + Mysql_database["$name"] + ], } - mysql_database{"$name": - ensure => $ensure - } - case $password { - 'absent': { - info("we don't create the user for database: ${name}") - $grant_require = Mysql_database["$name"] - } - default: { - mysql_user{"${real_username}@${host}": - password_hash => $password_is_encrypted ? { - true => "$password", - default => mysql_password("$password") - }, - ensure => $ensure, - require => [ - Mysql_database["$name"] - ], - } - $grant_require = [ - Mysql_database["$name"], - Mysql_user["${real_username}@${host}"] - ] - } + $grant_require = [ + Mysql_database["$name"], + Mysql_user["${real_username}@${host}"] + ] + if $ensure == 'present' { + Mysql_user["${real_username}@${host}"]{ + password_hash => $password_is_encrypted ? { + true => "$password", + default => mysql_password("$password") + }, + } } + } + if $ensure == 'present' { mysql_grant{"${real_username}@${host}/${name}": - privileges => "$privileges", - require => $grant_require, + privileges => "$privileges", + require => $grant_require, } + } } |