X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Frabbitmq%2Flib%2Fpuppet%2Fprovider%2Frabbitmq_queue%2Frabbitmqadmin.rb;fp=3rdparty%2Fmodules%2Frabbitmq%2Flib%2Fpuppet%2Fprovider%2Frabbitmq_queue%2Frabbitmqadmin.rb;h=fb930b36ba747c6978c2bcb1f74782b8f33a80cf;hb=94a8783f522bbf2996cb8a59b977dea583e8b0c7;hp=eeffa953c4b97844fe093ef5eda8aae6b7870760;hpb=e107504bce7d9b21cc301124fc7c39fdb0762374;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/rabbitmq/lib/puppet/provider/rabbitmq_queue/rabbitmqadmin.rb b/3rdparty/modules/rabbitmq/lib/puppet/provider/rabbitmq_queue/rabbitmqadmin.rb index eeffa953c..fb930b36b 100644 --- a/3rdparty/modules/rabbitmq/lib/puppet/provider/rabbitmq_queue/rabbitmqadmin.rb +++ b/3rdparty/modules/rabbitmq/lib/puppet/provider/rabbitmq_queue/rabbitmqadmin.rb @@ -1,19 +1,18 @@ 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 - defaultfor :feature => :posix + confine feature: :posix def should_vhost if @should_vhost @@ -24,37 +23,32 @@ Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do end def self.all_vhosts - vhosts = [] - rabbitmqctl('list_vhosts', '-q').split(/\n/).collect do |vhost| - vhosts.push(vhost) - end - vhosts + rabbitmqctl('list_vhosts', '-q').split(%r{\n}) end def self.all_queues(vhost) - rabbitmqctl('list_queues', '-q', '-p', vhost, 'name', 'durable', 'auto_delete', 'arguments').split(/\n/) + rabbitmqctl('list_queues', '-q', '-p', vhost, 'name', 'durable', 'auto_delete', 'arguments').split(%r{\n}) end def self.instances resources = [] all_vhosts.each do |vhost| - all_queues(vhost).collect do |line| - name, durable, auto_delete, arguments = line.split() + all_queues(vhost).map do |line| + next if line =~ %r{^federation:} + name, durable, auto_delete, arguments = line.split("\t") # Convert output of arguments from the rabbitmqctl command to a json string. if !arguments.nil? - arguments = arguments.gsub(/^\[(.*)\]$/, "").gsub(/\{("(?:.|\\")*?"),/, '{\1:').gsub(/\},\{/, ",") - if arguments == "" - arguments = '{}' - end + arguments = arguments.gsub(%r{^\[(.*)\]$}, '').gsub(%r{\{("(?:.|\\")*?"),}, '{\1:').gsub(%r{\},\{}, ',') + arguments = '{}' if arguments == '' else arguments = '{}' end queue = { - :durable => durable, - :auto_delete => auto_delete, - :arguments => JSON.parse(arguments), - :ensure => :present, - :name => "%s@%s" % [name, vhost], + durable: durable, + auto_delete: auto_delete, + arguments: JSON.parse(arguments), + ensure: :present, + name: format('%s@%s', name, vhost) } resources << new(queue) if queue[:name] end @@ -65,7 +59,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 @@ -79,21 +73,18 @@ Puppet::Type.type(:rabbitmq_queue).provide(:rabbitmqadmin) do vhost_opt = should_vhost ? "--vhost=#{should_vhost}" : '' name = resource[:name].rpartition('@').first arguments = resource[:arguments] - if arguments.nil? - arguments = {} - end + arguments = {} if arguments.nil? 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 @@ -103,5 +94,4 @@ 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