1 Puppet::Type.newtype(:rabbitmq_queue) do
3 Native type for managing rabbitmq queue
5 @example Create a rabbitmq_queue
6 rabbitmq_queue { 'myqueue@myvhost':
14 x-dead-letter-exchange => 'other'
29 newparam(:name, namevar: true) do
31 newvalues(%r{^\S*@\S+$})
35 desc 'Queue is durable'
36 newvalues(%r{true|false})
40 newparam(:auto_delete) do
41 desc 'Queue will be auto deleted'
42 newvalues(%r{true|false})
46 newparam(:arguments) do
47 desc 'Queue arguments example: {x-message-ttl => 60, x-expires => 10}'
50 resource.validate_argument(value)
55 desc 'The user to use to connect to rabbitmq'
60 newparam(:password) do
61 desc 'The password to use to connect to rabbitmq'
66 autorequire(:rabbitmq_vhost) do
67 [self[:name].split('@')[1]]
70 autorequire(:rabbitmq_user) do
74 autorequire(:rabbitmq_user_permissions) do
75 ["#{self[:user]}@#{self[:name].split('@')[1]}"]
78 def validate_argument(argument)
79 raise ArgumentError, 'Invalid argument' unless [Hash].include?(argument.class)