From: Michal 'vorner' Vaner Date: Wed, 14 Aug 2013 09:26:38 +0000 (+0200) Subject: [2857] New config -> _init_segments X-Git-Tag: bind10-1.2.0beta1-release~228^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ea8b95396cb411187a22dc78fe460316ff2029ce;p=thirdparty%2Fkea.git [2857] New config -> _init_segments Call the initialization of memory segments in the memory manager when new configuration is applied. --- diff --git a/src/bin/memmgr/memmgr.py.in b/src/bin/memmgr/memmgr.py.in index 4bf27fe9a5..aebbd74db5 100755 --- a/src/bin/memmgr/memmgr.py.in +++ b/src/bin/memmgr/memmgr.py.in @@ -202,13 +202,18 @@ class Memmgr(BIND10Server): genid, clients_map = self._datasrc_clients_mgr.get_clients_map() datasrc_info = DataSrcInfo(genid, clients_map, self._config_params) self._datasrc_info_list.append(datasrc_info) + self._init_segments(datasrc_info) # Full datasrc reconfig will be rare, so would be worth logging # at the info level. logger.info(MEMMGR_DATASRC_RECONFIGURED, genid) + except isc.server_common.datasrc_clients_mgr.ConfigError as ex: logger.error(MEMMGR_DATASRC_CONFIG_ERROR, ex) + def _init_segments(datasrc_info): + pass + if '__main__' == __name__: mgr = Memmgr() sys.exit(mgr.run(MODULE_NAME)) diff --git a/src/bin/memmgr/tests/memmgr_test.py b/src/bin/memmgr/tests/memmgr_test.py index 3dae17f96e..d272e873be 100755 --- a/src/bin/memmgr/tests/memmgr_test.py +++ b/src/bin/memmgr/tests/memmgr_test.py @@ -190,9 +190,14 @@ class TestMemmgr(unittest.TestCase): cfg_data = MockConfigData( {"classes": {"IN": [{"type": "MasterFiles", "cache-enable": True, "params": {}}]}}) + self.__init_called = None + def mock_init_segments(param): + self.__init_called = param + self.__mgr._init_segments = mock_init_segments self.__mgr._datasrc_config_handler({}, cfg_data) self.assertEqual(1, len(self.__mgr._datasrc_info_list)) self.assertEqual(1, self.__mgr._datasrc_info_list[0].gen_id) + self.assertEqual(self.__init_called, self.__mgr._datasrc_info_list[0]) # Below we're using a mock DataSrcClientMgr for easier tests class MockDataSrcClientMgr: @@ -220,6 +225,7 @@ class TestMemmgr(unittest.TestCase): MockDataSrcClientMgr([('sqlite3', 'mapped', None)]) self.__mgr._datasrc_config_handler(None, None) # params don't matter self.assertEqual(2, len(self.__mgr._datasrc_info_list)) + self.assertEqual(self.__init_called, self.__mgr._datasrc_info_list[1]) self.assertIsNotNone( self.__mgr._datasrc_info_list[1].segment_info_map[ (RRClass.IN, 'sqlite3')])