mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-30 13:37:55 +00:00
[2676] Convert ZoneMgr to use the rpc_call
Just a plain conversion.
This commit is contained in:
@@ -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,
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user