1 Puppet::Type.newtype(:rabbitmq_queue) do
2 desc 'Native type for managing rabbitmq queue'
14 newparam(:name, :namevar => true) do
16 newvalues(/^\S*@\S+$/)
20 desc 'Queue is durable'
21 newvalues(/true|false/)
25 newparam(:auto_delete) do
26 desc 'Queue will be auto deleted'
27 newvalues(/true|false/)
31 newparam(:arguments) do
32 desc 'Queue arguments example: {x-message-ttl => 60, x-expires => 10}'
35 resource.validate_argument(value)
40 desc 'The user to use to connect to rabbitmq'
45 newparam(:password) do
46 desc 'The password to use to connect to rabbitmq'
51 autorequire(:rabbitmq_vhost) do
52 [self[:name].split('@')[1]]
55 autorequire(:rabbitmq_user) do
59 autorequire(:rabbitmq_user_permissions) do
60 ["#{self[:user]}@#{self[:name].split('@')[1]}"]
63 def validate_argument(argument)
64 unless [Hash].include?(argument.class)
65 raise ArgumentError, "Invalid argument"