|
1 | | -# @summary Define for conveniently creating a role, database and assigning the correctpermissions. |
| 1 | +# @summary Define for conveniently creating a role, database and assigning the correct permissions. |
2 | 2 | # |
3 | 3 | # @param user User to assign access to the database upon creation (will be created if not defined elsewhere). Mandatory. |
4 | 4 | # @param password Sets the password for the created user (if a user is created). |
|
11 | 11 | # @param template Specifies the name of the template database from which to build this database. Defaults value: template0. |
12 | 12 | # @param istemplate Specifies that the database is a template, if set to true. |
13 | 13 | # @param owner Sets a user as the owner of the database. |
| 14 | +# @param port Specifies the port where the PostgreSQL server is listening on. |
| 15 | +# @param psql_user Overrides the default PostgreSQL super user and owner of PostgreSQL related files in the file system. |
| 16 | +# @param psql_group Overrides the default PostgreSQL user group to be used for related files in the file system. |
14 | 17 | define postgresql::server::db ( |
15 | 18 | String[1] $user, |
16 | 19 | Optional[Variant[String, Sensitive[String]]] $password = undef, |
|
22 | 25 | Optional[String[1]] $tablespace = undef, |
23 | 26 | String[1] $template = 'template0', |
24 | 27 | Boolean $istemplate = false, |
25 | | - Optional[String[1]] $owner = undef |
| 28 | + Optional[String[1]] $owner = undef, |
| 29 | + Optional[Stdlib::Port] $port = undef, |
| 30 | + String[1] $psql_user = $postgresql::server::user, |
| 31 | + String[1] $psql_group = $postgresql::server::group, |
26 | 32 | ) { |
27 | 33 | if ! defined(Postgresql::Server::Database[$dbname]) { |
28 | 34 | postgresql::server::database { $dbname: |
|
33 | 39 | locale => $locale, |
34 | 40 | istemplate => $istemplate, |
35 | 41 | owner => $owner, |
| 42 | + port => $port, |
| 43 | + user => $psql_user, |
| 44 | + group => $psql_group, |
36 | 45 | } |
37 | 46 | } |
38 | 47 |
|
39 | 48 | if ! defined(Postgresql::Server::Role[$user]) { |
40 | 49 | postgresql::server::role { $user: |
41 | 50 | password_hash => $password, |
| 51 | + port => $port, |
| 52 | + psql_user => $psql_user, |
| 53 | + psql_group => $psql_group, |
42 | 54 | before => Postgresql::Server::Database[$dbname], |
43 | 55 | } |
44 | 56 | } |
45 | 57 |
|
46 | 58 | if ! defined(Postgresql::Server::Database_grant["GRANT ${user} - ${grant} - ${dbname}"]) { |
47 | 59 | postgresql::server::database_grant { "GRANT ${user} - ${grant} - ${dbname}": |
48 | | - privilege => $grant, |
49 | | - db => $dbname, |
50 | | - role => $user, |
| 60 | + privilege => $grant, |
| 61 | + db => $dbname, |
| 62 | + role => $user, |
| 63 | + port => $port, |
| 64 | + psql_user => $psql_user, |
| 65 | + psql_group => $psql_group, |
51 | 66 | } -> Postgresql_conn_validator<| db_name == $dbname |> |
52 | 67 | } |
53 | 68 |
|
|
0 commit comments