2 File.expand_path('../..', File.dirname(__FILE__)).tap { |dir| $LOAD_PATH.unshift(dir) unless $LOAD_PATH.include?(dir) }
3 File.expand_path('../../../../openstacklib/lib', File.dirname(__FILE__)).tap { |dir| $LOAD_PATH.unshift(dir) unless $LOAD_PATH.include?(dir) }
5 Puppet::Type.newtype(:keystone_user) do
7 desc 'Type for managing keystone users.'
11 newparam(:name, :namevar => true) do
15 newparam(:ignore_default_tenant) do
16 newvalues(/(t|T)rue/, /(f|F)alse/, true, false)
19 value.to_s.downcase.to_sym
23 newproperty(:enabled) do
24 newvalues(/(t|T)rue/, /(f|F)alse/, true, false)
27 value.to_s.downcase.to_sym
31 newproperty(:password) do
33 def change_to_s(currentvalue, newvalue)
34 if currentvalue == :absent
35 return "created password"
37 return "changed password"
41 def is_to_s( currentvalue )
42 return '[old password redacted]'
45 def should_to_s( newvalue )
46 return '[new password redacted]'
50 newproperty(:tenant) do
54 newproperty(:email) do
55 newvalues(/^(\S+@\S+)|$/)
60 raise(Puppet::Error, 'This is a read only property')
64 newparam(:replace_password) do
65 newvalues(/(t|T)rue/, /(f|F)alse/, true, false)
68 value.to_s.downcase.to_sym
72 autorequire(:keystone_tenant) do
76 # we should not do anything until the keystone service is started
77 autorequire(:service) do