Skip to content

Commit

Permalink
Make the location of the database separately configurable.
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
blp committed Aug 1, 2012
1 parent 01ca539 commit f973f2a
Show file tree
Hide file tree
Showing 22 changed files with 52 additions and 14 deletions.
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -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' \
Expand Down
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions lib/automake.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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') \
Expand All @@ -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
Expand Down
9 changes: 8 additions & 1 deletion lib/dirs.c.in
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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)
{
Expand Down
3 changes: 2 additions & 1 deletion lib/dirs.h
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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 */
10 changes: 10 additions & 0 deletions m4/openvswitch.m4
Original file line number Diff line number Diff line change
Expand Up @@ -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],
Expand Down
2 changes: 1 addition & 1 deletion ovsdb/ovsdb-server.1.in
Original file line number Diff line number Diff line change
Expand Up @@ -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.
.
Expand Down
2 changes: 1 addition & 1 deletion ovsdb/ovsdb-server.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion ovsdb/ovsdb-tool.1.in
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion ovsdb/ovsdb-tool.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
1 change: 1 addition & 0 deletions python/automake.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions python/ovs/dirs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@
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")
3 changes: 2 additions & 1 deletion tests/ofproto-macros.at
Original file line number Diff line number Diff line change
Expand Up @@ -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])
Expand Down
1 change: 1 addition & 0 deletions tests/ovs-monitor-ipsec.at
Original file line number Diff line number Diff line change
Expand Up @@ -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" .

Expand Down
1 change: 1 addition & 0 deletions tests/ovs-xapi-sync.at
Original file line number Diff line number Diff line change
Expand Up @@ -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" .

Expand Down
2 changes: 2 additions & 0 deletions tests/unixctl-py.at
Original file line number Diff line number Diff line change
Expand Up @@ -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])
Expand All @@ -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])
Expand Down
4 changes: 4 additions & 0 deletions tests/vlog.at
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand All @@ -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

Expand All @@ -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

Expand Down
4 changes: 2 additions & 2 deletions utilities/bugtool/ovs-bugtool.in
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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/'
Expand Down
3 changes: 2 additions & 1 deletion utilities/bugtool/plugins/system-logs/openvswitch.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
3 changes: 2 additions & 1 deletion utilities/ovs-ctl.8
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand Down
7 changes: 4 additions & 3 deletions utilities/ovs-ctl.in
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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)
Expand Down
2 changes: 2 additions & 0 deletions utilities/ovs-lib.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit f973f2a

Please sign in to comment.