From 9610bc8687dbfa314443c48675076cb309c8197b Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 30 Dec 2023 11:53:39 +0000 Subject: [PATCH] update() does not recurse nested dictionaries --- API.py | 12 ++++++++++++ bridge_master.py | 8 +++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/API.py b/API.py index 1a6114f..416fb93 100644 --- a/API.py +++ b/API.py @@ -68,6 +68,11 @@ class FD_APIUserDefinedContext(object): def killserver(self): self.CONFIG['GLOBAL']['_KILL_SERVER'] = True + def resetAllConnections(self): + systems = self.CONFIG['SYSTEMS'] + for system in systems: + self.CONFIG['SYSTEMS'][system]['_reset'] = True + class FD_API(ServiceBase): @@ -119,6 +124,13 @@ class FD_API(ServiceBase): else: raise error.InvalidCredentialsError() + @rpc(Unicode) + def resetall(ctx,systemkey): + if ctx.udc.validateSystemKey(systemkey): + return ctx.udc.resetAllConnections() + else: + raise error.InvalidCredentialsError() + @rpc(Unicode,_returns=Unicode()) def getconfig(ctx,systemkey): if ctx.udc.validateSystemKey(systemkey): diff --git a/bridge_master.py b/bridge_master.py index 2090acf..6f73f4a 100644 --- a/bridge_master.py +++ b/bridge_master.py @@ -357,7 +357,9 @@ def remove_bridge_system(system): for _bridgesystem in BRIDGES[_bridge]: if _bridgesystem['SYSTEM'] != system: if _bridge not in _bridgestemp: - continue + _bridgestemp[_bridge] = [] + _bridgestemp[_bridge].append(_bridgesystem) + else: if _bridge not in _bridgestemp: _bridgestemp[_bridge] = [] @@ -862,7 +864,7 @@ def bridge_reset(): logger.debug('(BRIDGERESET) Running bridge resetter') for _system in CONFIG['SYSTEMS']: if '_reset' in CONFIG['SYSTEMS'][_system] and CONFIG['SYSTEMS'][_system]['_reset']: - logger.info('(BRIDGERESET) Bridge reset for %s - no peers',_system) + logger.info('(BRIDGERESET) Bridge reset for %s - no peers or API reset called',_system) remove_bridge_system(_system) try: del(CONFIG['SYSTEMS'][_system]['_opt_key']) @@ -875,7 +877,7 @@ def bridge_reset(): def options_config(): logger.debug('(OPTIONS) Running options parser') - prohibitedTGs = [0,1,2,3,4,5,9,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999] + prohibitedTGs = [0,1,2,3,4,5,6,7,8,9,9990,9991,9992,9993,9994,9995,9996,9997,9998,9999] for _system in CONFIG['SYSTEMS']: