Skip to content

Commit 6232171

Browse files
committed
server::database_grant: Always set default user/group/port
This enables us to make it configureable. When a user doesn't specify it, the defaults will be passed, without breaking existing behaviour.
1 parent 26b2555 commit 6232171

File tree

3 files changed

+55
-14
lines changed

3 files changed

+55
-14
lines changed

REFERENCE.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1543,11 +1543,11 @@ Default value: `undef`
15431543

15441544
##### <a name="-postgresql--server--config_entry--path"></a>`path`
15451545

1546-
Data type: `Variant[Boolean, String[1]]`
1546+
Data type: `Stdlib::Absolutepath`
15471547

15481548
Path for postgresql.conf
15491549

1550-
Default value: `false`
1550+
Default value: `$postgresql::server::postgresql_conf_path`
15511551

15521552
### <a name="postgresql--server--database"></a>`postgresql::server::database`
15531553

@@ -1653,7 +1653,9 @@ The following parameters are available in the `postgresql::server::database_gran
16531653
* [`ensure`](#-postgresql--server--database_grant--ensure)
16541654
* [`psql_db`](#-postgresql--server--database_grant--psql_db)
16551655
* [`psql_user`](#-postgresql--server--database_grant--psql_user)
1656+
* [`psql_group`](#-postgresql--server--database_grant--psql_group)
16561657
* [`connect_settings`](#-postgresql--server--database_grant--connect_settings)
1658+
* [`port`](#-postgresql--server--database_grant--port)
16571659

16581660
##### <a name="-postgresql--server--database_grant--privilege"></a>`privilege`
16591661

@@ -1695,7 +1697,15 @@ Data type: `Optional[String[1]]`
16951697

16961698
Specifies the OS user for running psql. Default value: The default user for the module, usually 'postgres'.
16971699

1698-
Default value: `undef`
1700+
Default value: `$postgresql::server::user`
1701+
1702+
##### <a name="-postgresql--server--database_grant--psql_group"></a>`psql_group`
1703+
1704+
Data type: `Optional[String[1]]`
1705+
1706+
Overrides the default postgres user group to be used for related files in the file system.
1707+
1708+
Default value: `$postgresql::params::group`
16991709

17001710
##### <a name="-postgresql--server--database_grant--connect_settings"></a>`connect_settings`
17011711

@@ -1705,6 +1715,14 @@ Specifies a hash of environment variables used when connecting to a remote serve
17051715

17061716
Default value: `undef`
17071717

1718+
##### <a name="-postgresql--server--database_grant--port"></a>`port`
1719+
1720+
Data type: `Stdlib::Port`
1721+
1722+
Port to use when connecting.
1723+
1724+
Default value: `$postgresql::server::port`
1725+
17081726
### <a name="postgresql--server--db"></a>`postgresql::server::db`
17091727

17101728
Define for conveniently creating a role, database and assigning the correctpermissions.

manifests/server/database_grant.pp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@
66
# @param ensure Specifies whether to grant or revoke the privilege. Revoke or 'absent' works only in PostgreSQL version 9.1.24 or later.
77
# @param psql_db Defines the database to execute the grant against. This should not ordinarily be changed from the default
88
# @param psql_user Specifies the OS user for running psql. Default value: The default user for the module, usually 'postgres'.
9+
# @param psql_group Overrides the default postgres user group to be used for related files in the file system.
910
# @param connect_settings Specifies a hash of environment variables used when connecting to a remote server.
11+
# @param port Port to use when connecting.
1012
define postgresql::server::database_grant (
1113
Enum['ALL', 'CREATE', 'CONNECT', 'TEMPORARY', 'TEMP', 'all', 'create', 'connect', 'temporary', 'temp'] $privilege,
1214
String[1] $db,
1315
String[1] $role,
1416
Optional[Enum['present', 'absent']] $ensure = undef,
1517
Optional[String[1]] $psql_db = undef,
16-
Optional[String[1]] $psql_user = undef,
18+
String[1] $psql_user = $postgresql::server::user,
19+
String[1] $psql_group = $postgresql::server::group,
1720
Optional[Hash] $connect_settings = undef,
21+
Stdlib::Port $port = $postgresql::server::port,
1822
) {
1923
postgresql::server::grant { "database:${name}":
2024
ensure => $ensure,
@@ -25,6 +29,8 @@
2529
object_name => $db,
2630
psql_db => $psql_db,
2731
psql_user => $psql_user,
32+
group => $psql_group,
33+
port => $port,
2834
connect_settings => $connect_settings,
2935
}
3036
}

spec/defines/server/database_grant_spec.rb

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,35 @@
99
'test'
1010
end
1111

12-
let :params do
13-
{
14-
privilege: 'ALL',
15-
db: 'test',
16-
role: 'test'
17-
}
18-
end
19-
2012
let :pre_condition do
2113
"class {'postgresql::server':}"
2214
end
2315

24-
it { is_expected.to contain_postgresql__server__database_grant('test') }
25-
it { is_expected.to contain_postgresql__server__grant('database:test') }
16+
context 'with minimal settings' do
17+
let :params do
18+
{
19+
privilege: 'ALL',
20+
db: 'test',
21+
role: 'test'
22+
}
23+
end
24+
it { is_expected.to compile.with_all_deps }
25+
it { is_expected.to contain_postgresql__server__database_grant('test') }
26+
it { is_expected.to contain_postgresql__server__grant('database:test').with_psql_user('postgres').with_port(5432).with_group('postgres') }
27+
end
28+
29+
context 'with different user/group/port' do
30+
let :params do
31+
{
32+
privilege: 'ALL',
33+
db: 'test',
34+
role: 'test',
35+
psql_user: 'foo',
36+
psql_group: 'bar',
37+
port: 1337
38+
}
39+
end
40+
it { is_expected.to compile.with_all_deps }
41+
it { is_expected.to contain_postgresql__server__grant('database:test').with_psql_user('foo').with_port(1337).with_group('bar') }
42+
end
2643
end

0 commit comments

Comments
 (0)