+++ /dev/null
-require 'puppet'
-Puppet::Type.type(:rabbitmq_policy).provide(:rabbitmqctl) do
-
- commands :rabbitmqctl => 'rabbitmqctl'
- defaultfor :feature => :posix
-
- def should_vhost
- if @should_vhost
- @should_vhost
- else
- @should_vhost = resource[:vhost]
- end
- end
-
- def self.instances
- rabbitmqctl('list_policies', '-p', should_vhost).split(/\n/)[1..-2].detect do |line|
- if line =~ /^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+.*$/
- new(:name => $2, :vhost => $1, :match => $3, :policy => $4)
- else
- raise Puppet::Error, "Cannot parse invalid user line: #{line}"
- end
- end
- end
-
- def create
- rabbitmqctl('set_policy', '-p', should_vhost, resource[:name], resource[:match], resource[:policy])
- end
-
- def destroy
- rabbitmqctl('clear_policy', '-p', should_vhost, resource[:name])
- end
-
- def exists?
- out = rabbitmqctl('list_policies', '-p', should_vhost).split(/\n/)[1..-2].detect do |line|
- line.match(/^\S+\s+#{resource[:name]}\s+\S+.*$/)
- end
- end
-
-end