Make the location of the database separately configurable.
authorBen Pfaff <blp@nicira.com>
Fri, 27 Jul 2012 22:52:21 +0000 (15:52 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 1 Aug 2012 17:55:57 +0000 (10:55 -0700)
The default is unchanged, /etc/openvswitch/conf.db.

This makes it possible to transition each Open vSwitch packaging from
/etc/openvswitch/conf.db to /var/lib/openvswitch/conf.db independently.

Signed-off-by: Ben Pfaff <blp@nicira.com>
22 files changed:
Makefile.am
configure.ac
lib/automake.mk
lib/dirs.c.in
lib/dirs.h
m4/openvswitch.m4
ovsdb/ovsdb-server.1.in
ovsdb/ovsdb-server.c
ovsdb/ovsdb-tool.1.in
ovsdb/ovsdb-tool.c
python/automake.mk
python/ovs/dirs.py
tests/ofproto-macros.at
tests/ovs-monitor-ipsec.at
tests/ovs-xapi-sync.at
tests/unixctl-py.at
tests/vlog.at
utilities/bugtool/ovs-bugtool.in
utilities/bugtool/plugins/system-logs/openvswitch.xml
utilities/ovs-ctl.8
utilities/ovs-ctl.in
utilities/ovs-lib.in

index 9cad47b..1b14871 100644 (file)
@@ -108,6 +108,7 @@ SUFFIXES += .in
            sed \
                -e 's,[@]PKIDIR[@],$(PKIDIR),g' \
                 -e 's,[@]LOGDIR[@],$(LOGDIR),g' \
+                -e 's,[@]DBDIR[@],$(DBDIR),g' \
                 -e 's,[@]PERL[@],$(PERL),g' \
                 -e 's,[@]PYTHON[@],$(PYTHON),g' \
                 -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
index b18b259..9bdffea 100644 (file)
@@ -62,6 +62,7 @@ AC_CHECK_HEADERS([mntent.h sys/statvfs.h linux/types.h])
 
 OVS_CHECK_PKIDIR
 OVS_CHECK_RUNDIR
+OVS_CHECK_DBDIR
 OVS_CHECK_BACKTRACE
 OVS_CHECK_MALLOC_HOOKS
 OVS_CHECK_VALGRIND
index ed7db7c..8180517 100644 (file)
@@ -313,6 +313,7 @@ lib/dirs.c: lib/dirs.c.in Makefile
                -e 's,[@]srcdir[@],$(srcdir),g' \
                -e 's,[@]LOGDIR[@],"$(LOGDIR)",g' \
                -e 's,[@]RUNDIR[@],"$(RUNDIR)",g' \
+               -e 's,[@]DBDIR[@],"$(DBDIR)",g' \
                -e 's,[@]bindir[@],"$(bindir)",g' \
                -e 's,[@]sysconfdir[@],"$(sysconfdir)",g' \
                -e 's,[@]pkgdatadir[@],"$(pkgdatadir)",g') \
@@ -338,6 +339,7 @@ lib-install-data-local:
        $(MKDIR_P) $(DESTDIR)$(RUNDIR)
        $(MKDIR_P) $(DESTDIR)$(PKIDIR)
        $(MKDIR_P) $(DESTDIR)$(LOGDIR)
+       $(MKDIR_P) $(DESTDIR)$(DBDIR)
 
 if !USE_LINKER_SECTIONS
 # All distributed sources, with names adjust properly for referencing
index a5d9f31..2b998b9 100644 (file)
@@ -1,6 +1,6 @@
 #line 2 "@srcdir@/lib/dirs.c.in"
 /*
- * Copyright (c) 2008, 2009, 2010, 2011 Nicira, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -65,6 +65,13 @@ ovs_logdir(void)
     return get_dir(&d);
 }
 
+const char *
+ovs_dbdir(void)
+{
+    static struct directory d = { NULL, @DBDIR@, "OVS_DBDIR" };
+    return get_dir(&d);
+}
+
 const char *
 ovs_bindir(void)
 {
index 6b4d1ce..811a51f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009, 2010, 2011 Nicira, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@ const char *ovs_sysconfdir(void); /* /usr/local/etc */
 const char *ovs_pkgdatadir(void); /* /usr/local/share/openvswitch */
 const char *ovs_rundir(void);     /* /usr/local/var/run/openvswitch */
 const char *ovs_logdir(void);     /* /usr/local/var/log/openvswitch */
+const char *ovs_dbdir(void);      /* /usr/local/etc/openvswitch */
 const char *ovs_bindir(void);     /* /usr/local/bin */
 
 #endif /* dirs.h */
index eca6010..939f296 100644 (file)
@@ -132,6 +132,16 @@ AC_DEFUN([OVS_CHECK_LOGDIR],
      [LOGDIR='${localstatedir}/log/${PACKAGE}'])
    AC_SUBST([LOGDIR])])
 
+dnl Checks for the directory in which to store the Open vSwitch database.
+AC_DEFUN([OVS_CHECK_DBDIR],
+  [AC_ARG_WITH(
+     [dbdir],
+     AC_HELP_STRING([--with-dbdir=DIR],
+                    [directory used for conf.db [[SYSCONFDIR/PACKAGE]]]),
+     [DBDIR=$withval],
+     [DBDIR='${sysconfdir}/${PACKAGE}'])
+   AC_SUBST([DBDIR])])
+
 dnl Defines HAVE_BACKTRACE if backtrace() is declared in <execinfo.h>
 dnl and exists in libc.
 AC_DEFUN([OVS_CHECK_BACKTRACE],
index 4236f8f..1f5be03 100644 (file)
@@ -26,7 +26,7 @@ vSwitch database (OVSDB).  It supports JSON-RPC client connections
 over active or passive TCP/IP or Unix domain sockets.
 .PP
 The OVSDB file may be specified on the command line as \fIdatabase\fR.
-The default is \fB@sysconfdir@/openvswitch/conf.db\fR.  The database
+The default is \fB@DBDIR@/conf.db\fR.  The database
 file must already have been created and initialized using, for
 example, \fBovsdb\-tool create\fR.
 .
index 139acc6..6c68e50 100644 (file)
@@ -808,7 +808,7 @@ parse_options(int argc, char *argv[], char **file_namep,
 
     switch (argc) {
     case 0:
-        *file_namep = xasprintf("%s/openvswitch/conf.db", ovs_sysconfdir());
+        *file_namep = xasprintf("%s/conf.db", ovs_dbdir());
         break;
 
     case 1:
index c440e0d..9d32844 100644 (file)
@@ -148,7 +148,7 @@ record.
 .SS "Other Options"
 .so lib/common.man
 .SH "FILES"
-The default \fIdb\fR is \fB@sysconfdir@/openvswitch/conf.db\fR.  The
+The default \fIdb\fR is \fB@DBDIR@/conf.db\fR.  The
 default \fIschema\fR is \fB@pkgdatadir@/vswitch.ovsschema\fR.  The
 \fBhelp\fR command also displays these defaults.
 .SH "SEE ALSO"
index f5412f3..4959478 100644 (file)
@@ -140,7 +140,7 @@ default_db(void)
 {
     static char *db;
     if (!db) {
-        db = xasprintf("%s/conf.db", ovs_sysconfdir());
+        db = xasprintf("%s/conf.db", ovs_dbdir());
     }
     return db;
 }
index b656f08..3cd6e1e 100644 (file)
@@ -47,6 +47,7 @@ ovs-install-data-local:
         echo 'PKGDATADIR = os.environ.get("OVS_PKGDATADIR", """$(pkgdatadir)""")' && \
         echo 'RUNDIR = os.environ.get("OVS_RUNDIR", """@RUNDIR@""")' && \
         echo 'LOGDIR = os.environ.get("OVS_LOGDIR", """@LOGDIR@""")' && \
+        echo 'DBDIR = os.environ.get("OVS_DBDIR", """@DBDIR@""")' && \
         echo 'BINDIR = os.environ.get("OVS_BINDIR", """$(bindir)""")') \
                > python/ovs/dirs.py.tmp
        $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/python/ovs
index 5b006cc..a5717fc 100644 (file)
@@ -5,4 +5,5 @@ import os
 PKGDATADIR = os.environ.get("OVS_PKGDATADIR", "/usr/local/share/openvswitch")
 RUNDIR = os.environ.get("OVS_RUNDIR", "/var/run")
 LOGDIR = os.environ.get("OVS_LOGDIR", "/usr/local/var/log")
+LOGDIR = os.environ.get("OVS_DBDIR", "/usr/local/etc/openvswitch")
 BINDIR = os.environ.get("OVS_BINDIR", "/usr/local/bin")
index 658f30e..dc9bc86 100644 (file)
@@ -31,13 +31,14 @@ m4_define([TESTABLE_LOG], [-vPATTERN:ANY:'%c|%p|%m'])
 m4_define([OVS_VSWITCHD_START],
   [OVS_RUNDIR=`pwd`; export OVS_RUNDIR
    OVS_LOGDIR=`pwd`; export OVS_LOGDIR
+   OVS_DBDIR=`pwd`; export OVS_DBDIR
    OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
    trap 'kill `cat ovsdb-server.pid ovs-vswitchd.pid`' 0
 
    dnl Create database.
    mkdir openvswitch
    touch openvswitch/.conf.db.~lock~
-   AT_CHECK([ovsdb-tool create openvswitch/conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema])
+   AT_CHECK([ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema])
 
    dnl Start ovsdb-server.
    AT_CHECK([ovsdb-server --detach --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock], [0], [], [stderr])
index e9d6389..1a83161 100644 (file)
@@ -4,6 +4,7 @@ AT_SETUP([ovs-monitor-ipsec])
 AT_SKIP_IF([test $HAVE_PYTHON = no])
 
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_PKGDATADIR=`pwd`; export OVS_PKGDATADIR
 cp "$top_srcdir/vswitchd/vswitch.ovsschema" .
 
index 5fa61ec..25acc74 100644 (file)
@@ -9,6 +9,7 @@ PYTHONPATH=`pwd`:$PYTHONPATH
 export PYTHONPATH
 
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_PKGDATADIR=`pwd`; export OVS_PKGDATADIR
 cp "$top_srcdir/vswitchd/vswitch.ovsschema" .
 
index 0374602..15fd86b 100644 (file)
@@ -73,6 +73,7 @@ AT_CLEANUP
 
 AT_SETUP([unixctl bad target - Python])
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 AT_SKIP_IF([test $HAVE_PYTHON = no])
 
 AT_CHECK([PYAPPCTL -t bogus doit], [1], [], [stderr])
@@ -91,6 +92,7 @@ AT_SETUP([unixctl server - Python])
 AT_SKIP_IF([test $HAVE_PYTHON = no])
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
 trap 'kill `cat test-unixctl.py.pid`' 0
 AT_CAPTURE_FILE([`pwd`/test-unixctl.py.log])
index 2bc7b5c..a8a947c 100644 (file)
@@ -107,6 +107,7 @@ AT_SETUP([vlog - vlog/reopen - Python])
 AT_SKIP_IF([test $HAVE_PYTHON = no])
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
 trap 'kill `cat test-unixctl.py.pid`' 0
 
@@ -136,6 +137,7 @@ AT_SETUP([vlog - vlog/reopen without log file - Python])
 AT_SKIP_IF([test $HAVE_PYTHON = no])
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
 trap 'kill `cat test-unixctl.py.pid`' 0
 
@@ -158,6 +160,7 @@ AT_SKIP_IF([echo > /dev/full])
 
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
 trap 'kill `cat test-unixctl.py.pid`' 0
 
@@ -184,6 +187,7 @@ AT_SETUP([vlog - vlog/set and vlog/list - Python])
 AT_SKIP_IF([test $HAVE_PYTHON = no])
 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
+OVS_DBDIR=`pwd`; export OVS_DBDIR
 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
 trap 'kill `cat test-unixctl.py.pid`' 0
 
index 7018665..2074e23 100755 (executable)
@@ -14,7 +14,7 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #
 # Copyright (c) 2005, 2007 XenSource Ltd.
-# Copyright (c) 2010, 2011 Nicira, Inc.
+# Copyright (c) 2010, 2011, 2012 Nicira, Inc.
 
 #
 # To add new entries to the bugtool, you need to:
@@ -115,7 +115,7 @@ OPENVSWITCH_LOG_DIR = '@LOGDIR@/'
 OPENVSWITCH_DEFAULT_SWITCH = '/etc/default/openvswitch-switch' # Debian
 OPENVSWITCH_SYSCONFIG_SWITCH = '/etc/sysconfig/openvswitch'    # RHEL
 OPENVSWITCH_DEFAULT_CONTROLLER = '/etc/default/openvswitch-controller'
-OPENVSWITCH_CONF_DB = '@sysconfdir@/openvswitch/conf.db'
+OPENVSWITCH_CONF_DB = '@DBDIR@/conf.db'
 OPENVSWITCH_VSWITCHD_PID = '@RUNDIR@/ovs-vswitchd.pid'
 COLLECTD_LOGS_DIR = '/var/lib/collectd/rrd'
 VAR_LOG_DIR = '/var/log/'
index 8493361..354af34 100644 (file)
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
  USA.
 
- Copyright (C) 2011 Nicira, Inc.
+ Copyright (C) 2011, 2012 Nicira, Inc.
 -->
 
 <collect>
   <directory label="ovsdb-backups" filters="ovs" pattern=".*/conf.db.backup[0-9][^/]*$">/etc/openvswitch</directory>
+  <directory label="ovsdb-backups2" filters="ovs" pattern=".*/conf.db.backup[0-9][^/]*$">/var/lib/openvswitch</directory>
 </collect>
index 1a9ee2a..c730778 100644 (file)
@@ -395,6 +395,7 @@ that it runs.  \fBovs\-ctl\fR will add the \fIsbindir\fR and
 .
 .IP "\fBOVS_LOGDIR\fR"
 .IQ "\fBOVS_RUNDIR\fR"
+.IQ "\fBOVS_DBDIR\fR"
 .IQ "\fBOVS_SYSCONFDIR\fR"
 .IQ "\fBOVS_PKGDATADIR\fR"
 .IQ "\fBOVS_BINDIR\fR"
@@ -422,7 +423,7 @@ process ID.
 The OVS database schema used to initialize the database (use
 \fB\-\-db\-schema to override this location).
 .
-.IP "\fIsysconfdir\fB/openvswitch/conf.db\fR"
+.IP "\fIdbdir\fB/conf.db\fR"
 The OVS database (use \fB\-\-db\-file\fR to override this location).
 .
 .IP "\fIrundir\fB/openvswitch/db.sock\fR"
index dbb629a..674c3c3 100755 (executable)
@@ -403,7 +403,7 @@ set_defaults () {
     OVS_VSWITCHD_WRAPPER=
     OVS_BRCOMPATD_WRAPPER=
 
-    DB_FILE=$etcdir/conf.db
+    DB_FILE=$dbdir/conf.db
     DB_SOCK=$rundir/db.sock
     DB_SCHEMA=$datadir/vswitch.ovsschema
 
@@ -491,8 +491,9 @@ Other options:
   -V, --version               display version information
 
 Default directories with "configure" option and environment variable override:
-  logs: @LOGDIR@ (--log-dir, OVS_LOGDIR)
-  pidfiles and sockets: @RUNDIR@ (--run-dir, OVS_RUNDIR)
+  logs: @LOGDIR@ (--with-logdir, OVS_LOGDIR)
+  pidfiles and sockets: @RUNDIR@ (--with-rundir, OVS_RUNDIR)
+  conf.db: @DBDIR@ (--with-dbdir, OVS_DBDIR)
   system configuration: @sysconfdir@ (--sysconfdir, OVS_SYSCONFDIR)
   data files: @pkgdatadir@ (--pkgdatadir, OVS_PKGDATADIR)
   user binaries: @bindir@ (--bindir, OVS_BINDIR)
index 3905a84..893e8d1 100644 (file)
@@ -22,6 +22,8 @@
 # All of these should be substituted by the Makefile at build time.
 logdir=${OVS_LOGDIR-'@LOGDIR@'}                 # /var/log/openvswitch
 rundir=${OVS_RUNDIR-'@RUNDIR@'}                 # /var/run/openvswitch
+dbdir=${OVS_DBDIR-'@DBDIR@'}                    # /etc/openvswitch
+                                                # or /var/lib/openvswitch
 sysconfdir=${OVS_SYSCONFDIR-'@sysconfdir@'}     # /etc
 etcdir=$sysconfdir/openvswitch                  # /etc/openvswitch
 datadir=${OVS_PKGDATADIR-'@pkgdatadir@'}        # /usr/share/openvswitch