Skip to content

Commit 4641887

Browse files
authored
Merge pull request voxpupuli#429 from cirrax/fix_ownerships
Add some additional parameters for ownerships
2 parents 95a834d + 76ea8ce commit 4641887

File tree

4 files changed

+128
-5
lines changed

4 files changed

+128
-5
lines changed

REFERENCE.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,11 @@ The following parameters are available in the `redis` class:
200200
* [`unixsocketperm`](#-redis--unixsocketperm)
201201
* [`workdir`](#-redis--workdir)
202202
* [`workdir_mode`](#-redis--workdir_mode)
203+
* [`workdir_group`](#-redis--workdir_group)
204+
* [`workdir_owner`](#-redis--workdir_owner)
205+
* [`debdefault_group`](#-redis--debdefault_group)
206+
* [`debdefault_file_mode`](#-redis--debdefault_file_mode)
207+
* [`debdefault_owner`](#-redis--debdefault_owner)
203208
* [`zset_max_ziplist_entries`](#-redis--zset_max_ziplist_entries)
204209
* [`zset_max_ziplist_value`](#-redis--zset_max_ziplist_value)
205210
* [`cluster_enabled`](#-redis--cluster_enabled)
@@ -1161,6 +1166,49 @@ Adjust mode for data directory.
11611166

11621167
Default value: `'0750'`
11631168

1169+
##### <a name="-redis--workdir_group"></a>`workdir_group`
1170+
1171+
Data type: `Optional[String[1]]`
1172+
1173+
Adjust filesystem group for $workdir.
1174+
1175+
Default value: `undef`
1176+
1177+
##### <a name="-redis--workdir_owner"></a>`workdir_owner`
1178+
1179+
Data type: `Optional[String[1]]`
1180+
1181+
Adjust filesystem owner for $workdir.
1182+
1183+
Default value: `undef`
1184+
1185+
##### <a name="-redis--debdefault_group"></a>`debdefault_group`
1186+
1187+
Data type: `Optional[String[1]]`
1188+
1189+
group of /etc/defaults/redis on Debian systems
1190+
if undef, $redis::config_group is taken
1191+
1192+
Default value: `undef`
1193+
1194+
##### <a name="-redis--debdefault_file_mode"></a>`debdefault_file_mode`
1195+
1196+
Data type: `Optional[Stdlib::Filemode]`
1197+
1198+
filemode of /etc/defaults/redis on Debian systems
1199+
if undef, $redis::config_file_mode is taken
1200+
1201+
Default value: `undef`
1202+
1203+
##### <a name="-redis--debdefault_owner"></a>`debdefault_owner`
1204+
1205+
Data type: `Optional[String[1]]`
1206+
1207+
owner of /etc/defaults/redis on Debian systems
1208+
if undef, $redis::config_owner is taken
1209+
1210+
Default value: `undef`
1211+
11641212
##### <a name="-redis--zset_max_ziplist_entries"></a>`zset_max_ziplist_entries`
11651213

11661214
Data type: `Integer[0]`

manifests/config.pp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121

2222
file { $redis::workdir:
2323
ensure => directory,
24-
group => $redis::service_group,
24+
group => pick($redis::workdir_group, $redis::service_group),
2525
mode => $redis::workdir_mode,
26-
owner => $redis::service_user,
26+
owner => pick($redis::workdir_owner, $redis::service_user),
2727
}
2828

2929
if $redis::default_install {
@@ -48,9 +48,9 @@
4848
'Debian': {
4949
file { '/etc/default/redis-server':
5050
ensure => file,
51-
group => $redis::config_group,
52-
mode => $redis::config_file_mode,
53-
owner => $redis::config_owner,
51+
group => pick($redis::debdefault_group, $redis::config_group),
52+
mode => pick($redis::debdefault_file_mode, $redis::config_file_mode),
53+
owner => pick($redis::debdefault_owner, $redis::config_owner),
5454
}
5555
}
5656

manifests/init.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,19 @@
263263
# above using the 'dbfilename' configuration directive.
264264
# @param workdir_mode
265265
# Adjust mode for data directory.
266+
# @param workdir_group
267+
# Adjust filesystem group for $workdir.
268+
# @param workdir_owner
269+
# Adjust filesystem owner for $workdir.
270+
# @param debdefault_group
271+
# group of /etc/defaults/redis on Debian systems
272+
# if undef, $redis::config_group is taken
273+
# @param debdefault_file_mode
274+
# filemode of /etc/defaults/redis on Debian systems
275+
# if undef, $redis::config_file_mode is taken
276+
# @param debdefault_owner
277+
# owner of /etc/defaults/redis on Debian systems
278+
# if undef, $redis::config_owner is taken
266279
# @param zset_max_ziplist_entries
267280
# Set max entries for sorted sets.
268281
# @param zset_max_ziplist_value
@@ -455,6 +468,11 @@
455468
Boolean $ulimit_managed = true,
456469
Stdlib::Absolutepath $workdir = $redis::params::workdir,
457470
Stdlib::Filemode $workdir_mode = '0750',
471+
Optional[String[1]] $workdir_group = undef,
472+
Optional[String[1]] $workdir_owner = undef,
473+
Optional[String[1]] $debdefault_group = undef,
474+
Optional[Stdlib::Filemode] $debdefault_file_mode = undef,
475+
Optional[String[1]] $debdefault_owner = undef,
458476
Integer[0] $zset_max_ziplist_entries = 128,
459477
Integer[0] $zset_max_ziplist_value = 64,
460478
Boolean $cluster_enabled = false,

spec/classes/redis_spec.rb

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,63 @@ class { 'redis':
17151715
it { is_expected.to contain_systemd__unit_file("#{service_name}.service").with('content' => %r{^TimeoutStartSec=600$}) }
17161716
it { is_expected.to contain_systemd__unit_file("#{service_name}.service").with('content' => %r{^TimeoutStopSec=300$}) }
17171717
end
1718+
1719+
describe 'with non default ownership' do
1720+
let :params do
1721+
{
1722+
workdir: '/tmp/rediswork',
1723+
workdir_group: 'wdirgroup',
1724+
workdir_owner: 'wdirowner',
1725+
config_group: 'cfggroup',
1726+
}
1727+
end
1728+
1729+
it {
1730+
is_expected.to contain_file('/tmp/rediswork').with(
1731+
'ensure' => 'directory',
1732+
'owner' => 'wdirowner',
1733+
'group' => 'wdirgroup',
1734+
'mode' => '0750'
1735+
)
1736+
}
1737+
1738+
if facts[:os]['family'] == 'Debian'
1739+
it {
1740+
is_expected.to contain_file('/etc/default/redis-server').
1741+
with(
1742+
'ensure' => 'file',
1743+
'owner' => 'redis',
1744+
'group' => 'cfggroup',
1745+
'mode' => '0640'
1746+
)
1747+
}
1748+
end
1749+
end
1750+
1751+
describe 'overwrite debian directory config' do
1752+
let :params do
1753+
{
1754+
config_owner: 'redis',
1755+
config_group: 'cfggroup',
1756+
config_file_mode: '0333',
1757+
debdefault_group: 'dd_group',
1758+
debdefault_owner: 'dd_owner',
1759+
debdefault_file_mode: '0242',
1760+
}
1761+
end
1762+
1763+
if facts[:os]['family'] == 'Debian'
1764+
it {
1765+
is_expected.to contain_file('/etc/default/redis-server').
1766+
with(
1767+
'ensure' => 'file',
1768+
'owner' => 'dd_owner',
1769+
'group' => 'dd_group',
1770+
'mode' => '0242'
1771+
)
1772+
}
1773+
end
1774+
end
17181775
end
17191776
end
17201777
end

0 commit comments

Comments
 (0)