BIND 10 trac2967, updated. d3c2b9a2fde279369ebac19e23153963fa855d1b [2967] increase NO_SOA logging message level to 'warn'

BIND 10 source code commits bind10-changes at lists.isc.org
Tue Jul 2 23:17:20 UTC 2013


The branch, trac2967 has been updated
       via  d3c2b9a2fde279369ebac19e23153963fa855d1b (commit)
       via  313bac393cc4a097be0bdeaac4e21bbef1ba0aa2 (commit)
       via  4d0494f1618492afa57a70d036d63a6ac67ee894 (commit)
       via  3945e7047b3e94919601d9d4bfca36e54310c43c (commit)
       via  f623694374d70db2e5cae9f78b44fc74d4580f9e (commit)
      from  e6bd8c1c59c87dbbed3160350e063031839d6425 (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 d3c2b9a2fde279369ebac19e23153963fa855d1b
Author: Paul Selkirk <pselkirk at isc.org>
Date:   Tue Jul 2 19:12:34 2013 -0400

    [2967] increase NO_SOA logging message level to 'warn'

commit 313bac393cc4a097be0bdeaac4e21bbef1ba0aa2
Author: Paul Selkirk <pselkirk at isc.org>
Date:   Tue Jul 2 19:11:03 2013 -0400

    [2967] cleanup: remove unneeded parentheses in conditionals

commit 4d0494f1618492afa57a70d036d63a6ac67ee894
Author: Paul Selkirk <pselkirk at isc.org>
Date:   Tue Jul 2 19:09:20 2013 -0400

    [2967] cleanup: remove unneeded line continuation backslashes

commit 3945e7047b3e94919601d9d4bfca36e54310c43c
Author: Paul Selkirk <pselkirk at isc.org>
Date:   Tue Jul 2 19:07:48 2013 -0400

    [2967] cleanup: remove unneeded testcase tearDown() method

commit f623694374d70db2e5cae9f78b44fc74d4580f9e
Author: Paul Selkirk <pselkirk at isc.org>
Date:   Tue Jul 2 19:05:48 2013 -0400

    [2967] slightly better way of overriding the default mock SOA rdata

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

Summary of changes:
 src/bin/zonemgr/tests/zonemgr_test.py |   72 +++++++++++++++------------------
 src/bin/zonemgr/zonemgr.py.in         |   35 ++++++++--------
 2 files changed, 50 insertions(+), 57 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/bin/zonemgr/tests/zonemgr_test.py b/src/bin/zonemgr/tests/zonemgr_test.py
index c34cb1f..ab2f8c8 100644
--- a/src/bin/zonemgr/tests/zonemgr_test.py
+++ b/src/bin/zonemgr/tests/zonemgr_test.py
@@ -37,9 +37,6 @@ LOWERBOUND_RETRY = 5
 REFRESH_JITTER = 0.10
 RELOAD_JITTER = 0.75
 
-rdata_net = 'a.example.net. root.example.net. 2009073106 7200 3600 2419200 21600'
-rdata_org = 'a.example.org. root.example.org. 2009073112 7200 3600 2419200 21600'
-
 class ZonemgrTestException(Exception):
     pass
 
@@ -61,21 +58,19 @@ class FakeCCSession(isc.config.ConfigData, MockModuleCCSession):
 class MockDataSourceClient():
     '''A simple mock data source client.'''
     def find_zone(self, zone_name):
-        '''Mock version of find_zone().'''
+        '''Mock version of DataSourceClient.find_zone().'''
         return (isc.datasrc.DataSourceClient.SUCCESS, self)
 
     def find(self, name, rrtype, options=ZoneFinder.FIND_DEFAULT):
-        '''Mock ZoneFinder.find().
-
-        It returns the predefined SOA RRset to queries for SOA of the common
-        test zone name.  It also emulates some unusual cases for special
-        zone names.
-
-        '''
+        '''Mock version of ZoneFinder.find().'''
         if name == Name('example.net'):
-            rdata = Rdata(RRType.SOA, RRClass.IN, rdata_net)
+            rdata = Rdata(RRType.SOA, RRClass.IN,
+                          'a.example.net. root.example.net. 2009073106 ' +
+                          '7200 3600 2419200 21600')
         elif name == 'example.org.':
-            rdata = Rdata(RRType.SOA, RRClass.IN, rdata_org)
+            rdata = Rdata(RRType.SOA, RRClass.IN,
+                          'a.example.org. root.example.org. 2009073112 ' +
+                          '7200 3600 2419200 21600')
         else:
             return (ZoneFinder.NXDOMAIN, None, 0)
         rrset = RRset(name, RRClass.IN, RRType.SOA, RRTTL(3600))
@@ -83,21 +78,18 @@ class MockDataSourceClient():
         return (ZoneFinder.SUCCESS, rrset, 0)
 
 class MockDataSrcClientsMgr():
+    '''A simple mock data source client manager.'''
     def __init__(self):
-        # Default faked result of get_client_list, customizable by tests
-        self.found_datasrc_client_list = self
-
-        # Default faked result of find(), customizable by tests
-        self.found_datasrc_client = MockDataSourceClient()
+        self.datasrc_client = MockDataSourceClient()
 
     def get_client_list(self, rrclass):
-        return self.found_datasrc_client_list
+        return self
 
     def find(self, zone_name, want_exact_match, want_finder):
         """Pretending find method on the object returned by get_client_list"""
-        if issubclass(type(self.found_datasrc_client), Exception):
-            raise self.found_datasrc_client
-        return self.found_datasrc_client, None, None
+        if issubclass(type(self.datasrc_client), Exception):
+            raise self.datasrc_client
+        return self.datasrc_client, None, None
 
 class MyZonemgrRefresh(ZonemgrRefresh):
     def __init__(self):
@@ -229,14 +221,15 @@ class TestZonemgrRefresh(unittest.TestCase):
         self.assertRaises(KeyError, self.zone_refresh._get_zone_soa_rdata, ZONE_NAME_CLASS2_IN)
 
     def test_zonemgr_reload_zone(self):
-        global rdata_net
         soa_rdata = 'a.example.net. root.example.net. 2009073106 1800 900 2419200 21600'
-        # We need to restore this not to harm other tests
-        old_rdata_net = rdata_net
-        rdata_net = soa_rdata
+        def find(name, rrtype, options=ZoneFinder.FIND_DEFAULT):
+            rdata = Rdata(RRType.SOA, RRClass.IN, soa_rdata)
+            rrset = RRset(name, RRClass.IN, RRType.SOA, RRTTL(3600))
+            rrset.add_rdata(rdata)
+            return (ZoneFinder.SUCCESS, rrset, 0)
+        self.zone_refresh._datasrc_clients_mgr.datasrc_client.find = find
         self.zone_refresh.zonemgr_reload_zone(ZONE_NAME_CLASS1_IN)
         self.assertEqual(soa_rdata, self.zone_refresh._zonemgr_refresh_info[ZONE_NAME_CLASS1_IN]["zone_soa_rdata"])
-        rdata_net = old_rdata_net
 
     def test_get_zone_notifier_master(self):
         notify_master = "192.168.1.1"
@@ -308,12 +301,13 @@ class TestZonemgrRefresh(unittest.TestCase):
         self.assertRaises(ZonemgrTestException, self.zone_refresh._send_command, "Unknown", "Notify", None)
 
     def test_zonemgr_add_zone(self):
-        global rdata_net
         soa_rdata = 'a.example.net. root.example.net. 2009073106 1800 900 2419200 21600'
-        # This needs to be restored. The following test actually failed if we left
-        # this unclean
-        old_rdata_net = rdata_net
-        rdata_net = soa_rdata
+        def find(name, rrtype, options=ZoneFinder.FIND_DEFAULT):
+            rdata = Rdata(RRType.SOA, RRClass.IN, soa_rdata)
+            rrset = RRset(name, RRClass.IN, RRType.SOA, RRTTL(3600))
+            rrset.add_rdata(rdata)
+            return (ZoneFinder.SUCCESS, rrset, 0)
+        self.zone_refresh._datasrc_clients_mgr.datasrc_client.find = find
         time1 = time.time()
         self.zone_refresh._zonemgr_refresh_info = {}
         self.zone_refresh.zonemgr_add_zone(ZONE_NAME_CLASS1_IN)
@@ -327,7 +321,6 @@ class TestZonemgrRefresh(unittest.TestCase):
         zone_timeout = self.zone_refresh._zonemgr_refresh_info[ZONE_NAME_CLASS1_IN]["next_refresh_time"]
         self.assertTrue((time1 + 900 * (1 - self.zone_refresh._reload_jitter)) <= zone_timeout)
         self.assertTrue(zone_timeout <= time2 + 900)
-        rdata_net = old_rdata_net
 
         old_get_zone_soa = self.zone_refresh._get_zone_soa
         def get_zone_soa2(zone_name_class):
@@ -356,10 +349,13 @@ class TestZonemgrRefresh(unittest.TestCase):
                 ZONE_NAME_CLASS3_IN, "127.0.0.1"))
 
     def test_zone_refresh_success(self):
-        global rdata_net
         soa_rdata = 'a.example.net. root.example.net. 2009073106 1800 900 2419200 21600'
-        old_rdata_net = rdata_net
-        rdata_net = soa_rdata
+        def find(name, rrtype, options=ZoneFinder.FIND_DEFAULT):
+            rdata = Rdata(RRType.SOA, RRClass.IN, soa_rdata)
+            rrset = RRset(name, RRClass.IN, RRType.SOA, RRTTL(3600))
+            rrset.add_rdata(rdata)
+            return (ZoneFinder.SUCCESS, rrset, 0)
+        self.zone_refresh._datasrc_clients_mgr.datasrc_client.find = find
         time1 = time.time()
         self.zone_refresh._zonemgr_refresh_info[ZONE_NAME_CLASS1_IN]["zone_state"] = ZONE_REFRESHING
         self.zone_refresh.zone_refresh_success(ZONE_NAME_CLASS1_IN)
@@ -375,7 +371,6 @@ class TestZonemgrRefresh(unittest.TestCase):
         self.assertTrue(last_refresh_time <= time2)
         self.assertRaises(ZonemgrException, self.zone_refresh.zone_refresh_success, ("example.test.", "CH"))
         self.assertRaises(ZonemgrException, self.zone_refresh.zone_refresh_success, ZONE_NAME_CLASS3_IN)
-        rdata_net = old_rdata_net
 
     def test_zone_refresh_fail(self):
         soa_rdata = 'a.example.net. root.example.net. 2009073105 7200 3600 2419200 21600'
@@ -674,9 +669,6 @@ class TestZonemgr(unittest.TestCase):
     def setUp(self):
         self.zonemgr = MyZonemgr()
 
-    def tearDown(self):
-        pass
-
     def test_config_handler(self):
         config_data1 = {
                     "lowerbound_refresh" : 60,
diff --git a/src/bin/zonemgr/zonemgr.py.in b/src/bin/zonemgr/zonemgr.py.in
index 5b60b18..55ebaa9 100755
--- a/src/bin/zonemgr/zonemgr.py.in
+++ b/src/bin/zonemgr/zonemgr.py.in
@@ -142,14 +142,14 @@ class ZonemgrRefresh:
         """Set zone next refresh time.
         jitter should not be bigger than half the original value."""
         self._set_zone_next_refresh_time(zone_name_class,
-                                         self._get_current_time() + \
+                                         self._get_current_time() +
                                             self._random_jitter(max, jitter))
 
     def _set_zone_refresh_timer(self, zone_name_class):
         """Set zone next refresh time after zone refresh success.
            now + refresh - refresh_jitter <= next_refresh_time <= now + refresh
            """
-        zone_refresh_time = float(self._get_zone_soa_rdata(zone_name_class).\
+        zone_refresh_time = float(self._get_zone_soa_rdata(zone_name_class).
                                       split(" ")[REFRESH_OFFSET])
         zone_refresh_time = max(self._lowerbound_refresh, zone_refresh_time)
         self._set_zone_timer(zone_name_class, zone_refresh_time,
@@ -159,8 +159,8 @@ class ZonemgrRefresh:
         """Set zone next refresh time after zone refresh fail.
            now + retry - retry_jitter <= next_refresh_time <= now + retry
            """
-        if (self._get_zone_soa_rdata(zone_name_class) is not None):
-            zone_retry_time = float(self._get_zone_soa_rdata(zone_name_class).\
+        if self._get_zone_soa_rdata(zone_name_class) is not None:
+            zone_retry_time = float(self._get_zone_soa_rdata(zone_name_class).
                                         split(" ")[RETRY_OFFSET])
         else:
             zone_retry_time = 0.0
@@ -180,7 +180,7 @@ class ZonemgrRefresh:
 
     def zone_refresh_success(self, zone_name_class):
         """Update zone info after zone refresh success"""
-        if (self._zone_not_exist(zone_name_class)):
+        if self._zone_not_exist(zone_name_class):
             logger.error(ZONEMGR_UNKNOWN_ZONE_SUCCESS, zone_name_class[0],
                          zone_name_class[1])
             raise ZonemgrException("[b10-zonemgr] Zone (%s, %s) doesn't "
@@ -193,7 +193,7 @@ class ZonemgrRefresh:
 
     def zone_refresh_fail(self, zone_name_class):
         """Update zone info after zone refresh fail"""
-        if (self._zone_not_exist(zone_name_class)):
+        if self._zone_not_exist(zone_name_class):
             logger.error(ZONEMGR_UNKNOWN_ZONE_FAIL, zone_name_class[0],
                          zone_name_class[1])
             raise ZonemgrException("[b10-zonemgr] Zone (%s, %s) doesn't "
@@ -278,7 +278,8 @@ class ZonemgrRefresh:
                                        format_zone_str(zone_name, zone_class))
             result, soa_rrset, _ = finder.find(zone_name, RRType.SOA)
             if result != ZoneFinder.SUCCESS:
-                logger.info(ZONEMGR_NO_SOA, format_zone_str(zone_name, zone_class))
+                logger.warn(ZONEMGR_NO_SOA,
+                            format_zone_str(zone_name, zone_class))
                 return None
             return soa_rrset
 
@@ -297,7 +298,7 @@ class ZonemgrRefresh:
             zone_soa = get_zone_soa_rrset(datasrc_client,
                                           Name(zone_name_class[0]),
                                           RRClass(zone_name_class[1]))
-            if (zone_soa == None):
+            if zone_soa == None:
                 return None
             else:
                 return zone_soa.get_rdata()[0].to_text()
@@ -309,12 +310,12 @@ class ZonemgrRefresh:
 
     def _zone_is_expired(self, zone_name_class):
         """Judge whether a zone is expired or not."""
-        zone_expired_time = float(self._get_zone_soa_rdata(zone_name_class).\
+        zone_expired_time = float(self._get_zone_soa_rdata(zone_name_class).
                                       split(" ")[EXPIRED_OFFSET])
         zone_last_refresh_time = \
             self._get_zone_last_refresh_time(zone_name_class)
         if (ZONE_EXPIRED == self._get_zone_state(zone_name_class) or
-            zone_last_refresh_time + zone_expired_time <= \
+            zone_last_refresh_time + zone_expired_time <=
                 self._get_current_time()):
             return True
 
@@ -330,7 +331,7 @@ class ZonemgrRefresh:
         self._zonemgr_refresh_info[zone_name_class]["last_refresh_time"] = time
 
     def _get_zone_notifier_master(self, zone_name_class):
-        if ("notify_master" in \
+        if ("notify_master" in
                 self._zonemgr_refresh_info[zone_name_class].keys()):
             return self._zonemgr_refresh_info[zone_name_class]["notify_master"]
 
@@ -341,7 +342,7 @@ class ZonemgrRefresh:
             master_addr
 
     def _clear_zone_notifier_master(self, zone_name_class):
-        if ("notify_master" in \
+        if ("notify_master" in
                 self._zonemgr_refresh_info[zone_name_class].keys()):
             del self._zonemgr_refresh_info[zone_name_class]["notify_master"]
 
@@ -385,7 +386,7 @@ class ZonemgrRefresh:
             # If hasn't received refresh response but are within refresh
             # timeout, skip the zone
             if (ZONE_REFRESHING == zone_state and
-                (self._get_zone_refresh_timeout(zone_name_class) > \
+                (self._get_zone_refresh_timeout(zone_name_class) >
                      self._get_current_time())):
                 continue
 
@@ -396,7 +397,7 @@ class ZonemgrRefresh:
                 zone_need_refresh = zone_name_class
 
             # Find the zone need do refresh
-            if (self._get_zone_next_refresh_time(zone_need_refresh) < \
+            if (self._get_zone_next_refresh_time(zone_need_refresh) <
                     self._get_current_time()):
                 break
 
@@ -409,7 +410,7 @@ class ZonemgrRefresh:
                      zone_name_class[0], zone_name_class[1])
         self._set_zone_state(zone_name_class, ZONE_REFRESHING)
         self._set_zone_refresh_timeout(zone_name_class,
-                                       self._get_current_time() + \
+                                       self._get_current_time() +
                                            self._max_transfer_timeout)
         notify_master = self._get_zone_notifier_master(zone_name_class)
         # If the zone has notify master, send notify command to xfrin module
@@ -449,7 +450,7 @@ class ZonemgrRefresh:
                     timeout = \
                         self._get_zone_next_refresh_time(zone_need_refresh) - \
                         self._get_current_time()
-                    if (timeout < 0):
+                    if timeout < 0:
                         self._do_refresh(zone_need_refresh)
                         continue
 
@@ -710,7 +711,7 @@ class Zonemgr:
             logger.error(ZONEMGR_NO_ZONE_CLASS)
             raise ZonemgrException("zone class should be provided")
 
-        if (command != ZONE_NOTIFY_COMMAND):
+        if command != ZONE_NOTIFY_COMMAND:
             return (zone_name, zone_class)
 
         master_str = args.get("master")



More information about the bind10-changes mailing list