Revert "Update 3rdparty rabbitmq module"
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / lib / puppet / provider / rabbitmq_queue / rabbitmqadmin.rb
index fb930b3..eeffa95 100644 (file)
@@ -1,18 +1,19 @@
 require 'json'
 require 'puppet'
 Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do
+
   if Puppet::PUPPETVERSION.to_f < 3
-    commands rabbitmqctl: 'rabbitmqctl'
-    commands rabbitmqadmin: '/usr/local/bin/rabbitmqadmin'
+    commands :rabbitmqctl   => 'rabbitmqctl'
+    commands :rabbitmqadmin => '/usr/local/bin/rabbitmqadmin'
   else
     has_command(:rabbitmqctl, 'rabbitmqctl') do
-      environment HOME: '/tmp'
+      environment :HOME => "/tmp"
     end
     has_command(:rabbitmqadmin, '/usr/local/bin/rabbitmqadmin') do
-      environment HOME: '/tmp'
+      environment :HOME => "/tmp"
     end
   end
-  confine feature: :posix
+  defaultfor :feature => :posix
 
   def should_vhost
     if @should_vhost
@@ -23,32 +24,37 @@ Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do
   end
 
   def self.all_vhosts
-    rabbitmqctl('list_vhosts', '-q').split(%r{\n})
+    vhosts = []
+    rabbitmqctl('list_vhosts', '-q').split(/\n/).collect do |vhost|
+        vhosts.push(vhost)
+    end
+    vhosts
   end
 
   def self.all_queues(vhost)
-    rabbitmqctl('list_queues', '-q', '-p', vhost, 'name', 'durable', 'auto_delete', 'arguments').split(%r{\n})
+    rabbitmqctl('list_queues', '-q', '-p', vhost, 'name', 'durable', 'auto_delete', 'arguments').split(/\n/)
   end
 
   def self.instances
     resources = []
     all_vhosts.each do |vhost|
-      all_queues(vhost).map do |line|
-        next if line =~ %r{^federation:}
-        name, durable, auto_delete, arguments = line.split("\t")
+      all_queues(vhost).collect do |line|
+        name, durable, auto_delete, arguments = line.split()
         # Convert output of arguments from the rabbitmqctl command to a json string.
         if !arguments.nil?
-          arguments = arguments.gsub(%r{^\[(.*)\]$}, '').gsub(%r{\{("(?:.|\\")*?"),}, '{\1:').gsub(%r{\},\{}, ',')
-          arguments = '{}' if arguments == ''
+          arguments = arguments.gsub(/^\[(.*)\]$/, "").gsub(/\{("(?:.|\\")*?"),/, '{\1:').gsub(/\},\{/, ",")
+          if arguments == ""
+            arguments = '{}'
+          end
         else
           arguments = '{}'
         end
         queue = {
-          durable: durable,
-          auto_delete: auto_delete,
-          arguments: JSON.parse(arguments),
-          ensure: :present,
-          name: format('%s@%s', name, vhost)
+          :durable     => durable,
+          :auto_delete => auto_delete,
+          :arguments   => JSON.parse(arguments),
+          :ensure      => :present,
+          :name        => "%s@%s" % [name, vhost],
         }
         resources << new(queue) if queue[:name]
       end
@@ -59,7 +65,7 @@ Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do
   def self.prefetch(resources)
     packages = instances
     resources.keys.each do |name|
-      if (provider = packages.find { |pkg| pkg.name == name })
+      if provider = packages.find{ |pkg| pkg.name == name }
         resources[name].provider = provider
       end
     end
@@ -73,18 +79,21 @@ Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do
     vhost_opt = should_vhost ? "--vhost=#{should_vhost}" : ''
     name = resource[:name].rpartition('@').first
     arguments = resource[:arguments]
-    arguments = {} if arguments.nil?
+    if arguments.nil?
+      arguments = {}
+    end
     rabbitmqadmin('declare',
-                  'queue',
-                  vhost_opt,
-                  "--user=#{resource[:user]}",
-                  "--password=#{resource[:password]}",
-                  '-c',
-                  '/etc/rabbitmq/rabbitmqadmin.conf',
-                  "name=#{name}",
-                  "durable=#{resource[:durable]}",
-                  "auto_delete=#{resource[:auto_delete]}",
-                  "arguments=#{arguments.to_json}")
+      'queue',
+      vhost_opt,
+      "--user=#{resource[:user]}",
+      "--password=#{resource[:password]}",
+      '-c',
+      '/etc/rabbitmq/rabbitmqadmin.conf',
+      "name=#{name}",
+      "durable=#{resource[:durable]}",
+      "auto_delete=#{resource[:auto_delete]}",
+      "arguments=#{arguments.to_json}"
+    )
     @property_hash[:ensure] = :present
   end
 
@@ -94,4 +103,5 @@ Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do
     rabbitmqadmin('delete', 'queue', vhost_opt, "--user=#{resource[:user]}", "--password=#{resource[:password]}", '-c', '/etc/rabbitmq/rabbitmqadmin.conf', "name=#{name}")
     @property_hash[:ensure] = :absent
   end
+
 end