diff --git a/adc2019system.py b/adc2019system.py index 010353898189b830961bd2b2f9129cc6059aeddf..6f2e3e078b8bf01fdb7e86a6ff23b8665ccaab69 100644 --- a/adc2019system.py +++ b/adc2019system.py @@ -26,6 +26,9 @@ def load_config(path): def set_role(role_name, config_data): global role + if role is not None: + del role + if role_name == 'host': role = Host(config_data) elif role_name == 'solver': @@ -34,14 +37,17 @@ def set_role(role_name, config_data): def call_api(method, cmd, params): print(f'I: API Received: {cmd}') - if role is not None: - return role.call_api(method, cmd, params) - else: - if cmd == 'role': - if method == 'POST': - set_role(params['role'], params) - return {'role': role.type} - else: + if cmd == 'role': + if method == 'POST': + set_role(params['role'], params) + return {'role': role.type} + else: + if role is None: return {'role': 'Undefined'} + else: + return {'role': self.type} + else: + if role is not None: + return role.call_api(method, cmd, params) else: return None diff --git a/roles/solver.py b/roles/solver.py index 113828a75e206cd40ddfc0a3e293c84da3a6297d..890c67cc549b4856402232fd387e6b949b82f430 100644 --- a/roles/solver.py +++ b/roles/solver.py @@ -16,6 +16,9 @@ class Solver(object): self.name = config['name'] self.solver = importlib.import_module(f"solvers.{config['solver']}") self.thread = None + + def __del__(self): + self.stop_solver() def __repr__(self): return "Solver"