]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/rabbitmq/lib/puppet/type/rabbitmq_user_permissions.rb
move to puppetlabs rabbitmq module
[dsa-puppet.git] / 3rdparty / 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   autorequire(:service) { 'rabbitmq-server' }
15
16   newparam(:name, :namevar => true) do
17     desc 'combination of user@vhost to grant privileges to'
18     newvalues(/^\S+@\S+$/)
19   end
20
21   newproperty(:configure_permission) do
22     desc 'regexp representing configuration permissions'
23     validate do |value|
24       resource.validate_permissions(value)
25     end
26   end
27
28   newproperty(:read_permission) do
29     desc 'regexp representing read permissions'
30     validate do |value|
31       resource.validate_permissions(value)
32     end
33   end
34
35   newproperty(:write_permission) do
36     desc 'regexp representing write permissions'
37     validate do |value|
38       resource.validate_permissions(value)
39     end
40   end
41
42   autorequire(:rabbitmq_vhost) do
43     [self[:name].split('@')[1]]
44   end
45
46   autorequire(:rabbitmq_user) do
47     [self[:name].split('@')[0]]
48   end
49
50   # I may want to dissalow whitespace
51   def validate_permissions(value)
52     begin
53       Regexp.new(value)
54     rescue RegexpError
55       raise ArgumentError, "Invalid regexp #{value}"
56     end
57   end
58
59 end