| Class | MCollective::Application::Controller |
| In: |
plugins/mcollective/application/controller.rb
|
| Parent: | Application |
# File plugins/mcollective/application/controller.rb, line 53
53: def main
54: client = MCollective::Client.new(options[:config])
55: client.options = options
56:
57: counter = 0
58:
59: command = configuration[:command]
60: command += " #{configuration[:argument]}" if configuration[:argument]
61:
62: statistics = client.discovered_req(command, 'mcollective') do |response|
63: next unless response
64:
65: counter += 1
66:
67: sender = response[:senderid]
68: body = response[:body]
69:
70: case command
71: when /^stats$/
72: print_statistics(sender, body[:stats])
73: when /^reload_agent(?:.+)/
74: printf("%40s> %s\n", sender, body)
75: else
76: if options[:verbose]
77: puts "#{sender}>"
78: pp body
79: else
80: puts if counter % 4 == 1
81: print "#{sender} "
82: end
83: end
84: end
85:
86: client.disconnect
87:
88: client.display_stats(statistics, false, "mcollectived controller summary")
89: end
# File plugins/mcollective/application/controller.rb, line 31
31: def post_option_parser(configuration)
32: configuration[:command] = ARGV.shift if ARGV.size > 0
33: end
# File plugins/mcollective/application/controller.rb, line 23
23: def print_statistics(sender, statistics)
24: printf("%40s> total=%d, replies=%d, valid=%d, invalid=%d, " +
25: "filtered=%d, passed=%d\n", sender,
26: statistics[:total], statistics[:replies],
27: statistics[:validated], statistics[:unvalidated],
28: statistics[:filtered], statistics[:passed])
29: end
# File plugins/mcollective/application/controller.rb, line 35
35: def validate_configuration(configuration)
36: unless configuration.include?(:command)
37: raise "Please specify a command and optional arguments"
38: end
39:
40: #
41: # When asked to restart an agent we need to make sure that
42: # we have this agent name and set appropriate filters ...
43: #
44: if configuration[:command].match(/^reload_agent$/)
45: unless configuration.include?(:argument)
46: raise "Please specify an agent name to reload with --argument"
47: end
48:
49: options[:filter]['agent'] << configuration[:argument]
50: end
51: end