1 Puppet::Type.newtype(:rabbitmq_user_permissions) do
3 Type for managing rabbitmq user permissions
5 @example Define some rabbitmq_user_permissions
6 rabbitmq_user_permissions { 'dan@myvhost':
7 configure_permission => '.*',
8 read_permission => '.*',
9 write_permission => '.*',
23 autorequire(:service) { 'rabbitmq-server' }
25 newparam(:name, namevar: true) do
26 desc 'combination of user@vhost to grant privileges to'
27 newvalues(%r{^\S+@\S+$})
30 newproperty(:configure_permission) do
31 desc 'regexp representing configuration permissions'
33 resource.validate_permissions(value)
37 newproperty(:read_permission) do
38 desc 'regexp representing read permissions'
40 resource.validate_permissions(value)
44 newproperty(:write_permission) do
45 desc 'regexp representing write permissions'
47 resource.validate_permissions(value)
51 autorequire(:rabbitmq_vhost) do
52 [self[:name].split('@')[1]]
55 autorequire(:rabbitmq_user) do
56 [self[:name].split('@')[0]]
59 def validate_permissions(value)
62 raise ArgumentError, "Invalid regexp #{value}"