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