Skip to content

Commit c6fa4e2

Browse files
fix elasticsearch/user: allow ensure=absent without password
1 parent af30ef0 commit c6fa4e2

File tree

2 files changed

+29
-16
lines changed

2 files changed

+29
-16
lines changed

REFERENCE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2179,13 +2179,15 @@ Default value: `'present'`
21792179

21802180
##### <a name="-elasticsearch--user--password"></a>`password`
21812181

2182-
Data type: `String`
2182+
Data type: `Optional[String]`
21832183

21842184
Password for the given user. A plaintext password will be managed
21852185
with the esusers utility and requires a refresh to update, while
21862186
a hashed password from the esusers utility will be managed manually
21872187
in the uses file.
21882188

2189+
Default value: `undef`
2190+
21892191
##### <a name="-elasticsearch--user--roles"></a>`roles`
21902192

21912193
Data type: `Array`

manifests/user.pp

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,39 @@
2323
# @author Gavin Williams <[email protected]>
2424
#
2525
define elasticsearch::user (
26-
String $password,
27-
Enum['absent', 'present'] $ensure = 'present',
28-
Array $roles = [],
26+
Optional[String] $password = undef,
27+
Enum['absent', 'present'] $ensure = 'present',
28+
Array $roles = [],
2929
) {
30-
if $password =~ /^\$2a\$/ {
31-
elasticsearch_user_file { $name:
32-
ensure => $ensure,
33-
configdir => $elasticsearch::configdir,
34-
hashed_password => $password,
35-
before => Elasticsearch_user_roles[$name],
36-
}
37-
} else {
30+
if $ensure == 'absent' {
3831
elasticsearch_user { $name:
39-
ensure => $ensure,
32+
ensure => 'absent',
4033
configdir => $elasticsearch::configdir,
41-
password => $password,
42-
before => Elasticsearch_user_roles[$name],
4334
}
4435
}
45-
36+
else {
37+
if $password == undef {
38+
fail('elasticsearch::user: password must be provided when ensure => present')
39+
}
40+
if $password =~ /^\$2a\$/ {
41+
elasticsearch_user_file { $name:
42+
ensure => present,
43+
configdir => $elasticsearch::configdir,
44+
hashed_password => $password,
45+
before => Elasticsearch_user_roles[$name],
46+
}
47+
} else {
48+
elasticsearch_user { $name:
49+
ensure => present,
50+
configdir => $elasticsearch::configdir,
51+
password => $password,
52+
before => Elasticsearch_user_roles[$name],
53+
}
54+
}
55+
}
4656
elasticsearch_user_roles { $name:
4757
ensure => $ensure,
4858
roles => $roles,
4959
}
5060
}
61+

0 commit comments

Comments
 (0)