1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
# frozen_string_literal: true
Puppet::Type.newtype(:elasticsearch_user) do
desc 'Type to model Elasticsearch users.'
feature :manages_plaintext_passwords,
'The provider can control the password in plaintext form.'
ensurable
newparam(:name, namevar: true) do
desc 'User name.'
end
newparam(:configdir) do
desc 'Path to the elasticsearch configuration directory (ES_PATH_CONF).'
validate do |value|
raise Puppet::Error, 'path expected' if value.nil?
end
end
newparam(
:password,
required_features: :manages_plaintext_passwords
) do
desc 'Plaintext password for user.'
validate do |value|
raise ArgumentError, 'Password must be at least 6 characters long' if value.length < 6
end
def is_to_s(_currentvalue)
'[old password hash redacted]'
end
def should_to_s(_newvalue)
'[new password hash redacted]'
end
end
def refresh
if @parameters[:ensure]
provider.passwd
else
debug 'skipping password set'
end
end
end
|