]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/rabbitmq/lib/puppet/type/rabbitmq_exchange.rb
move to puppetlabs rabbitmq module
[dsa-puppet.git] / 3rdparty / modules / rabbitmq / lib / puppet / type / rabbitmq_exchange.rb
1 Puppet::Type.newtype(:rabbitmq_exchange) do
2   desc 'Native type for managing rabbitmq exchanges'
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     desc 'Name of exchange'
16     newvalues(/^\S*@\S+$/)
17   end
18
19   newparam(:type) do
20     desc 'Exchange type to be set *on creation*'
21     newvalues(/^\S+$/)
22   end
23
24   newparam(:durable) do
25     desc 'Exchange durability to be set *on creation*'
26     newvalues(/^\S+$/)
27   end
28
29   newparam(:auto_delete) do
30     desc 'Exchange auto delete option to be set *on creation*'
31     newvalues(/^\S+$/)
32   end
33
34   newparam(:internal) do
35     desc 'Exchange internal option to be set *on creation*'
36     newvalues(/^\S+$/)
37   end
38
39   newparam(:arguments) do
40     desc 'Exchange arguments example: {"hash-header": "message-distribution-hash"}'
41     defaultto {}
42   end
43
44   newparam(:user) do
45     desc 'The user to use to connect to rabbitmq'
46     defaultto('guest')
47     newvalues(/^\S+$/)
48   end
49
50   newparam(:password) do
51     desc 'The password to use to connect to rabbitmq'
52     defaultto('guest')
53     newvalues(/\S+/)
54   end
55
56   validate do
57     if self[:ensure] == :present and self[:type].nil?
58       raise ArgumentError, "must set type when creating exchange for #{self[:name]} whose type is #{self[:type]}"
59     end
60   end
61
62   autorequire(:rabbitmq_vhost) do
63     [self[:name].split('@')[1]]
64   end
65
66   autorequire(:rabbitmq_user) do
67     [self[:user]]
68   end
69
70   autorequire(:rabbitmq_user_permissions) do
71     ["#{self[:user]}@#{self[:name].split('@')[1]}"]
72   end
73
74 end