summaryrefslogtreecommitdiff
path: root/manifests/default_database.pp
blob: 8f0ddcaff5dd9c55152f4a0b395c204bcc236724 (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
# 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,
    require => Exec['mysql_set_rootpw'],
  }
  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_user["${real_username}@${host}"]
    if $ensure == 'present' {
        $password_hash = $password ? {
          'trocla'  => trocla("mysql_${real_username}",'mysql'),
          default   => $password_is_encrypted ? {
            true    => $password,
            default => mysql_password($password)
          },
        }
      Mysql_user["${real_username}@${host}"]{
        password_hash => $password_hash
      }
    }
  }
  if $ensure == 'present' {
    mysql_grant{"${real_username}@${host}/${name}":
      privileges  => $privileges,
      require     => $grant_require,
    }
  }
}