1module MCollective 2 class Aggregate 3 class Nettest_mma<Base 4 def startup_hook 5 @result[:value] = [0.0, 0.0, 0.0] 6 @count = 0 7 @result[:type] = :numeric 8 9 # set default aggregate format unless it is defined 10 @aggregate_format = "Min: %.3f Max: %.3f Average: %.3f" unless @aggregate_format 11 end 12 13 def process_result(value, reply) 14 # Return from the method if the supplied value is not a numerical value 15 value = Float(value) rescue return 16 17 if value < @result[:value][0] || @result[:value][0] == 0.0 18 @result[:value][0] = value 19 end 20 21 if value > @result[:value][1] 22 @result[:value][1] = value 23 end 24 25 @count += 1 26 @result[:value][2] += value 27 end 28 29 def summarize 30 @result[:value][2] /= @count if @count > 1 31 super 32 end 33 end 34 end 35end 36