def _callMethod(self, methodName, *args, **kwargs): try: method = _COMMAND_CONVERTER[methodName] except KeyError as e: raise Exception("Attempt to call function: %s with " "arguments: %s error: %s" % (methodName, args, e)) class_name, method_name = method.split('.') params = self._prepare_args(class_name, method_name, args, kwargs) timeout = kwargs.pop('_transport_timeout', CALL_TIMEOUT) req = JsonRpcRequest(method, params, reqId=str(uuid4())) responses = self._client.call(req, timeout=timeout) if responses: resp = responses[0] else: raise JsonRpcNoResponseError(method) if resp.error is not None: return response.error_raw(resp.error["code"], resp.error["message"]) if not self._xml_compat: return response.success_raw(resp.result) if resp.result and resp.result is not True: # None is translated to True inside our JSONRPC implementation return response.success(**resp.result) return response.success()
def _callMethod(self, methodName, *args, **kwargs): try: method = _COMMAND_CONVERTER[methodName] except KeyError as e: raise Exception("Attempt to call function: %s with " "arguments: %s error: %s" % (methodName, args, e)) class_name, method_name = method.split('.') params = self._prepare_args(class_name, method_name, args, kwargs) req = JsonRpcRequest(method, params, reqId=str(uuid4())) responses = self._client.call( req, timeout=self._timeouts.get( method_name, kwargs.pop('_transport_timeout', self._default_timeout))) if responses: resp = responses[0] else: raise JsonRpcNoResponseError(method) if resp.error is not None: return response.error_raw(resp.error["code"], resp.error["message"]) if not self._xml_compat: return response.success_raw(resp.result) if resp.result and resp.result is not True: # None is translated to True inside our JSONRPC implementation if isinstance(resp.result, list): return response.success(items=resp.result) elif isinstance(resp.result, six.string_types): return response.success(resp.result) else: return response.success(**resp.result) return response.success()
def _callMethod(self, methodName, *args): try: method = _COMMAND_CONVERTER[methodName] except KeyError as e: raise Exception("Attempt to call function: %s with " "arguments: %s error: %s" % (methodName, args, e)) req = JsonRpcRequest(method, args, reqId=str(uuid4())) responses = self._client.call(req) if responses: resp = responses[0] else: raise JsonRpcNoResponseError(method) if resp.error is not None: return response.error_raw(resp.error["code"], resp.error["message"]) if resp.result and resp.result is not True: # None is translated to True inside our JSONRPC implementation return response.success(**resp.result) return response.success()