[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