]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/rabbitmq/lib/puppet/type/rabbitmq_user_permissions.rb
try if downgrading to 1.2.2 solves my problem
[dsa-puppet.git] / modules / rabbitmq / lib / puppet / type / rabbitmq_user_permissions.rb
1 Puppet::Type.newtype(:rabbitmq_user_permissions) do
2   desc 'Type for managing rabbitmq user permissions'
3
4   ensurable do
5     defaultto(:present)
6     newvalue(:present) do
7       provider.create
8     end
9     newvalue(:absent) do
10       provider.destroy
11     end
12   end
13
14   newparam(:name, :namevar => true) do
15     'combination of user@vhost to grant privileges to'
16     newvalues(/^\S+@\S+$/)
17   end
18
19   newproperty(:configure_permission) do
20     desc 'regexp representing configuration permissions'
21     validate do |value|
22       resource.validate_permissions(value)
23     end
24   end
25
26   newproperty(:read_permission) do
27     desc 'regexp representing read permissions'
28     validate do |value|
29       resource.validate_permissions(value)
30     end
31   end
32
33   newproperty(:write_permission) do
34     desc 'regexp representing write permissions'
35     validate do |value|
36       resource.validate_permissions(value)
37     end
38   end
39
40   autorequire(:rabbitmq_vhost) do
41     [self[:name].split('@')[1]]
42   end
43
44   autorequire(:rabbitmq_user) do
45     [self[:name].split('@')[0]]
46   end
47
48   # I may want to dissalow whitespace
49   def validate_permissions(value)
50     begin
51       Regexp.new(value)
52     rescue RegexpError
53       raise ArgumentError, "Invalid regexp #{value}"
54     end
55   end
56
57 end