#!python3 # ADC2019 system module import json from roles import Host, Solver, MergeSolver config = None role = None def init(args): if ('config' in args) and (args['config'] is not None): load_config(args['config']) def load_config(path): global config global role with open(path, 'r') as fp: config = json.load(fp) if 'role' in config: set_role(config['role'], config) 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': if not 'partial_mode' in config_data: config_data['partial_mode'] = False role = Solver(config_data) elif role_name == 'merge_solver': role = MergeSolver(config_data) def call_api(method, cmd, params): print(f'I: API Received: {cmd}') 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