If a server returned an error in response to a request, transact_block() would ignore it.
Signed-off-by: Ethan Jackson <et...@nicira.com> --- python/ovs/jsonrpc.py | 5 ++++- tests/test-ovsdb.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/python/ovs/jsonrpc.py b/python/ovs/jsonrpc.py index 25b0229..1c3f099 100644 --- a/python/ovs/jsonrpc.py +++ b/python/ovs/jsonrpc.py @@ -301,7 +301,10 @@ class Connection(object): reply = None while not error: error, reply = self.recv_block() - if reply and reply.type == Message.T_REPLY and reply.id == id_: + if (reply + and (reply.type == Message.T_REPLY + or reply.type == Message.T_ERROR) + and reply.id == id_): break return error, reply diff --git a/tests/test-ovsdb.py b/tests/test-ovsdb.py index df29fdb..5f3cb99 100644 --- a/tests/test-ovsdb.py +++ b/tests/test-ovsdb.py @@ -375,6 +375,11 @@ def do_idl(schema_file, remote, *commands): sys.stderr.write("jsonrpc transaction failed: %s" % os.strerror(error)) sys.exit(1) + elif reply.error is not None: + sys.stderr.write("jsonrpc transaction failed: %s" + % reply.error) + sys.exit(1) + sys.stdout.write("%03d: " % step) sys.stdout.flush() step += 1 -- 1.7.9.2 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev