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
Beispiel #3
0
 def not_found(self, request):
     return api.ERROR('method %s:%s is not found' %
                      (request.method, request.path))
Beispiel #4
0
 def identity_delete_v1(self, request):
     # TODO: to be implemented
     return api.ERROR('not implemented yet')
Beispiel #5
0
 def identity_heal_v1(self, request):
     return api.ERROR('not implemented yet')
Beispiel #6
0
 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))