]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/lib/puppet/type/keystone_user.rb
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / keystone / lib / puppet / type / keystone_user.rb
1 # LP#1408531
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) }
4
5 Puppet::Type.newtype(:keystone_user) do
6
7   desc 'Type for managing keystone users.'
8
9   ensurable
10
11   newparam(:name, :namevar => true) do
12     newvalues(/\S+/)
13   end
14
15   newparam(:ignore_default_tenant) do
16     newvalues(/(t|T)rue/, /(f|F)alse/, true, false)
17     defaultto(false)
18     munge do |value|
19       value.to_s.downcase.to_sym
20     end
21   end
22
23   newproperty(:enabled) do
24     newvalues(/(t|T)rue/, /(f|F)alse/, true, false)
25     defaultto(true)
26     munge do |value|
27       value.to_s.downcase.to_sym
28     end
29   end
30
31   newproperty(:password) do
32     newvalues(/\S+/)
33     def change_to_s(currentvalue, newvalue)
34       if currentvalue == :absent
35         return "created password"
36       else
37         return "changed password"
38       end
39     end
40
41     def is_to_s( currentvalue )
42       return '[old password redacted]'
43     end
44
45     def should_to_s( newvalue )
46       return '[new password redacted]'
47     end
48   end
49
50   newproperty(:tenant) do
51     newvalues(/\S+/)
52   end
53
54   newproperty(:email) do
55     newvalues(/^(\S+@\S+)|$/)
56   end
57
58   newproperty(:id) do
59     validate do |v|
60       raise(Puppet::Error, 'This is a read only property')
61     end
62   end
63
64   newparam(:replace_password) do
65     newvalues(/(t|T)rue/, /(f|F)alse/, true, false)
66     defaultto(true)
67     munge do |value|
68       value.to_s.downcase.to_sym
69     end
70   end
71
72   autorequire(:keystone_tenant) do
73     self[:tenant]
74   end
75
76   # we should not do anything until the keystone service is started
77   autorequire(:service) do
78     ['keystone']
79   end
80 end