Class/Module Index [+]

Quicksearch

MCollective::Application::Facts

Public Instance Methods

main() click to toggle source
# File lib/mcollective/application/facts.rb, line 31
def main
  rpcutil = rpcclient("rpcutil")
  rpcutil.progress = false

  facts = {}

  rpcutil.get_fact(:fact => configuration[:fact]) do |resp|
    begin
      value = resp[:body][:data][:value]
      if value
        if facts.include?(value)
          facts[value] << resp[:senderid]
        else
          facts[value] = [ resp[:senderid] ]
        end
      end
    rescue Exception => e
      STDERR.puts "Could not parse facts for #{resp[:senderid]}: #{e.class}: #{e}"
    end
  end

  if facts.empty?
    puts "No values found for fact #{configuration[:fact]}\n"
  else
    show_single_fact_report(configuration[:fact], facts, options[:verbose])
  end

  printrpcstats

  halt rpcutil.stats
end
post_option_parser(configuration) click to toggle source
# File lib/mcollective/application/facts.rb, line 4
def post_option_parser(configuration)
  configuration[:fact] = ARGV.shift if ARGV.size > 0
end
show_single_fact_report(fact, facts, verbose=false) click to toggle source
# File lib/mcollective/application/facts.rb, line 12
def show_single_fact_report(fact, facts, verbose=false)
  puts("Report for fact: #{fact}\n\n")

  field_size = MCollective::Util.field_size(facts.keys)
  facts.keys.sort.each do |k|
    printf("        %-#{field_size}s found %d times\n", k, facts[k].size)

    if verbose
      puts

      facts[k].sort.each do |f|
        puts("            #{f}")
      end

      puts
    end
  end
end
validate_configuration(configuration) click to toggle source
# File lib/mcollective/application/facts.rb, line 8
def validate_configuration(configuration)
  raise "Please specify a fact to report for" unless configuration.include?(:fact)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.