Thank you.  I pushed this to master.

On Tue, Jan 10, 2012 at 06:15:34PM -0800, Ethan Jackson wrote:
> Looks good.
> 
> Ethan
> 
> On Wed, Nov 30, 2011 at 14:09, Ben Pfaff <b...@nicira.com> wrote:
> > This makes ovsdb-tool easier to use in the common case.
> >
> > Requested-by: Reid Price <r...@nicira.com>
> > Feature #7756.
> > ---
> > ?NEWS ? ? ? ? ? ? ? ? ?| ? ?3 +-
> > ?ovsdb/ovsdb-tool.1.in | ? 28 ++++++-----
> > ?ovsdb/ovsdb-tool.c ? ?| ?129 
> > +++++++++++++++++++++++++++++++------------------
> > ?3 files changed, 99 insertions(+), 61 deletions(-)
> >
> > diff --git a/NEWS b/NEWS
> > index 33732ff..a527d7d 100644
> > --- a/NEWS
> > +++ b/NEWS
> > @@ -23,7 +23,8 @@ post-v1.3.0
> > ? ? ? ? and connectivity issues. This tool currently is not included in RH 
> > or
> > ? ? ? ? Xen packages.
> > ? ? - RHEL packaging now supports integration with Red Hat network scripts.
> > -
> > + ? ?- ovsdb-tool now uses the typical database and schema installation
> > + ? ? ?directories as defaults.
> >
> > ?v1.3.0 - xx xxx xxxx
> > ?------------------------
> > diff --git a/ovsdb/ovsdb-tool.1.in b/ovsdb/ovsdb-tool.1.in
> > index 16b8b1f..c440e0d 100644
> > --- a/ovsdb/ovsdb-tool.1.in
> > +++ b/ovsdb/ovsdb-tool.1.in
> > @@ -12,28 +12,28 @@
> > ?ovsdb\-tool \- Open vSwitch database management utility
> > ?.
> > ?.SH SYNOPSIS
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBcreate\fI db schema\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBcreate \fR[\fIdb\fR [\fIschema\fR]]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBcompact \fIdb \fR[\fItarget\fR]
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBcompact \fR[\fIdb\fR [\fItarget\fR]]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBconvert\fI db schema
> > -\fR[\fItarget\fR]
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBconvert \fR[\fIdb\fR [\fIschema
> > +\fR[\fItarget\fR]]]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBneeds\-conversion\fI db schema\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBneeds\-conversion \fR[\fIdb\fR 
> > [\fIschema\fR]]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-version\fI db\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-version \fR[\fIdb\fR]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-version\fI schema\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-version \fR[\fIschema\fR]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-cksum\fI db\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBdb\-cksum \fR[\fIdb\fR]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-cksum\fI schema\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBschema\-cksum \fR[\fIschema\fR]
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBquery\fI db transaction\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBquery \fR[\fIdb\fR] \fItransaction\fR
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] \fBtransact\fI db transaction\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] \fBtransact \fR[\fIdb\fR] 
> > \fItransaction\fR
> > ?.br
> > -\fBovsdb\-tool \fR[\fIoptions\fR] [\fB\-m\fR | \fB\-\-more\fR]... 
> > \fBshow\-log\fI db\fR
> > +\fBovsdb\-tool \fR[\fIoptions\fR] [\fB\-m\fR | \fB\-\-more\fR]... 
> > \fBshow\-log \fR[\fIdb\fR]
> > ?.br
> > ?\fBovsdb\-tool help\fR
> > ?.so lib/vlog-syn.man
> > @@ -147,6 +147,10 @@ record.
> > ?.so lib/vlog.man
> > ?.SS "Other Options"
> > ?.so lib/common.man
> > +.SH "FILES"
> > +The default \fIdb\fR is \fB@sysconfdir@/openvswitch/conf.db\fR. ?The
> > +default \fIschema\fR is \fB@pkgdatadir@/vswitch.ovsschema\fR. ?The
> > +\fBhelp\fR command also displays these defaults.
> > ?.SH "SEE ALSO"
> > ?.
> > ?\fBovsdb\-server\fR(1),
> > diff --git a/ovsdb/ovsdb-tool.c b/ovsdb/ovsdb-tool.c
> > index 015ee12..ad8cece 100644
> > --- a/ovsdb/ovsdb-tool.c
> > +++ b/ovsdb/ovsdb-tool.c
> > @@ -25,6 +25,7 @@
> > ?#include "column.h"
> > ?#include "command-line.h"
> > ?#include "compiler.h"
> > +#include "dirs.h"
> > ?#include "dynamic-string.h"
> > ?#include "file.h"
> > ?#include "lockfile.h"
> > @@ -49,6 +50,9 @@ static const struct command all_commands[];
> > ?static void usage(void) NO_RETURN;
> > ?static void parse_options(int argc, char *argv[]);
> >
> > +static const char *default_db(void);
> > +static const char *default_schema(void);
> > +
> > ?int
> > ?main(int argc, char *argv[])
> > ?{
> > @@ -110,17 +114,19 @@ usage(void)
> > ?{
> > ? ? printf("%s: Open vSwitch database management utility\n"
> > ? ? ? ? ? ?"usage: %s [OPTIONS] COMMAND [ARG...]\n"
> > - ? ? ? ? ? " ?create DB SCHEMA ? create DB with the given SCHEMA\n"
> > - ? ? ? ? ? " ?compact DB [DST] ? compact DB in-place (or to DST)\n"
> > - ? ? ? ? ? " ?convert DB SCHEMA [DST] ? convert DB to SCHEMA (to DST)\n"
> > - ? ? ? ? ? " ?db-version DB ? ? ?report version of schema used by DB\n"
> > - ? ? ? ? ? " ?db-cksum DB ? ? ? ?report checksum of schema used by DB\n"
> > - ? ? ? ? ? " ?schema-version SCHEMA ?report SCHEMA's schema version\n"
> > - ? ? ? ? ? " ?schema-cksum SCHEMA ?report SCHEMA's checksum\n"
> > - ? ? ? ? ? " ?query DB TRNS ? ? ?execute read-only transaction on DB\n"
> > - ? ? ? ? ? " ?transact DB TRNS ? execute read/write transaction on DB\n"
> > - ? ? ? ? ? " ?show-log DB ? ? ? ?prints information about DB's log 
> > entries\n",
> > - ? ? ? ? ? program_name, program_name);
> > + ? ? ? ? ? " ?create [DB [SCHEMA]] ? ?create DB with the given SCHEMA\n"
> > + ? ? ? ? ? " ?compact [DB [DST]] ? ? ?compact DB in-place (or to DST)\n"
> > + ? ? ? ? ? " ?convert [DB [SCHEMA [DST]]] ? convert DB to SCHEMA (to 
> > DST)\n"
> > + ? ? ? ? ? " ?db-version [DB] ? ? ? ? report version of schema used by 
> > DB\n"
> > + ? ? ? ? ? " ?db-cksum [DB] ? ? ? ? ? report checksum of schema used by 
> > DB\n"
> > + ? ? ? ? ? " ?schema-version [SCHEMA] report SCHEMA's schema version\n"
> > + ? ? ? ? ? " ?schema-cksum [SCHEMA] ? report SCHEMA's checksum\n"
> > + ? ? ? ? ? " ?query [DB] TRNS ? ? ? ? execute read-only transaction on 
> > DB\n"
> > + ? ? ? ? ? " ?transact [DB] TRNS ? ? ?execute read/write transaction on 
> > DB\n"
> > + ? ? ? ? ? " ?[-m]... show-log [DB] ? print DB's log entries\n"
> > + ? ? ? ? ? "The default DB is %s.\n"
> > + ? ? ? ? ? "The default SCHEMA is %s.\n",
> > + ? ? ? ? ? program_name, program_name, default_db(), default_schema());
> > ? ? vlog_usage();
> > ? ? printf("\nOther options:\n"
> > ? ? ? ? ? ?" ?-m, --more ? ? ? ? ? ? ? ? ?increase show-log verbosity\n"
> > @@ -128,6 +134,26 @@ usage(void)
> > ? ? ? ? ? ?" ?-V, --version ? ? ? ? ? ? ? display version information\n");
> > ? ? exit(EXIT_SUCCESS);
> > ?}
> > +
> > +static const char *
> > +default_db(void)
> > +{
> > + ? ?static char *db;
> > + ? ?if (!db) {
> > + ? ? ? ?db = xasprintf("%s/conf.db", ovs_sysconfdir());
> > + ? ?}
> > + ? ?return db;
> > +}
> > +
> > +static const char *
> > +default_schema(void)
> > +{
> > + ? ?static char *schema;
> > + ? ?if (!schema) {
> > + ? ? ? ?schema = xasprintf("%s/vswitch.ovsschema", ovs_pkgdatadir());
> > + ? ?}
> > + ? ?return schema;
> > +}
> >
> > ?static struct json *
> > ?parse_json(const char *s)
> > @@ -157,10 +183,10 @@ check_ovsdb_error(struct ovsdb_error *error)
> > ?}
> >
> > ?static void
> > -do_create(int argc OVS_UNUSED, char *argv[])
> > +do_create(int argc, char *argv[])
> > ?{
> > - ? ?const char *db_file_name = argv[1];
> > - ? ?const char *schema_file_name = argv[2];
> > + ? ?const char *db_file_name = argc >= 2 ? argv[1] : default_db();
> > + ? ?const char *schema_file_name = argc >= 3 ? argv[2] : default_schema();
> > ? ? struct ovsdb_schema *schema;
> > ? ? struct ovsdb_log *log;
> > ? ? struct json *json;
> > @@ -229,29 +255,34 @@ compact_or_convert(const char *src_name, const char 
> > *dst_name,
> > ?}
> >
> > ?static void
> > -do_compact(int argc OVS_UNUSED, char *argv[])
> > +do_compact(int argc, char *argv[])
> > ?{
> > - ? ?compact_or_convert(argv[1], argv[2], NULL,
> > + ? ?const char *db = argc >= 2 ? argv[1] : default_db();
> > + ? ?const char *target = argc >= 3 ? argv[2] : NULL;
> > +
> > + ? ?compact_or_convert(db, target, NULL,
> > ? ? ? ? ? ? ? ? ? ? ? ?"compacted by ovsdb-tool "VERSION BUILDNR);
> > ?}
> >
> > ?static void
> > -do_convert(int argc OVS_UNUSED, char *argv[])
> > +do_convert(int argc, char *argv[])
> > ?{
> > - ? ?const char *schema_file_name = argv[2];
> > + ? ?const char *db = argc >= 2 ? argv[1] : default_db();
> > + ? ?const char *schema = argc >= 3 ? argv[2] : default_schema();
> > + ? ?const char *target = argc >= 4 ? argv[3] : NULL;
> > ? ? struct ovsdb_schema *new_schema;
> >
> > - ? ?check_ovsdb_error(ovsdb_schema_from_file(schema_file_name, 
> > &new_schema));
> > - ? ?compact_or_convert(argv[1], argv[3], new_schema,
> > + ? ?check_ovsdb_error(ovsdb_schema_from_file(schema, &new_schema));
> > + ? ?compact_or_convert(db, target, new_schema,
> > ? ? ? ? ? ? ? ? ? ? ? ?"converted by ovsdb-tool "VERSION BUILDNR);
> > ? ? ovsdb_schema_destroy(new_schema);
> > ?}
> >
> > ?static void
> > -do_needs_conversion(int argc OVS_UNUSED, char *argv[])
> > +do_needs_conversion(int argc, char *argv[])
> > ?{
> > - ? ?const char *db_file_name = argv[1];
> > - ? ?const char *schema_file_name = argv[2];
> > + ? ?const char *db_file_name = argc >= 2 ? argv[1] : default_db();
> > + ? ?const char *schema_file_name = argc >= 3 ? argv[2] : default_schema();
> > ? ? struct ovsdb_schema *schema1, *schema2;
> >
> > ? ? check_ovsdb_error(ovsdb_file_read_schema(db_file_name, &schema1));
> > @@ -262,9 +293,9 @@ do_needs_conversion(int argc OVS_UNUSED, char *argv[])
> > ?}
> >
> > ?static void
> > -do_db_version(int argc OVS_UNUSED, char *argv[])
> > +do_db_version(int argc, char *argv[])
> > ?{
> > - ? ?const char *db_file_name = argv[1];
> > + ? ?const char *db_file_name = argc >= 2 ? argv[1] : default_db();
> > ? ? struct ovsdb_schema *schema;
> >
> > ? ? check_ovsdb_error(ovsdb_file_read_schema(db_file_name, &schema));
> > @@ -275,7 +306,7 @@ do_db_version(int argc OVS_UNUSED, char *argv[])
> > ?static void
> > ?do_db_cksum(int argc OVS_UNUSED, char *argv[])
> > ?{
> > - ? ?const char *db_file_name = argv[1];
> > + ? ?const char *db_file_name = argc >= 2 ? argv[1] : default_db();
> > ? ? struct ovsdb_schema *schema;
> >
> > ? ? check_ovsdb_error(ovsdb_file_read_schema(db_file_name, &schema));
> > @@ -284,9 +315,9 @@ do_db_cksum(int argc OVS_UNUSED, char *argv[])
> > ?}
> >
> > ?static void
> > -do_schema_version(int argc OVS_UNUSED, char *argv[])
> > +do_schema_version(int argc, char *argv[])
> > ?{
> > - ? ?const char *schema_file_name = argv[1];
> > + ? ?const char *schema_file_name = argc >= 2 ? argv[1] : default_schema();
> > ? ? struct ovsdb_schema *schema;
> >
> > ? ? check_ovsdb_error(ovsdb_schema_from_file(schema_file_name, &schema));
> > @@ -295,9 +326,9 @@ do_schema_version(int argc OVS_UNUSED, char *argv[])
> > ?}
> >
> > ?static void
> > -do_schema_cksum(int argc OVS_UNUSED, char *argv[])
> > +do_schema_cksum(int argc, char *argv[])
> > ?{
> > - ? ?const char *schema_file_name = argv[1];
> > + ? ?const char *schema_file_name = argc >= 2 ? argv[1] : default_schema();
> > ? ? struct ovsdb_schema *schema;
> >
> > ? ? check_ovsdb_error(ovsdb_schema_from_file(schema_file_name, &schema));
> > @@ -306,8 +337,10 @@ do_schema_cksum(int argc OVS_UNUSED, char *argv[])
> > ?}
> >
> > ?static void
> > -transact(bool read_only, const char *db_file_name, const char *transaction)
> > +transact(bool read_only, int argc, char *argv[])
> > ?{
> > + ? ?const char *db_file_name = argc >= 3 ? argv[1] : default_db();
> > + ? ?const char *transaction = argv[argc - 1];
> > ? ? struct json *request, *result;
> > ? ? struct ovsdb *db;
> >
> > @@ -322,15 +355,15 @@ transact(bool read_only, const char *db_file_name, 
> > const char *transaction)
> > ?}
> >
> > ?static void
> > -do_query(int argc OVS_UNUSED, char *argv[])
> > +do_query(int argc, char *argv[])
> > ?{
> > - ? ?transact(true, argv[1], argv[2]);
> > + ? ?transact(true, argc, argv);
> > ?}
> >
> > ?static void
> > -do_transact(int argc OVS_UNUSED, char *argv[])
> > +do_transact(int argc, char *argv[])
> > ?{
> > - ? ?transact(false, argv[1], argv[2]);
> > + ? ?transact(false, argc, argv);
> > ?}
> >
> > ?static void
> > @@ -444,9 +477,9 @@ print_db_changes(struct shash *tables, struct shash 
> > *names,
> > ?}
> >
> > ?static void
> > -do_show_log(int argc OVS_UNUSED, char *argv[])
> > +do_show_log(int argc, char *argv[])
> > ?{
> > - ? ?const char *db_file_name = argv[1];
> > + ? ?const char *db_file_name = argc >= 2 ? argv[1] : default_db();
> > ? ? struct shash names;
> > ? ? struct ovsdb_log *log;
> > ? ? struct ovsdb_schema *schema;
> > @@ -507,17 +540,17 @@ do_help(int argc OVS_UNUSED, char *argv[] OVS_UNUSED)
> > ?}
> >
> > ?static const struct command all_commands[] = {
> > - ? ?{ "create", 2, 2, do_create },
> > - ? ?{ "compact", 1, 2, do_compact },
> > - ? ?{ "convert", 2, 3, do_convert },
> > - ? ?{ "needs-conversion", 2, 2, do_needs_conversion },
> > - ? ?{ "db-version", 1, 1, do_db_version },
> > - ? ?{ "db-cksum", 1, 1, do_db_cksum },
> > - ? ?{ "schema-version", 1, 1, do_schema_version },
> > - ? ?{ "schema-cksum", 1, 1, do_schema_cksum },
> > - ? ?{ "query", 2, 2, do_query },
> > - ? ?{ "transact", 2, 2, do_transact },
> > - ? ?{ "show-log", 1, 1, do_show_log },
> > + ? ?{ "create", 0, 2, do_create },
> > + ? ?{ "compact", 0, 2, do_compact },
> > + ? ?{ "convert", 0, 3, do_convert },
> > + ? ?{ "needs-conversion", 0, 2, do_needs_conversion },
> > + ? ?{ "db-version", 0, 1, do_db_version },
> > + ? ?{ "db-cksum", 0, 1, do_db_cksum },
> > + ? ?{ "schema-version", 0, 1, do_schema_version },
> > + ? ?{ "schema-cksum", 0, 1, do_schema_cksum },
> > + ? ?{ "query", 1, 2, do_query },
> > + ? ?{ "transact", 1, 2, do_transact },
> > + ? ?{ "show-log", 0, 1, do_show_log },
> > ? ? { "help", 0, INT_MAX, do_help },
> > ? ? { NULL, 0, 0, NULL },
> > ?};
> > --
> > 1.7.2.5
> >
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to