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