rpc/client: move exception rising on error to client.call method

Client might wan't to handle error response on it's own. To keep
compatibility with legacy code we need to move exception rising to call
method.

Change-Id: I8a07e7556424e87ee10fa9332100a9a10abe05d8
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/449314
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Pawel Wodkowski 2019-03-27 11:57:28 +01:00 committed by Ben Walker
parent 3a5abc63b8
commit cdc8f83f26

View File

@ -133,18 +133,13 @@ class JSONRPCClient(object):
raise JSONRPCException("Timeout while waiting for response:\n%s\n" % self._recv_buf) raise JSONRPCException("Timeout while waiting for response:\n%s\n" % self._recv_buf)
self._logger.info("response:\n%s\n", json.dumps(response, indent=2)) self._logger.info("response:\n%s\n", json.dumps(response, indent=2))
if 'error' in response:
msg = "\n".join(["Got JSON-RPC error response",
"response:",
json.dumps(response['error'], indent=2)])
raise JSONRPCException(msg)
return response return response
def call(self, method, params=None): def call(self, method, params=None):
self._logger.debug("call('%s')" % method) self._logger.debug("call('%s')" % method)
self.send(method, params) self.send(method, params)
try: try:
return self.recv()['result'] response = self.recv()
except JSONRPCException as e: except JSONRPCException as e:
""" Don't expect response to kill """ """ Don't expect response to kill """
if not self.sock and method == "kill_instance": if not self.sock and method == "kill_instance":
@ -152,3 +147,11 @@ class JSONRPCClient(object):
return {} return {}
else: else:
raise e raise e
if 'error' in response:
msg = "\n".join(["Got JSON-RPC error response",
"response:",
json.dumps(response['error'], indent=2)])
raise JSONRPCException(msg)
return response['result']