From: Ben Pfaff Date: Thu, 24 Jun 2010 23:06:07 +0000 (-0700) Subject: ovs-vsctl: Make "ovs-vsctl get _uuid" work. X-Git-Tag: v1.1.0pre1~222 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f40a9b61e2b758e60a38fc706d7d1253ef59a23d;p=sliver-openvswitch.git ovs-vsctl: Make "ovs-vsctl get
_uuid" work. Requested-by: Sean Brady --- diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at index a8deb1a84..2923649ad 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 9d34267b9..2f78a53bc 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));