]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2857] New config -> _init_segments
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Wed, 14 Aug 2013 09:26:38 +0000 (11:26 +0200)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Wed, 14 Aug 2013 09:26:38 +0000 (11:26 +0200)
Call the initialization of memory segments in the memory manager when
new configuration is applied.

src/bin/memmgr/memmgr.py.in
src/bin/memmgr/tests/memmgr_test.py

index 4bf27fe9a54eb25201e179acc8e19e55c7575559..aebbd74db5cbc976a56a669b7a5d72cfdd521cb4 100755 (executable)
@@ -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))
index 3dae17f96e10f2a250e12c850b6c472bca682ee3..d272e873beaa78cf9096a046a72084d0049daa0a 100755 (executable)
@@ -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')])