summaryrefslogtreecommitdiff
path: root/manifests/default_database.pp
blob: cfa1132000ca7cb767bb6929c9316968f7572a07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# create default database
define mysql::default_database(
  $username = 'absent',
  $password = 'absent',
  $password_is_encrypted = true,
  $privileges = 'all',
  $host = '127.0.0.1',
  $ensure = 'present'
) {
  $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]
      ],
    }
    $grant_require = [
      Mysql_database[$name],
      Mysql_user["${real_username}@${host}"]
    ]
    if $ensure == 'present' {
      Mysql_user["${real_username}@${host}"]{
        password_hash => $password ? {
        'trocla' => trocla("mysql_${real_username}",'mysql'),
        default => $password_is_encrypted ? {
            true => $password,
            default => mysql_password("$password")
          },
        },
      }
    }
  }
  if $ensure == 'present' {
    mysql_grant{"${real_username}@${host}/${name}":
      privileges => $privileges,
      require => $grant_require,
    }
  }
}