summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2012-07-27 15:52:21 -0700
committerBen Pfaff <blp@nicira.com>2012-08-01 10:55:57 -0700
commitf973f2af2fd4452c8e182caf6a4346cf2a2a394e (patch)
treeeb0a4ac92b8457ef682dfa89447342b209bf0f88
parent01ca539f5c89fab1ea9a355d4cb75383dfb25da5 (diff)
downloadopenvswitch-f973f2af2fd4452c8e182caf6a4346cf2a2a394e.tar.gz
Make the location of the database separately configurable.
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>
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac1
-rw-r--r--lib/automake.mk2
-rw-r--r--lib/dirs.c.in9
-rw-r--r--lib/dirs.h3
-rw-r--r--m4/openvswitch.m410
-rw-r--r--ovsdb/ovsdb-server.1.in2
-rw-r--r--ovsdb/ovsdb-server.c2
-rw-r--r--ovsdb/ovsdb-tool.1.in2
-rw-r--r--ovsdb/ovsdb-tool.c2
-rw-r--r--python/automake.mk1
-rw-r--r--python/ovs/dirs.py1
-rw-r--r--tests/ofproto-macros.at3
-rw-r--r--tests/ovs-monitor-ipsec.at1
-rw-r--r--tests/ovs-xapi-sync.at1
-rw-r--r--tests/unixctl-py.at2
-rw-r--r--tests/vlog.at4
-rwxr-xr-xutilities/bugtool/ovs-bugtool.in4
-rw-r--r--utilities/bugtool/plugins/system-logs/openvswitch.xml3
-rw-r--r--utilities/ovs-ctl.83
-rwxr-xr-xutilities/ovs-ctl.in7
-rw-r--r--utilities/ovs-lib.in2
22 files changed, 52 insertions, 14 deletions
diff --git a/Makefile.am b/Makefile.am
index 9cad47b72..1b148719f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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' \
diff --git a/configure.ac b/configure.ac
index b18b25967..9bdffeadf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
diff --git a/lib/automake.mk b/lib/automake.mk
index ed7db7ce1..818051750 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -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
diff --git a/lib/dirs.c.in b/lib/dirs.c.in
index a5d9f317b..2b998b9ff 100644
--- a/lib/dirs.c.in
+++ b/lib/dirs.c.in
@@ -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.
@@ -66,6 +66,13 @@ ovs_logdir(void)
}
const char *
+ovs_dbdir(void)
+{
+ static struct directory d = { NULL, @DBDIR@, "OVS_DBDIR" };
+ return get_dir(&d);
+}
+
+const char *
ovs_bindir(void)
{
static struct directory d = { NULL, @bindir@, "OVS_BINDIR" };
diff --git a/lib/dirs.h b/lib/dirs.h
index 6b4d1ceed..811a51fce 100644
--- a/lib/dirs.h
+++ b/lib/dirs.h
@@ -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 */
diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4
index eca6010f5..939f29617 100644
--- a/m4/openvswitch.m4
+++ b/m4/openvswitch.m4
@@ -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],
diff --git a/ovsdb/ovsdb-server.1.in b/ovsdb/ovsdb-server.1.in
index 4236f8ff2..1f5be03a8 100644
--- a/ovsdb/ovsdb-server.1.in
+++ b/ovsdb/ovsdb-server.1.in
@@ -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.
.
diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c
index 139acc611..6c68e506b 100644
--- a/ovsdb/ovsdb-server.c
+++ b/ovsdb/ovsdb-server.c
@@ -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:
diff --git a/ovsdb/ovsdb-tool.1.in b/ovsdb/ovsdb-tool.1.in
index c440e0d6b..9d3284457 100644
--- a/ovsdb/ovsdb-tool.1.in
+++ b/ovsdb/ovsdb-tool.1.in
@@ -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"
diff --git a/ovsdb/ovsdb-tool.c b/ovsdb/ovsdb-tool.c
index f5412f36b..49594781d 100644
--- a/ovsdb/ovsdb-tool.c
+++ b/ovsdb/ovsdb-tool.c
@@ -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;
}
diff --git a/python/automake.mk b/python/automake.mk
index b656f088f..3cd6e1e7f 100644
--- a/python/automake.mk
+++ b/python/automake.mk
@@ -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
diff --git a/python/ovs/dirs.py b/python/ovs/dirs.py
index 5b006cc3e..a5717fcab 100644
--- a/python/ovs/dirs.py
+++ b/python/ovs/dirs.py
@@ -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")
diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at
index 658f30e44..dc9bc8646 100644
--- a/tests/ofproto-macros.at
+++ b/tests/ofproto-macros.at
@@ -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])
diff --git a/tests/ovs-monitor-ipsec.at b/tests/ovs-monitor-ipsec.at
index e9d638929..1a8316129 100644
--- a/tests/ovs-monitor-ipsec.at
+++ b/tests/ovs-monitor-ipsec.at
@@ -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" .
diff --git a/tests/ovs-xapi-sync.at b/tests/ovs-xapi-sync.at
index 5fa61ec33..25acc7437 100644
--- a/tests/ovs-xapi-sync.at
+++ b/tests/ovs-xapi-sync.at
@@ -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" .
diff --git a/tests/unixctl-py.at b/tests/unixctl-py.at
index 037460265..15fd86be8 100644
--- a/tests/unixctl-py.at
+++ b/tests/unixctl-py.at
@@ -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])
diff --git a/tests/vlog.at b/tests/vlog.at
index 2bc7b5ce0..a8a947c1b 100644
--- a/tests/vlog.at
+++ b/tests/vlog.at
@@ -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
diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in
index 7018665bf..2074e2380 100755
--- a/utilities/bugtool/ovs-bugtool.in
+++ b/utilities/bugtool/ovs-bugtool.in
@@ -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/'
diff --git a/utilities/bugtool/plugins/system-logs/openvswitch.xml b/utilities/bugtool/plugins/system-logs/openvswitch.xml
index 849336198..354af3412 100644
--- a/utilities/bugtool/plugins/system-logs/openvswitch.xml
+++ b/utilities/bugtool/plugins/system-logs/openvswitch.xml
@@ -13,9 +13,10 @@
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>
diff --git a/utilities/ovs-ctl.8 b/utilities/ovs-ctl.8
index 1a9ee2a58..c730778d5 100644
--- a/utilities/ovs-ctl.8
+++ b/utilities/ovs-ctl.8
@@ -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"
diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
index dbb629a6e..674c3c31e 100755
--- a/utilities/ovs-ctl.in
+++ b/utilities/ovs-ctl.in
@@ -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)
diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
index 3905a846f..893e8d1ef 100644
--- a/utilities/ovs-lib.in
+++ b/utilities/ovs-lib.in
@@ -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