From 9d00b71c14e4e1eb7e390c78b40e015f960595af Mon Sep 17 00:00:00 2001 From: Michal 'vorner' Vaner Date: Fri, 15 Feb 2013 12:37:38 +0100 Subject: [PATCH] [2676] Convert ZoneMgr to use the rpc_call Just a plain conversion. --- src/bin/zonemgr/tests/zonemgr_test.py | 18 +++++------------- src/bin/zonemgr/zonemgr.py.in | 12 +++++------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/bin/zonemgr/tests/zonemgr_test.py b/src/bin/zonemgr/tests/zonemgr_test.py index 42ed679661..f8acf66db3 100644 --- a/src/bin/zonemgr/tests/zonemgr_test.py +++ b/src/bin/zonemgr/tests/zonemgr_test.py @@ -41,23 +41,16 @@ TEST_SQLITE3_DBFILE = os.getenv("TESTDATAOBJDIR") + '/initdb.file' class ZonemgrTestException(Exception): pass -class MySession(): - def __init__(self): - pass - - def group_sendmsg(self, msg, module_name): - if module_name not in ("Auth", "Xfrin"): - raise ZonemgrTestException("module name not exist") - - def group_recvmsg(self, nonblock, seq): - return None, None - class FakeCCSession(isc.config.ConfigData, MockModuleCCSession): def __init__(self): module_spec = isc.config.module_spec_from_file(SPECFILE_LOCATION) ConfigData.__init__(self, module_spec) MockModuleCCSession.__init__(self) + def rpc_call(self, command, module, instance="*", to="*", params=None): + if module not in ("Auth", "Xfrin"): + raise ZonemgrTestException("module name not exist") + def get_remote_config_value(self, module_name, identifier): if module_name == "Auth" and identifier == "database_file": return TEST_SQLITE3_DBFILE, False @@ -84,7 +77,7 @@ class MyZonemgrRefresh(ZonemgrRefresh): return None sqlite3_ds.get_zone_soa = get_zone_soa - ZonemgrRefresh.__init__(self, MySession(), TEST_SQLITE3_DBFILE, + ZonemgrRefresh.__init__(self, None, TEST_SQLITE3_DBFILE, self._slave_socket, FakeCCSession()) current_time = time.time() self._zonemgr_refresh_info = { @@ -619,7 +612,6 @@ class MyZonemgr(Zonemgr): self._db_file = TEST_SQLITE3_DBFILE self._zone_refresh = None self._shutdown_event = threading.Event() - self._cc = MySession() self._module_cc = FakeCCSession() self._config_data = { "lowerbound_refresh" : 10, diff --git a/src/bin/zonemgr/zonemgr.py.in b/src/bin/zonemgr/zonemgr.py.in index 40bfa395d2..1f18fd52ff 100755 --- a/src/bin/zonemgr/zonemgr.py.in +++ b/src/bin/zonemgr/zonemgr.py.in @@ -105,6 +105,7 @@ class ZonemgrRefresh: def __init__(self, cc, db_file, slave_socket, module_cc_session): self._cc = cc + self._mccs = module_cc_session self._check_sock = slave_socket self._db_file = db_file self._zonemgr_refresh_info = {} @@ -277,15 +278,12 @@ class ZonemgrRefresh: def _send_command(self, module_name, command_name, params): """Send command between modules.""" - msg = create_command(command_name, params) try: - seq = self._cc.group_sendmsg(msg, module_name) - try: - answer, env = self._cc.group_recvmsg(False, seq) - except isc.cc.session.SessionTimeout: - pass # for now we just ignore the failure - except socket.error: + self._mccs.rpc_call(command_name, module_name, params=params) + except socket.error: # FIXME: WTF? logger.error(ZONEMGR_SEND_FAIL, module_name) + except (isc.cc.session.SessionTimeout, isc.config.RPCError): + pass # for now we just ignore the failure def _find_need_do_refresh_zone(self): """Find the first zone need do refresh, if no zone need