ovsdb-server: Make database command-line argument optional.
authorBen Pfaff <blp@nicira.com>
Tue, 26 Jul 2011 16:53:49 +0000 (09:53 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 26 Jul 2011 23:50:08 +0000 (16:50 -0700)
In practice the default location is the only one used, so we might as well
make it easier.

INSTALL.Linux
ovsdb/ovsdb-server.1.in
ovsdb/ovsdb-server.c

index c7e4ed97d49aa356a019166aad0516ea351de519..6442fcc9bb0ebf2d526556245f62c7f574ba102b 100644 (file)
@@ -268,13 +268,12 @@ installation, above, to listen on a Unix domain socket, to connect to
 any managers specified in the database itself, and to use the SSL
 configuration in the database:
 
-      % ovsdb-server /usr/local/etc/openvswitch/conf.db \
-                      --remote=punix:/usr/local/var/run/openvswitch/db.sock \
-                      --remote=db:Open_vSwitch,manager_options \
-                      --private-key=db:SSL,private_key \
-                      --certificate=db:SSL,certificate \
-                      --bootstrap-ca-cert=db:SSL,ca_cert \
-                      --pidfile --detach
+      % ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
+                     --remote=db:Open_vSwitch,manager_options \
+                     --private-key=db:SSL,private_key \
+                     --certificate=db:SSL,certificate \
+                     --bootstrap-ca-cert=db:SSL,ca_cert \
+                     --pidfile --detach
 
 (If you built Open vSwitch without SSL support, then omit
 --private-key, --certificate, and --bootstrap-ca-cert.)
index 6100c4d5ba2158fecb0204e5df53133dbfa4720f..9e2d79aaed49c8bc38074a2b14dfee1275063a31 100644 (file)
@@ -10,7 +10,7 @@ ovsdb\-server \- Open vSwitch database server
 .
 .SH SYNOPSIS
 \fBovsdb\-server\fR
-\fIdatabase\fR
+[\fIdatabase\fR]
 [\fB\-\-remote=\fIremote\fR]\&...
 [\fB\-\-run=\fIcommand\fR]
 .so lib/daemon-syn.man
@@ -25,9 +25,10 @@ The \fBovsdb\-server\fR program provides RPC interfaces to an Open
 vSwitch database (OVSDB).  It supports JSON-RPC client connections
 over active or passive TCP/IP or Unix domain sockets.
 .PP
-The name of the OVSDB file must be specified on the command line as
-\fIdatabase\fR, which must already have been created and initialized
-using, for example, \fBovsdb\-tool create\fR.
+The OVSDB file may be specified on the command line as \fIdatabase\fR.
+The default is \fB@sysconfdir@/openvswitch/conf.db\fR.  The database
+file must already have been created and initialized using, for
+example, \fBovsdb\-tool create\fR.
 .
 .SH OPTIONS
 .
index 5477e8680b979bd7ba51a91e83ab1d57b9862814..9c01c4e4a5e7af3465bf6abcb2af6e451d3c50dd 100644 (file)
@@ -25,6 +25,7 @@
 #include "column.h"
 #include "command-line.h"
 #include "daemon.h"
+#include "dirs.h"
 #include "file.h"
 #include "json.h"
 #include "jsonrpc.h"
@@ -105,6 +106,7 @@ main(int argc, char *argv[])
     if (error) {
         ovs_fatal(0, "%s", ovsdb_error_to_string(error));
     }
+    free(file_name);
 
     jsonrpc = ovsdb_jsonrpc_server_create(db);
     reconfigure_from_db(jsonrpc, db, &remotes);
@@ -738,14 +740,19 @@ parse_options(int argc, char *argv[], char **file_namep,
     argc -= optind;
     argv += optind;
 
-    if (argc > 1) {
+    switch (argc) {
+    case 0:
+        *file_namep = xasprintf("%s/openvswitch/conf.db", ovs_sysconfdir());
+        break;
+
+    case 1:
+        *file_namep = xstrdup(argv[0]);
+        break;
+
+    default:
         ovs_fatal(0, "database file is only non-option argument; "
                 "use --help for usage");
-    } else if (argc < 1) {
-        ovs_fatal(0, "missing database file argument; use --help for usage");
     }
-
-    *file_namep = argv[0];
 }
 
 static void