BIND 10 trac2179, updated. 68a15b9bb1103228b4ca60d1f75d0f3f789f3ff2 [2179] fixed the lost of default statistics data

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Aug 13 09:22:36 UTC 2012


The branch, trac2179 has been updated
       via  68a15b9bb1103228b4ca60d1f75d0f3f789f3ff2 (commit)
      from  53724b30ad46656f3011fa765ab681eedd6b1e98 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 68a15b9bb1103228b4ca60d1f75d0f3f789f3ff2
Author: Naoki Kambe <kambe at jprs.co.jp>
Date:   Mon Aug 13 17:50:32 2012 +0900

    [2179] fixed the lost of default statistics data
    
    If some values of a module were not changed from default values, these default
    values were removed from statistics data of the stats module even if other
    changed values were preserved. That is, it didn't fully support the
    differential updates. It is now fixed to preserve it.

-----------------------------------------------------------------------

Summary of changes:
 src/bin/stats/stats.py.in             |   14 ++++++-
 src/bin/stats/tests/b10-stats_test.py |   70 +++++++++++++++++++++++----------
 2 files changed, 62 insertions(+), 22 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/bin/stats/stats.py.in b/src/bin/stats/stats.py.in
index 493754b..36e028a 100755
--- a/src/bin/stats/stats.py.in
+++ b/src/bin/stats/stats.py.in
@@ -565,7 +565,19 @@ class Stats:
         for m in mlist:
             if self.statistics_data_bymid[m]:
                 if m in self.statistics_data:
-                    self.statistics_data[m].update(
+                    # propagate the default values by times of
+                    # instances
+                    _len = len(self.statistics_data_bymid[m])
+                    for i in range(0, _len - 1):
+                        self.statistics_data[m] = _accum(
+                            self.statistics_data[m],
+                            self.statistics_data[m])
+                    # replace the default values with summaries of the
+                    # collected values of each module. But the default
+                    # values which are not included in collected
+                    # values are not replaced.
+                    self.statistics_data[m] = merge_oldnew(
+                        self.statistics_data[m],
                         _accum_bymodule(
                             self.statistics_data_bymid[m]))
 
diff --git a/src/bin/stats/tests/b10-stats_test.py b/src/bin/stats/tests/b10-stats_test.py
index c98f30c..193f46c 100644
--- a/src/bin/stats/tests/b10-stats_test.py
+++ b/src/bin/stats/tests/b10-stats_test.py
@@ -741,10 +741,14 @@ class TestStats(unittest.TestCase):
                       self.base.auth2.server ]
         sum_qtcp = 0
         sum_qudp = 0
-        sum_qtcp_perzone = 0
-        sum_qudp_perzone = 0
-        sum_qtcp_nds_perzone = 0
-        sum_qudp_nds_perzone = 0
+        sum_qtcp_perzone1 = 0
+        sum_qudp_perzone1 = 0
+        sum_qtcp_perzone2 = 4 * len(list_auth)
+        sum_qudp_perzone2 = 3 * len(list_auth)
+        sum_qtcp_nds_perzone10 = 0
+        sum_qudp_nds_perzone10 = 0
+        sum_qtcp_nds_perzone20 = 4 * len(list_auth)
+        sum_qudp_nds_perzone20 = 3 * len(list_auth)
         self.stats = stats.Stats()
         self.assertEqual(self.stats.command_show(owner='Foo', name=None),
                          isc.config.create_answer(
@@ -759,36 +763,50 @@ class TestStats(unittest.TestCase):
         for a in list_auth:
             sum_qtcp += a.queries_tcp
             sum_qudp += a.queries_udp
-            sum_qtcp_perzone += a.queries_per_zone[0]['queries.tcp']
-            sum_qudp_perzone += a.queries_per_zone[0]['queries.udp']
-            sum_qtcp_nds_perzone += a.nds_queries_per_zone['test10.example']['queries.tcp']
-            sum_qudp_nds_perzone += a.nds_queries_per_zone['test10.example']['queries.udp']
+            sum_qtcp_perzone1 += a.queries_per_zone[0]['queries.tcp']
+            sum_qudp_perzone1 += a.queries_per_zone[0]['queries.udp']
+            sum_qtcp_nds_perzone10 += a.nds_queries_per_zone['test10.example']['queries.tcp']
+            sum_qudp_nds_perzone10 += a.nds_queries_per_zone['test10.example']['queries.udp']
 
         self.assertEqual(self.stats.command_show(owner='Auth'),
                          isc.config.create_answer(
                 0, {'Auth':{ 'queries.udp': sum_qudp,
                      'queries.tcp': sum_qtcp,
                      'queries.perzone': [{ 'zonename': 'test1.example',
-                                           'queries.udp': sum_qudp_perzone,
-                                           'queries.tcp': sum_qtcp_perzone }
+                                           'queries.udp': sum_qudp_perzone1,
+                                           'queries.tcp': sum_qtcp_perzone1 },
+                                         { 'zonename': 'test2.example',
+                                           'queries.udp': sum_qudp_perzone2,
+                                           'queries.tcp': sum_qtcp_perzone2 }
                                          ],
                      'nds_queries.perzone': { 'test10.example' : {
-                                              'queries.udp': sum_qudp_nds_perzone,
-                                              'queries.tcp': sum_qtcp_nds_perzone } }
-                             }}))
+                                              'queries.udp': sum_qudp_nds_perzone10,
+                                              'queries.tcp': sum_qtcp_nds_perzone10 },
+                                              'test20.example' : {
+                                              'queries.udp': sum_qudp_nds_perzone20,
+                                              'queries.tcp': sum_qtcp_nds_perzone20 }
+                             }}}))
         self.assertEqual(self.stats.command_show(owner='Auth', name='queries.udp'),
                          isc.config.create_answer(
                 0, {'Auth': {'queries.udp': sum_qudp}}))
         self.assertEqual(self.stats.command_show(owner='Auth', name='queries.perzone'),
                          isc.config.create_answer(
-                0, {'Auth': {'queries.perzone': [{ 'zonename': 'test1.example',
-                      'queries.udp': sum_qudp_perzone,
-                      'queries.tcp': sum_qtcp_perzone }]}}))
+                0, {'Auth': {'queries.perzone': [
+                            { 'zonename': 'test1.example',
+                              'queries.udp': sum_qudp_perzone1,
+                              'queries.tcp': sum_qtcp_perzone1 },
+                            { 'zonename': 'test2.example',
+                              'queries.udp': sum_qudp_perzone2,
+                              'queries.tcp': sum_qtcp_perzone2 }]}}))
         self.assertEqual(self.stats.command_show(owner='Auth', name='nds_queries.perzone'),
                          isc.config.create_answer(
-                0, {'Auth': {'nds_queries.perzone': { 'test10.example': {
-                      'queries.udp': sum_qudp_nds_perzone,
-                      'queries.tcp': sum_qtcp_nds_perzone }}}}))
+                0, {'Auth': {'nds_queries.perzone': {
+                            'test10.example': {
+                                'queries.udp': sum_qudp_nds_perzone10,
+                                'queries.tcp': sum_qtcp_nds_perzone10 },
+                            'test20.example': {
+                                'queries.udp': sum_qudp_nds_perzone20,
+                                'queries.tcp': sum_qtcp_nds_perzone20 }}}}))
         orig_get_datetime = stats.get_datetime
         orig_get_timestamp = stats.get_timestamp
         stats.get_datetime = lambda x=None: self.const_datetime
@@ -1163,13 +1181,23 @@ class TestStats(unittest.TestCase):
                          'queries.tcp':
                              auth.queries_per_zone[0]['queries.tcp']*n,
                          'queries.udp':
-                             auth.queries_per_zone[0]['queries.udp']*n}],
+                             auth.queries_per_zone[0]['queries.udp']*n},
+                        {'zonename': "test2.example",
+                         'queries.tcp': 4*n,
+                         'queries.udp': 3*n },
+                        ],
                  'nds_queries.perzone': {
                          'test10.example': {
                              'queries.tcp':
                                  auth.nds_queries_per_zone['test10.example']['queries.tcp']*n,
                              'queries.udp':
-                                 auth.nds_queries_per_zone['test10.example']['queries.udp']*n}},
+                                 auth.nds_queries_per_zone['test10.example']['queries.udp']*n},
+                         'test20.example': {
+                             'queries.tcp':
+                                 4*n,
+                             'queries.udp':
+                                 3*n},
+                         },
                  'queries.tcp': auth.queries_tcp*n,
                  'queries.udp': auth.queries_udp*n})
         # check statistics data of 'Stats'



More information about the bind10-changes mailing list