]> git.donarmstrong.com Git - dsa-puppet.git/blob - modules/rabbitmq/lib/puppet/provider/rabbitmq_policy/rabbitmqctl.rb
try if downgrading to 1.2.2 solves my problem
[dsa-puppet.git] / modules / rabbitmq / lib / puppet / provider / rabbitmq_policy / rabbitmqctl.rb
1 require 'puppet'
2 Puppet::Type.type(:rabbitmq_policy).provide(:rabbitmqctl) do
3
4   commands :rabbitmqctl => 'rabbitmqctl'
5   defaultfor :feature => :posix
6
7   def should_vhost
8     if @should_vhost
9       @should_vhost
10     else
11       @should_vhost = resource[:vhost]
12     end
13   end
14
15   def self.instances
16     rabbitmqctl('list_policies', '-p', should_vhost).split(/\n/)[1..-2].detect do |line|
17       if line =~ /^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+.*$/
18         new(:name => $2, :vhost => $1, :match => $3, :policy => $4)
19       else
20         raise Puppet::Error, "Cannot parse invalid user line: #{line}"
21       end
22     end
23   end
24
25   def create
26     rabbitmqctl('set_policy', '-p', should_vhost, resource[:name], resource[:match], resource[:policy])
27   end
28
29   def destroy
30     rabbitmqctl('clear_policy', '-p', should_vhost, resource[:name])
31   end
32
33   def exists?
34     out = rabbitmqctl('list_policies', '-p', should_vhost).split(/\n/)[1..-2].detect do |line|
35       line.match(/^\S+\s+#{resource[:name]}\s+\S+.*$/)
36     end
37   end
38
39 end