X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=doc%2FMCollective%2FAggregate.html;fp=doc%2FMCollective%2FAggregate.html;h=7afc5c4ea048e2e579cdcb53d1c3c3149d3887e0;hb=7c9314f502cde8daad23b61d10b24a542e04154a;hp=0000000000000000000000000000000000000000;hpb=d1f1649ba43c5cbc43c4beb2380096ba051d646a;p=packages%2Fprecise%2Fmcollective.git diff --git a/doc/MCollective/Aggregate.html b/doc/MCollective/Aggregate.html new file mode 100644 index 0000000..7afc5c4 --- /dev/null +++ b/doc/MCollective/Aggregate.html @@ -0,0 +1,732 @@ + + + +
+ + ++Call all the appropriate functions with the reply data received from RPC::Client +
+ + + ++ # File lib/mcollective/aggregate.rb, line 45 +45: def call_functions(reply) +46: @functions.each do |function| +47: Log.debug("Calling aggregate function #{function} for result") +48: begin +49: function.process_result(reply[:data][function.output_name], reply) +50: rescue Exception => e +51: Log.error("Could not process aggregate function for '#{function.output_name}'. #{e.to_s}") +52: @failed << {:name => function.output_name, :type => :process_result} +53: @functions.delete(function) +54: end +55: end +56: end+
+Check if the function param is defined as an output for the action in the +ddl +
+ + + ++ # File lib/mcollective/aggregate.rb, line 40 +40: def contains_output?(output) +41: @ddl[:output].keys.include?(output) +42: end+
+Creates instances of the Aggregate functions +and stores them in the function array. All aggregate call and summarize +method calls operate on these function as a batch. +
+ + + ++ # File lib/mcollective/aggregate.rb, line 19 +19: def create_functions +20: @ddl[:aggregate].each_with_index do |agg, i| +21: output = agg[:args][0] +22: +23: if contains_output?(output) +24: arguments = agg[:args][1] +25: format = (arguments.delete(:format) if arguments) || nil +26: begin +27: @functions << load_function(agg[:function]).new(output, arguments, format, @action) +28: rescue Exception => e +29: Log.error("Cannot create aggregate function '#{output}'. #{e.to_s}") +30: @failed << {:name => output, :type => :startup} +31: end +32: else +33: Log.error("Cannot create aggregate function '#{output}'. '#{output}' has not been specified as a valid ddl output.") +34: @failed << {:name => output, :type => :create} +35: end +36: end +37: end+
+Loads function from disk for use +
+ + + ++ # File lib/mcollective/aggregate.rb, line 76 +76: def load_function(function_name) +77: function_name = function_name.to_s.capitalize +78: +79: PluginManager.loadclass("MCollective::Aggregate::#{function_name}") unless Aggregate.const_defined?(function_name) +80: Aggregate.const_get(function_name) +81: rescue Exception +82: raise "Aggregate function file '#{function_name.downcase}.rb' cannot be loaded" +83: end+
+Finalizes the function returning a result object +
+ + + ++ # File lib/mcollective/aggregate.rb, line 59 +59: def summarize +60: summary = @functions.map do |function| +61: begin +62: function.summarize +63: rescue Exception => e +64: Log.error("Could not summarize aggregate result for '#{function.output_name}'. #{e.to_s}") +65: @failed << {:name => function.output_name, :type => :summarize} +66: nil +67: end +68: end +69: +70: summary.reject{|x| x.nil?}.sort do |x,y| +71: x.result[:output] <=> y.result[:output] +72: end +73: end+
Disabled; run with --debug to generate this.
+ +Generated with the Darkfish + Rdoc Generator 1.1.6.
+