Browse Source

[2884] update get_statistics()

to change the way to sum up values under zonename by adding a for-loop
to read each classname and using the internal methods: _set_counter()
and _inc_counter()
Naoki Kambe 12 years ago
parent
commit
78981c6ff6
1 changed files with 8 additions and 8 deletions
  1. 8 8
      src/lib/python/isc/statistics/counters.py

+ 8 - 8
src/lib/python/isc/statistics/counters.py

@@ -396,15 +396,15 @@ class Counters():
         # Start calculation for '_SERVER_' counts
         zones_spec = isc.config.find_spec_part(self._statistics._spec,
                                                self._perzone_prefix)
-        zones_attrs = zones_spec['item_default'][self._entire_server]
         zones_data = {}
-        for attr in zones_attrs:
-            id_str = '%s/%s' % (self._entire_server, attr)
-            sum_ = 0
-            for name in zones:
-                if attr in zones[name]:
-                    sum_ += zones[name][attr]
-            _set_counter(zones_data, zones_spec, id_str, sum_)
+        for cls in zones.keys():
+            for zone in zones[cls].keys():
+                for (attr, val) in zones[cls][zone].items():
+                    id_str = '%s/%%s/%s' % (cls, attr)
+                    id_str1 = id_str % zone
+                    id_str2 = id_str % self._entire_server
+                    _set_counter(zones_data, zones_spec, id_str1, val)
+                    _inc_counter(zones_data, zones_spec, id_str2, val)
         # insert entire-server counts
         statistics_data[self._perzone_prefix] = dict(
             statistics_data[self._perzone_prefix],