def faults(self, fault_id=None): method = cherrypy.request.method params = cherrypy.request.params json = None if method == 'DELETE' else cherrypy.request.json print(f'fault_id={fault_id}') print(f'method={method}') print(f'params={params}') print(f'json={json}') if method == 'GET': if fault_id is None: ids = {'faults ids': Configuration.get_all_faults_ids()} return ids else: return self.faults[fault_id] if method == 'POST' or method == 'CREATE' or method == 'PUT': fault_id = str(uuid.uuid4()) faultobj = Root.create_object_from_json_extract_classname(json) if faultobj: Configuration.set_fault(fault_id, faultobj) else: fault_id = "0" return {'fault_id': fault_id} if method == 'DELETE': removed_uuid = Configuration.remove_fault(fault_id) if removed_uuid: cherrypy.response.status = 200 else: cherrypy.response.status = 404 return {'fault_id': fault_id}
def remove_fault(uuid): uuid_removed = Configuration.remove_fault(uuid) return uuid_removed
if (fault := create_fault_from_dict( data=cherrypy.request.json)) is None: raise cherrypy.HTTPError( message="Unable to create a fault from provided JSON data") try: fault_id = generate_fault_id() Configuration.add_fault(fault_id=fault_id, fault=fault) except ValueError as exc: raise cherrypy.HTTPError( message= f"Unable to add a fault {fault} with {fault_id=}: {exc}" ) from None return {"fault_id": fault_id} elif method == "DELETE": if Configuration.remove_fault(fault_id=fault_id): return {"fault_id": fault_id} raise cherrypy.NotFound() def start_charybdisfs_api_server(port: int = DEFAULT_PORT) -> None: conf = { "global": { "server.socket_host": "0.0.0.0", "server.socket_port": port, "server.thread_pool": 1, "engine.autoreload.on": False, }, } cherrypy.quickstart(root=CharybdisFsApiServer(), config=conf)