Esempio n. 1
0
 def _ebRender(self, failure, id):
     if isinstance(failure.value, jsonrpclib.Fault):
         return failure.value
     log.err(failure)
     value = failure.value
     code = self._map_exception(type(value))
     return jsonrpclib.Fault(code, str(value))
Esempio n. 2
0
    def _cbRender(self, result, request, id, version):
        def default_decimal(obj):
            if isinstance(obj, Decimal):
                return float(obj)

        if isinstance(result, Handler):
            result = result.result

        if isinstance(result, dict):
            result = result['result']

        if version == jsonrpclib.VERSION_PRE1:
            if not isinstance(result, jsonrpclib.Fault):
                result = (result, )
            # Convert the result (python) to JSON-RPC
        try:
            s = jsonrpclib.dumps(result,
                                 version=version,
                                 default=default_decimal)
        except:
            f = jsonrpclib.Fault(self.FAILURE, "can't serialize output")
            s = jsonrpclib.dumps(f, version=version)
        request.setHeader("content-length", str(len(s)))
        request.write(s)
        request.finish()
Esempio n. 3
0
 def _getFunction(self, functionPath):
     try:
         return jsonrpc.JSONRPC._getFunction(self, functionPath)
     except jsonrpclib.NoSuchFunction:
         if functionPath.startswith("SESSION"):
             raise jsonrpclib.Fault(self.SESSION_EXPIRED,
                                    "Session non-existant/expired.")
         else:
             raise
Esempio n. 4
0
 def _cbRender(self, result, req_id):
     if not isinstance(result, jsonrpclib.Fault):
         result = (result, )
     try:
         s = jsonrpclib.dumps(result, id=req_id, version=self.version)
     except:
         f = jsonrpclib.Fault(self.FAILURE, "can't serialize output")
         s = jsonrpclib.dumps(f, id=req_id, version=self.version)
     return self.sendString(six.b(s))
Esempio n. 5
0
 def _cbRender(self, result):
     if not isinstance(result, jsonrpclib.Fault):
         result = (result, )
     #s = None
     #e = None
     try:
         s = jsonrpclib.dumps(result)
     except:
         f = jsonrpclib.Fault(self.FAILURE, "can't serialize output")
         #e = jsonrpclib.dumps(f)
         s = jsonrpclib.dumps(f)
     #result = {'result': result, 'error': e}
     #return self.sendString(jsonrpclib.dumps(result))
     return self.sendString(s)
Esempio n. 6
0
 def _cbRender(self, result, request, id, version):
     if isinstance(result, Handler):
         result = result.result
     if version == jsonrpclib.VERSION_PRE1:
         if not isinstance(result, jsonrpclib.Fault):
             result = (result,)
         # Convert the result (python) to JSON-RPC
     try:
         s = jsonrpclib.dumps(result, id=id, version=version) if not self.is_jsonp else "%s(%s)" %(self.callback,jsonrpclib.dumps(result, id=id, version=version))
     except:
         f = jsonrpclib.Fault(self.FAILURE, "can't serialize output")
         s = jsonrpclib.dumps(f, id=id, version=version) if not self.is_jsonp else "%s(%s)" %(self.callback,jsonrpclib.dumps(f, id=id, version=version))
     request.setHeader("content-length", str(len(s)))
     request.write(s)
     request.finish()
Esempio n. 7
0
 def jsonrpc_deferFault(self):
     return defer.fail(jsonrpclib.Fault(17, "hi"))
Esempio n. 8
0
 def jsonrpc_fault(self):
     return jsonrpclib.Fault(12, "hello")
Esempio n. 9
0
 def _ebRender(self, failure, id):
     if isinstance(failure.value, jsonrpclib.Fault):
         return failure.value
     log.err(failure)
     return jsonrpclib.Fault(self.FAILURE, "error")