[ovs-dev] [PATCH] ovsdb: Correct specification inconsistency between "lock" and "assert".

Ben Pfaff blp at nicira.com
Fri Aug 5 15:56:31 PDT 2011

The "lock" request requires the lock name to be an <id> but it is shown as
<string> in the "assert" operation.  This corrects the "assert"
specification and fixes the suggested naming convention (since ":" is not
valid in an <id>).

This commit also updates the implementation to match the specification.

Reported-by: Jeremy Stribling <strib at nicira.com>
 ovsdb/SPECS       |    4 ++--
 ovsdb/execution.c |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/ovsdb/SPECS b/ovsdb/SPECS
index e2898c2..5bdb974 100644
--- a/ovsdb/SPECS
+++ b/ovsdb/SPECS
@@ -682,7 +682,7 @@ The "locked" and "stolen" notifications (see below) report
 asynchronous changes to ownership.
 The scope of a lock is a database server, not a database hosted by
-that server.  A naming convention, such as "<db-name>:<lock-name>",
+that server.  A naming convention, such as "<db-name>__<lock-name>",
 can effectively limit the scope of a lock to a particular database.
@@ -1300,7 +1300,7 @@ assert
 Request object members:
     "op": "assert"                     required
-    "lock": <string>                   required
+    "lock": <id>                       required
 Result object members:
diff --git a/ovsdb/execution.c b/ovsdb/execution.c
index 9e3a8d0..675c1c3 100644
--- a/ovsdb/execution.c
+++ b/ovsdb/execution.c
@@ -719,7 +719,7 @@ ovsdb_execute_assert(struct ovsdb_execution *x, struct ovsdb_parser *parser,
     const struct json *lock_name;
-    lock_name = ovsdb_parser_member(parser, "lock", OP_STRING);
+    lock_name = ovsdb_parser_member(parser, "lock", OP_ID);
     if (!lock_name) {
         return NULL;

More information about the dev mailing list