main()
click to toggle source
# File lib/mcollective/application/rpc.rb, line 80 def main mc = rpcclient(configuration[:agent]) mc.agent_filter(configuration[:agent]) string_to_ddl_type(configuration[:arguments], mc.ddl.action_interface(configuration[:action])) if mc.ddl mc.validate_request(configuration[:action], configuration[:arguments]) if mc.reply_to configuration[:arguments][:process_results] = true puts "Request sent with id: " + mc.send(configuration[:action], configuration[:arguments]) + " replies to #{mc.reply_to}" elsif !configuration[:show_results] configuration[:arguments][:process_results] = false puts "Request sent with id: " + mc.send(configuration[:action], configuration[:arguments]) else discover_args = {:verbose => true} # IF the discovery method hasn't been explicitly overridden # and we're not being run interactively, # and someone has piped us some data # Then we assume it's a discovery list - this can be either: # - list of hosts in plaintext # - JSON that came from another rpc or printrpc if mc.default_discovery_method && !STDIN.tty? && !STDIN.eof? # Then we override discovery to try to grok the data on STDIN mc.discovery_method = 'stdin' mc.discovery_options = 'auto' discover_args = {:verbose => false} end mc.discover discover_args printrpc mc.send(configuration[:action], configuration[:arguments]) printrpcstats :summarize => true, :caption => "#{configuration[:agent]}##{configuration[:action]} call stats" if mc.discover.size > 0 halt mc.stats end end