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

Reply via email to