BIND 10 trac2858, updated. ffff944e95d88cac1272dd8b4c2954b7d67454fd [2858] Initialize each new SegmentInfo with the current readers
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Aug 20 11:27:17 UTC 2013
The branch, trac2858 has been updated
via ffff944e95d88cac1272dd8b4c2954b7d67454fd (commit)
from 0e6093d34db2a4749ee723d7b69366742303205a (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 ffff944e95d88cac1272dd8b4c2954b7d67454fd
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Tue Aug 20 13:24:10 2013 +0200
[2858] Initialize each new SegmentInfo with the current readers
-----------------------------------------------------------------------
Summary of changes:
src/bin/memmgr/memmgr.py.in | 5 +++++
src/bin/memmgr/tests/memmgr_test.py | 17 +++++++++++++++++
2 files changed, 22 insertions(+)
-----------------------------------------------------------------------
diff --git a/src/bin/memmgr/memmgr.py.in b/src/bin/memmgr/memmgr.py.in
index b97f7a9..24a956b 100755
--- a/src/bin/memmgr/memmgr.py.in
+++ b/src/bin/memmgr/memmgr.py.in
@@ -245,9 +245,14 @@ class Memmgr(BIND10Server):
logger.error(MEMMGR_DATASRC_CONFIG_ERROR, ex)
def _init_segments(self, datasrc_info):
+ members = self.mod_ccsession.rpc_call('members', 'Msgq',
+ params={'group':
+ 'SegmentReader'})
for key, sgmt_info in datasrc_info.segment_info_map.items():
rrclass, dsrc_name = key
cmd = ('load', None, datasrc_info, rrclass, dsrc_name)
+ for reader in members:
+ sgmt_info.add_reader(reader)
sgmt_info.add_event(cmd)
send_cmd = sgmt_info.start_update()
assert cmd == send_cmd and sgmt_info.get_state() == \
diff --git a/src/bin/memmgr/tests/memmgr_test.py b/src/bin/memmgr/tests/memmgr_test.py
index b2976cf..db9818d 100755
--- a/src/bin/memmgr/tests/memmgr_test.py
+++ b/src/bin/memmgr/tests/memmgr_test.py
@@ -48,6 +48,17 @@ class MyCCSession(MockModuleCCSession, isc.config.ConfigData):
self.notifications.append((group, callback))
return 42
+ def rpc_call(self, command, remote, params):
+ """
+ The RPC call method. Curretly, we use it at one place in the main
+ code only, so we hardcode the values. But if it is needed elsewhere,
+ we may need some more systemic solution.
+ """
+ assert command == 'members'
+ assert remote == 'Msgq'
+ assert params == {'group': 'SegmentReader'}
+ return ['reader1', 'reader2']
+
class MockMemmgr(memmgr.Memmgr):
def _setup_ccsession(self):
orig_cls = isc.config.ModuleCCSession
@@ -254,12 +265,16 @@ class TestMemmgr(unittest.TestCase):
class SgmtInfo:
def __init__(self):
self.events = []
+ self.readers = []
self.__state = None
def add_event(self, cmd):
self.events.append(cmd)
self.__state = SegmentInfo.UPDATING
+ def add_reader(self, reader):
+ self.readers.append(reader)
+
def start_update(self):
return self.events[0]
@@ -272,6 +287,7 @@ class TestMemmgr(unittest.TestCase):
self.segment_info_map = \
{(isc.dns.RRClass.IN, "name"): sgmt_info}
dsrc_info = DataSrcInfo()
+ self.__mgr._setup_ccsession()
# Pretend to have the builder thread
self.__mgr._builder_cv = threading.Condition()
@@ -282,6 +298,7 @@ class TestMemmgr(unittest.TestCase):
# The event was pushed into the segment info
command = ('load', None, dsrc_info, isc.dns.RRClass.IN, 'name')
self.assertEqual([command], sgmt_info.events)
+ self.assertEqual(['reader1', 'reader2'], sgmt_info.readers)
self.assertEqual([command], self.__mgr._builder_command_queue)
del self.__mgr._builder_command_queue[:]
More information about the bind10-changes
mailing list