|
16 | 16 | # [*grant*] - array of privileges to grant user.
|
17 | 17 | # [*enforce_sql*] - whether to enforce or conditionally run sql on creation.
|
18 | 18 | # [*sql*] - sql statement to run.
|
| 19 | +# [*ensure*] - specifies if a database is present or absent. |
19 | 20 | #
|
20 | 21 | # Actions:
|
21 | 22 | #
|
|
39 | 40 | $host = 'localhost',
|
40 | 41 | $grant = 'all',
|
41 | 42 | $sql = '',
|
42 |
| - $enforce_sql = false |
| 43 | + $enforce_sql = false, |
| 44 | + $ensure = 'present' |
43 | 45 | ) {
|
44 | 46 |
|
| 47 | + validate_re($ensure, [ '^present$', '^absent$' ], |
| 48 | + "${ensure} is not supported for ensure. Allowed values are 'present' and 'absent'.") |
| 49 | + |
45 | 50 | database { $name:
|
46 |
| - ensure => present, |
| 51 | + ensure => $ensure, |
47 | 52 | charset => $charset,
|
48 | 53 | provider => 'mysql',
|
49 | 54 | require => Class['mysql::server'],
|
50 | 55 | }
|
51 | 56 |
|
52 | 57 | database_user { "${user}@${host}":
|
53 |
| - ensure => present, |
| 58 | + ensure => $ensure, |
54 | 59 | password_hash => mysql_password($password),
|
55 | 60 | provider => 'mysql',
|
56 | 61 | require => Database[$name],
|
57 | 62 | }
|
58 | 63 |
|
59 |
| - database_grant { "${user}@${host}/${name}": |
60 |
| - privileges => $grant, |
61 |
| - provider => 'mysql', |
62 |
| - require => Database_user["${user}@${host}"], |
63 |
| - } |
| 64 | + if $ensure == 'present' { |
| 65 | + database_grant { "${user}@${host}/${name}": |
| 66 | + privileges => $grant, |
| 67 | + provider => 'mysql', |
| 68 | + require => Database_user["${user}@${host}"], |
| 69 | + } |
64 | 70 |
|
65 |
| - $refresh = ! $enforce_sql |
| 71 | + $refresh = ! $enforce_sql |
66 | 72 |
|
67 |
| - if $sql { |
68 |
| - exec{ "${name}-import": |
69 |
| - command => "/usr/bin/mysql ${name} < ${sql}", |
70 |
| - logoutput => true, |
71 |
| - refreshonly => $refresh, |
72 |
| - require => Database_grant["${user}@${host}/${name}"], |
73 |
| - subscribe => Database[$name], |
| 73 | + if $sql { |
| 74 | + exec{ "${name}-import": |
| 75 | + command => "/usr/bin/mysql ${name} < ${sql}", |
| 76 | + logoutput => true, |
| 77 | + refreshonly => $refresh, |
| 78 | + require => Database_grant["${user}@${host}/${name}"], |
| 79 | + subscribe => Database[$name], |
| 80 | + } |
74 | 81 | }
|
75 | 82 | }
|
76 |
| - |
77 | 83 | }
|
0 commit comments