def _callMethod(self, request_dict): if _Debug: lg.out( _DebugLevel, 'api_jsonrpc_server._callMethod:\n%s' % pprint.pformat(request_dict)) request_dict['_executed'] = time.time() try: fm_result = self._catch_filemanager_methods(request_dict) if fm_result is None: result = JSONRPCServer._callMethod(self, request_dict) else: result = fm_result except JSONRPCError as exc: lg.err(exc.strerror) result = api.ERROR(exc.strerror) except Exception as exc: lg.exc() result = api.ERROR(str(traceback.format_exc()), message=exc.message) if isinstance(result, Deferred): result.addCallback( lambda result: self._register_execution(request_dict, result)) else: result = self._register_execution(request_dict, result) return result
def _catch_filemanager_methods(self, request_dict): if not request_dict['method'].startswith('filemanager_'): return None try: fm_method = request_dict['method'].replace('filemanager_', '') fm_request = {} params = [] if 'params' not in request_dict else request_dict[ 'params'] fm_request['params'] = { i[0]: i[1] for i in map(lambda p: p.split("=", 1), params) } fm_request['params']['mode'] = fm_method request_dict = { '_executed': time.time(), } except Exception as exc: lg.exc() return api.ERROR(exc.message) try: fm_result = api.filemanager(fm_request) if isinstance(fm_result, Deferred): fm_result.addCallback(self._convert_filemanager_response) else: fm_result = self._convert_filemanager_response(fm_result) except Exception as exc: lg.exc() fm_result = api.ERROR(exc.message) return fm_result
def not_found(self, request): return api.ERROR('method %s:%s is not found' % (request.method, request.path))
def identity_delete_v1(self, request): # TODO: to be implemented return api.ERROR('not implemented yet')
def identity_heal_v1(self, request): return api.ERROR('not implemented yet')
def zzz_not_found(self, request): """ This method is intended to return an error message when requested method was not found. Started with "zzz" because stuff is sorted alphabetically - so just to be able to put the regex on last place. """ return api.ERROR('method %s:%s was not found' % (request.method, request.path))