[ovs-dev] [PATCH] ovs-vsctl: Make "ovs-vsctl get <table> <record> _uuid" work.

Ben Pfaff blp at nicira.com
Thu Jun 24 23:06:13 UTC 2010


Requested-by: Sean Brady <sbrady at gtfservices.com>
---
 tests/ovs-vsctl.at    |    3 ++-
 utilities/ovs-vsctl.c |    9 +++++++++
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
index a8deb1a..2923649 100644
--- a/tests/ovs-vsctl.at
+++ b/tests/ovs-vsctl.at
@@ -567,7 +567,7 @@ OVS_VSCTL_SETUP
 AT_CHECK([RUN_OVS_VSCTL([create b name=br0])], 
   [0], [stdout], [], [OVS_VSCTL_CLEANUP])
 cp stdout out1
-AT_CHECK([RUN_OVS_VSCTL([list b])], 
+AT_CHECK([RUN_OVS_VSCTL([list b], [get b br0 _uuid])], 
   [0], [stdout], [], [OVS_VSCTL_CLEANUP])
 cp stdout out2
 AT_CHECK([perl $srcdir/uuidfilt.pl out1 out2], [0], 
@@ -584,6 +584,7 @@ netflow             : []
 other_config        : {}
 ports               : []
 sflow               : []
+<0>
 ]], [ignore], [test ! -e pid || kill `cat pid`])
 AT_CHECK(
   [RUN_OVS_VSCTL(
diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c
index 9d34267..2f78a53 100644
--- a/utilities/ovs-vsctl.c
+++ b/utilities/ovs-vsctl.c
@@ -2209,6 +2209,15 @@ cmd_get(struct vsctl_context *ctx)
         struct ovsdb_datum datum;
         char *key_string;
 
+        /* Special case for obtaining the UUID of a row.  We can't just do this
+         * through parse_column_key_value() below since it returns a "struct
+         * ovsdb_idl_column" and the UUID column doesn't have one. */
+        if (!strcasecmp(ctx->argv[i], "_uuid")
+            || !strcasecmp(ctx->argv[i], "-uuid")) {
+            ds_put_format(out, UUID_FMT"\n", UUID_ARGS(&row->uuid));
+            continue;
+        }
+
         die_if_error(parse_column_key_value(ctx->argv[i], table,
                                             &column, &key_string, NULL));
 
-- 
1.7.1





More information about the dev mailing list