2013-04-19 16:25:56 -07:00
|
|
|
#! /bin/sh
|
|
|
|
#
|
2016-07-24 13:14:59 -07:00
|
|
|
# Copyright (c) 2013, 2015, 2016 Nicira, Inc.
|
2013-04-19 16:25:56 -07:00
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at:
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2015-02-18 17:17:33 -08:00
|
|
|
run() {
|
2013-04-19 16:25:56 -07:00
|
|
|
(cd "$sandbox" && "$@") || exit 1
|
|
|
|
}
|
|
|
|
|
2015-02-18 17:17:33 -08:00
|
|
|
run_xterm() {
|
2015-02-20 12:55:25 -08:00
|
|
|
title=$1;
|
|
|
|
shift
|
|
|
|
run xterm -T "$title" -e "$@" &
|
2015-02-18 17:17:33 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
rungdb() {
|
|
|
|
under_gdb=$1
|
2015-04-14 13:44:01 -07:00
|
|
|
gdb_run=$2
|
2015-02-18 17:17:33 -08:00
|
|
|
shift
|
2015-04-14 13:44:01 -07:00
|
|
|
shift
|
|
|
|
|
2015-02-18 17:17:33 -08:00
|
|
|
# Remove the --detach and to put the process under gdb control.
|
|
|
|
# Also remove --vconsole:off to allow error message to show up
|
|
|
|
# on the console.
|
|
|
|
# Use "DISPLAY" variable to determine out if X is supported
|
|
|
|
if $under_gdb && [ "$DISPLAY" ]; then
|
|
|
|
args=`echo $@ |sed s/--detach//g | sed s/--vconsole:off//g`
|
2015-04-02 11:49:47 -04:00
|
|
|
xterm_title=$1
|
2015-04-14 13:44:01 -07:00
|
|
|
|
|
|
|
gdb_cmd=""
|
|
|
|
if $gdb_run; then
|
|
|
|
gdb_cmd="-ex run"
|
|
|
|
fi
|
|
|
|
|
|
|
|
run_xterm $xterm_title gdb $gdb_cmd --args $args
|
2015-02-18 17:17:33 -08:00
|
|
|
else
|
|
|
|
run $@
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2015-02-20 13:01:36 -08:00
|
|
|
gdb_vswitchd=false
|
|
|
|
gdb_ovsdb=false
|
2015-04-14 13:44:01 -07:00
|
|
|
gdb_vswitchd_ex=false
|
|
|
|
gdb_ovsdb_ex=false
|
2015-04-16 17:13:54 -04:00
|
|
|
gdb_ovn_northd=false
|
2015-05-15 11:03:08 -04:00
|
|
|
gdb_ovn_northd_ex=false
|
2015-04-09 00:52:43 -07:00
|
|
|
gdb_ovn_controller=false
|
2015-05-15 11:03:08 -04:00
|
|
|
gdb_ovn_controller_ex=false
|
2015-08-21 13:42:18 -04:00
|
|
|
gdb_ovn_controller_vtep=false
|
|
|
|
gdb_ovn_controller_vtep_ex=false
|
2013-04-19 16:25:56 -07:00
|
|
|
builddir=
|
|
|
|
srcdir=
|
|
|
|
schema=
|
|
|
|
installed=false
|
|
|
|
built=false
|
2015-03-12 16:57:18 -04:00
|
|
|
ovn=false
|
2015-04-08 22:51:10 -07:00
|
|
|
ovnsb_schema=
|
|
|
|
ovnnb_schema=
|
2016-12-07 10:04:03 -08:00
|
|
|
dummy=override
|
2015-02-18 17:17:33 -08:00
|
|
|
|
2013-04-19 16:25:56 -07:00
|
|
|
for option; do
|
|
|
|
# This option-parsing mechanism borrowed from a Autoconf-generated
|
|
|
|
# configure script under the following license:
|
|
|
|
|
|
|
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
|
|
|
# 2002, 2003, 2004, 2005, 2006, 2009, 2013 Free Software Foundation, Inc.
|
|
|
|
# This configure script is free software; the Free Software Foundation
|
|
|
|
# gives unlimited permission to copy, distribute and modify it.
|
|
|
|
|
|
|
|
# If the previous option needs an argument, assign it.
|
|
|
|
if test -n "$prev"; then
|
|
|
|
eval $prev=\$option
|
|
|
|
prev=
|
|
|
|
continue
|
|
|
|
fi
|
|
|
|
case $option in
|
|
|
|
*=*) optarg=`expr "X$option" : '[^=]*=\(.*\)'` ;;
|
|
|
|
*) optarg=yes ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
case $dashdash$option in
|
|
|
|
--)
|
|
|
|
dashdash=yes ;;
|
|
|
|
-h|--help)
|
|
|
|
cat <<EOF
|
|
|
|
ovs-sandbox, for starting a sandboxed dummy Open vSwitch environment
|
|
|
|
usage: $0 [OPTION...]
|
|
|
|
|
|
|
|
If you run ovs-sandbox from an OVS build directory, it uses the OVS that
|
|
|
|
you built. Otherwise, if you have an installed Open vSwitch, it uses
|
|
|
|
the installed version.
|
|
|
|
|
|
|
|
These options force ovs-sandbox to use a particular OVS build:
|
|
|
|
-b, --builddir=DIR specify Open vSwitch build directory
|
|
|
|
-s, --srcdir=DIR specify Open vSwitch source directory
|
|
|
|
These options force ovs-sandbox to use an installed Open vSwitch:
|
|
|
|
-i, --installed use installed Open vSwitch
|
2015-02-18 17:17:33 -08:00
|
|
|
-g, --gdb-vswitchd run ovs-vswitchd under gdb
|
2015-02-20 13:01:36 -08:00
|
|
|
-d, --gdb-ovsdb run ovsdb-server under gdb
|
2015-04-16 17:13:54 -04:00
|
|
|
--gdb-ovn-northd run ovn-northd under gdb
|
2015-04-09 00:52:43 -07:00
|
|
|
--gdb-ovn-controller run ovn-controller under gdb
|
2015-08-21 13:42:18 -04:00
|
|
|
--gdb-ovn-controller-vtep run ovn-controller-vtep under gdb
|
2016-12-07 10:04:03 -08:00
|
|
|
--dummy=ARG pass --enable-dummy=ARG to vswitchd (default: override)
|
2015-05-15 11:03:08 -04:00
|
|
|
-R, --gdb-run automatically start running the daemon in gdb
|
|
|
|
for any daemon set to run under gdb
|
2013-04-19 16:25:56 -07:00
|
|
|
-S, --schema=FILE use FILE as vswitch.ovsschema
|
2015-03-12 16:57:18 -04:00
|
|
|
-o, --ovn enable OVN
|
2013-04-19 16:25:56 -07:00
|
|
|
|
|
|
|
Other options:
|
|
|
|
-h, --help Print this usage message.
|
|
|
|
EOF
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
|
|
|
|
--b*=*)
|
|
|
|
builddir=$optarg
|
|
|
|
built=:
|
|
|
|
;;
|
|
|
|
-b|--b*)
|
|
|
|
prev=builddir
|
|
|
|
built=:
|
|
|
|
;;
|
|
|
|
--sr*=*)
|
|
|
|
srcdir=$optarg
|
|
|
|
built=false
|
|
|
|
;;
|
2016-12-07 10:04:03 -08:00
|
|
|
--dummy)
|
|
|
|
prev=dummy
|
|
|
|
;;
|
|
|
|
--dummy=*)
|
|
|
|
dummy=$optarg
|
|
|
|
;;
|
2013-04-19 16:25:56 -07:00
|
|
|
-s|--sr*)
|
|
|
|
prev=srcdir
|
|
|
|
built=false
|
|
|
|
;;
|
|
|
|
-i|--installed)
|
|
|
|
installed=:
|
|
|
|
;;
|
|
|
|
--sc*=*)
|
|
|
|
schema=$optarg
|
|
|
|
installed=:
|
|
|
|
;;
|
|
|
|
-S|--sc*)
|
|
|
|
prev=schema
|
|
|
|
installed=:
|
|
|
|
;;
|
2015-02-18 17:17:33 -08:00
|
|
|
-g|--gdb-v*)
|
|
|
|
gdb_vswitchd=true
|
2015-04-14 13:44:01 -07:00
|
|
|
gdb_vswitchd_ex=false
|
|
|
|
;;
|
|
|
|
-e|--gdb-ex-v*)
|
|
|
|
gdb_vswitchd=true
|
|
|
|
gdb_vswitchd_ex=true
|
2015-02-18 17:17:33 -08:00
|
|
|
;;
|
2015-04-02 11:49:47 -04:00
|
|
|
-d|--gdb-ovsdb)
|
2015-02-20 13:01:36 -08:00
|
|
|
gdb_ovsdb=true
|
2015-04-14 13:44:01 -07:00
|
|
|
gdb_ovsdb_ex=false
|
|
|
|
;;
|
|
|
|
-r|--gdb-ex-o*)
|
|
|
|
gdb_ovsdb=true
|
|
|
|
gdb_ovsdb_ex=true
|
2015-02-20 13:01:36 -08:00
|
|
|
;;
|
2015-04-16 17:13:54 -04:00
|
|
|
--gdb-ovn-northd)
|
|
|
|
gdb_ovn_northd=true
|
2015-04-02 11:49:47 -04:00
|
|
|
;;
|
2015-04-09 00:52:43 -07:00
|
|
|
--gdb-ovn-controller)
|
|
|
|
gdb_ovn_controller=true
|
|
|
|
;;
|
2015-08-21 13:42:18 -04:00
|
|
|
--gdb-ovn-controller-vtep)
|
|
|
|
gdb_ovn_controller_vtep=true
|
|
|
|
;;
|
2015-03-12 16:57:18 -04:00
|
|
|
-o|--ovn)
|
|
|
|
ovn=true
|
|
|
|
;;
|
2015-05-15 11:03:08 -04:00
|
|
|
-R|--gdb-run)
|
|
|
|
gdb_vswitchd_ex=true
|
|
|
|
gdb_ovsdb_ex=true
|
|
|
|
gdb_ovn_northd_ex=true
|
|
|
|
gdb_ovn_controller_ex=true
|
2015-08-21 13:42:18 -04:00
|
|
|
gdb_ovn_controller_vtep_ex=true
|
2015-05-15 11:03:08 -04:00
|
|
|
;;
|
2013-04-19 16:25:56 -07:00
|
|
|
-*)
|
|
|
|
echo "unrecognized option $option (use --help for help)" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "$option: non-option arguments not supported (use --help for help)" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
if $installed && $built; then
|
|
|
|
echo "sorry, conflicting options (use --help for help)" >&2
|
|
|
|
exit 1
|
|
|
|
elif $installed || $built; then
|
|
|
|
:
|
|
|
|
elif test -e vswitchd/ovs-vswitchd; then
|
|
|
|
built=:
|
|
|
|
builddir=.
|
|
|
|
elif (ovs-vswitchd --version) >/dev/null 2>&1; then
|
|
|
|
installed=:
|
|
|
|
else
|
|
|
|
echo "can't find an OVS build or install (use --help for help)" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if $built; then
|
|
|
|
if test ! -e "$builddir"/vswitchd/ovs-vswitchd; then
|
|
|
|
echo "$builddir does not appear to be an OVS build directory" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
builddir=`cd $builddir && pwd`
|
|
|
|
|
|
|
|
# Find srcdir.
|
|
|
|
case $srcdir in
|
|
|
|
'')
|
|
|
|
srcdir=$builddir
|
2016-12-08 12:55:28 +00:00
|
|
|
if test ! -e "$srcdir"/README.rst; then
|
2013-04-19 16:25:56 -07:00
|
|
|
srcdir=`cd $builddir/.. && pwd`
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
/*) ;;
|
|
|
|
*) srcdir=`pwd`/$srcdir ;;
|
|
|
|
esac
|
|
|
|
schema=$srcdir/vswitchd/vswitch.ovsschema
|
|
|
|
if test ! -e "$schema"; then
|
|
|
|
echo >&2 'source directory not found, please use --srcdir'
|
|
|
|
exit 1
|
|
|
|
fi
|
2015-03-12 16:57:18 -04:00
|
|
|
if $ovn; then
|
2015-04-08 22:51:10 -07:00
|
|
|
ovnsb_schema=$srcdir/ovn/ovn-sb.ovsschema
|
|
|
|
if test ! -e "$ovnsb_schema"; then
|
2015-03-12 16:57:18 -04:00
|
|
|
echo >&2 'source directory not found, please use --srcdir'
|
|
|
|
exit 1
|
|
|
|
fi
|
2015-04-08 22:51:10 -07:00
|
|
|
ovnnb_schema=$srcdir/ovn/ovn-nb.ovsschema
|
|
|
|
if test ! -e "$ovnnb_schema"; then
|
2015-03-12 16:57:18 -04:00
|
|
|
echo >&2 'source directory not found, please use --srcdir'
|
|
|
|
exit 1
|
|
|
|
fi
|
2015-08-21 13:42:18 -04:00
|
|
|
vtep_schema=$srcdir/vtep/vtep.ovsschema
|
|
|
|
if test ! -e "$vtep_schema"; then
|
|
|
|
echo >&2 'source directory not found, please use --srcdir'
|
|
|
|
exit 1
|
|
|
|
fi
|
2015-03-12 16:57:18 -04:00
|
|
|
fi
|
2013-04-19 16:25:56 -07:00
|
|
|
|
|
|
|
# Put built tools early in $PATH.
|
|
|
|
if test ! -e $builddir/vswitchd/ovs-vswitchd; then
|
|
|
|
echo >&2 'build not found, please change set $builddir or change directory'
|
|
|
|
exit 1
|
|
|
|
fi
|
2015-09-03 19:02:47 +02:00
|
|
|
PATH=$builddir/ovsdb:$builddir/vswitchd:$builddir/utilities:$builddir/vtep:$PATH
|
2015-03-12 16:57:18 -04:00
|
|
|
if $ovn; then
|
2016-01-29 12:20:13 +03:00
|
|
|
PATH=$builddir/ovn/controller:$builddir/ovn/controller-vtep:$builddir/ovn/northd:$builddir/ovn/utilities:$PATH
|
2015-03-12 16:57:18 -04:00
|
|
|
fi
|
2013-04-19 16:25:56 -07:00
|
|
|
export PATH
|
|
|
|
else
|
|
|
|
case $schema in
|
|
|
|
'')
|
|
|
|
for schema in \
|
|
|
|
/usr/local/share/openvswitch/vswitch.ovsschema \
|
|
|
|
/usr/share/openvswitch/vswitch.ovsschema \
|
|
|
|
none; do
|
|
|
|
if test -r $schema; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
/*) ;;
|
|
|
|
*) schema=`pwd`/$schema ;;
|
|
|
|
esac
|
|
|
|
if test ! -r "$schema"; then
|
|
|
|
echo "can't find vswitch.ovsschema, please specify --schema" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
2015-03-12 16:57:18 -04:00
|
|
|
if $ovn; then
|
|
|
|
echo "running with ovn is only supported from the build dir." >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
2013-04-19 16:25:56 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Create sandbox.
|
|
|
|
rm -rf sandbox
|
|
|
|
mkdir sandbox
|
|
|
|
sandbox=`cd sandbox && pwd`
|
|
|
|
|
|
|
|
# Set up environment for OVS programs to sandbox themselves.
|
|
|
|
OVS_RUNDIR=$sandbox; export OVS_RUNDIR
|
|
|
|
OVS_LOGDIR=$sandbox; export OVS_LOGDIR
|
|
|
|
OVS_DBDIR=$sandbox; export OVS_DBDIR
|
|
|
|
OVS_SYSCONFDIR=$sandbox; export OVS_SYSCONFDIR
|
|
|
|
|
|
|
|
if $built; then
|
|
|
|
# Easy access to OVS manpages.
|
2015-12-31 21:19:10 +08:00
|
|
|
(cd "$builddir" && ${MAKE-make} install-man mandir="$sandbox"/man)
|
2013-04-19 16:25:56 -07:00
|
|
|
MANPATH=$sandbox/man:; export MANPATH
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Ensure cleanup.
|
|
|
|
trap 'kill `cat "$sandbox"/*.pid`' 0 1 2 3 13 14 15
|
|
|
|
|
|
|
|
# Create database and start ovsdb-server.
|
|
|
|
touch "$sandbox"/.conf.db.~lock~
|
2013-05-01 12:23:36 -07:00
|
|
|
run ovsdb-tool create conf.db "$schema"
|
2015-03-12 16:57:18 -04:00
|
|
|
ovsdb_server_args=
|
|
|
|
if $ovn; then
|
2015-04-08 22:51:10 -07:00
|
|
|
touch "$sandbox"/.ovnsb.db.~lock~
|
2015-03-12 16:57:18 -04:00
|
|
|
touch "$sandbox"/.ovnnb.db.~lock~
|
2015-04-08 22:51:10 -07:00
|
|
|
run ovsdb-tool create ovnsb.db "$ovnsb_schema"
|
2016-08-09 15:35:46 -07:00
|
|
|
run ovsdb-tool create ovnsb2.db "$ovnsb_schema"
|
2015-04-08 22:51:10 -07:00
|
|
|
run ovsdb-tool create ovnnb.db "$ovnnb_schema"
|
2015-08-21 13:42:18 -04:00
|
|
|
run ovsdb-tool create vtep.db "$vtep_schema"
|
2016-03-21 15:40:01 -05:00
|
|
|
ovsdb_server_args="vtep.db conf.db"
|
|
|
|
ovsdb_sb_server_args="ovnsb.db"
|
2016-08-09 15:35:46 -07:00
|
|
|
ovsdb_sb_backup_server_args="ovnsb2.db"
|
2016-03-21 15:40:01 -05:00
|
|
|
ovsdb_nb_server_args="ovnnb.db"
|
2017-03-23 12:23:33 -04:00
|
|
|
|
|
|
|
if [ "$HAVE_OPENSSL" = yes ]; then
|
|
|
|
OVS_PKI="run ovs-pki --dir=$sandbox/pki --log=$sandbox/ovs-pki.log"
|
|
|
|
$OVS_PKI -B 1024 init
|
|
|
|
$OVS_PKI -B 1024 req+sign ovnsb switch
|
|
|
|
$OVS_PKI -B 1024 req+sign ovnnb switch
|
|
|
|
$OVS_PKI -B 1024 req+sign ovn-controller switch
|
|
|
|
fi
|
2015-03-12 16:57:18 -04:00
|
|
|
fi
|
2015-04-14 13:44:01 -07:00
|
|
|
rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \
|
2015-03-12 16:57:18 -04:00
|
|
|
--remote=punix:"$sandbox"/db.sock $ovsdb_server_args
|
2016-03-21 15:40:01 -05:00
|
|
|
if $ovn; then
|
|
|
|
rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir \
|
|
|
|
--pidfile="$sandbox"/ovnnb_db.pid -vconsole:off \
|
|
|
|
--log-file="$sandbox"/ovnnb_db.log \
|
2017-03-23 12:23:33 -04:00
|
|
|
--remote=db:OVN_Northbound,NB_Global,connections \
|
|
|
|
--private-key=db:OVN_Northbound,SSL,private_key \
|
|
|
|
--certificate=db:OVN_Northbound,SSL,certificate \
|
|
|
|
--ca-cert=db:OVN_Northbound,SSL,ca_cert \
|
2016-03-21 15:40:01 -05:00
|
|
|
--remote=punix:"$sandbox"/ovnnb_db.sock $ovsdb_nb_server_args
|
|
|
|
rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir \
|
|
|
|
--pidfile="$sandbox"/ovnsb_db.pid -vconsole:off \
|
|
|
|
--log-file="$sandbox"/ovnsb_db.log \
|
2017-03-23 12:23:33 -04:00
|
|
|
--remote=db:OVN_Southbound,SB_Global,connections \
|
|
|
|
--private-key=db:OVN_Southbound,SSL,private_key \
|
|
|
|
--certificate=db:OVN_Southbound,SSL,certificate \
|
|
|
|
--ca-cert=db:OVN_Southbound,SSL,ca_cert \
|
2016-03-21 15:40:01 -05:00
|
|
|
--remote=punix:"$sandbox"/ovnsb_db.sock $ovsdb_sb_server_args
|
2016-08-09 15:35:46 -07:00
|
|
|
# Start SB back up server
|
|
|
|
rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir \
|
|
|
|
--pidfile="$sandbox"/ovnsb_db2.pid -vconsole:off \
|
|
|
|
--log-file="$sandbox"/ovnsb_db2.log \
|
2017-03-23 12:23:33 -04:00
|
|
|
--remote=db:OVN_Southbound,SB_Global,connections \
|
|
|
|
--private-key=db:OVN_Southbound,SSL,private_key \
|
|
|
|
--certificate=db:OVN_Southbound,SSL,certificate \
|
|
|
|
--ca-cert=db:OVN_Southbound,SSL,ca_cert \
|
2016-08-09 15:35:46 -07:00
|
|
|
--remote=punix:"$sandbox"/ovnsb_db2.sock \
|
|
|
|
--unixctl="$sandbox"/sb_backup_unixctl \
|
|
|
|
--sync-from=unix:"$sandbox"/ovnsb_db.sock $ovsdb_sb_backup_server_args
|
2016-03-21 15:40:01 -05:00
|
|
|
fi
|
2013-04-19 16:25:56 -07:00
|
|
|
|
2015-04-10 12:53:26 -07:00
|
|
|
#Add a small delay to allow ovsdb-server to launch.
|
|
|
|
sleep 0.1
|
|
|
|
|
|
|
|
#Wait for ovsdb-server to finish launching.
|
|
|
|
if test ! -e "$sandbox"/db.sock; then
|
|
|
|
echo -n "Waiting for ovsdb-server to start..."
|
|
|
|
while test ! -e "$sandbox"/db.sock; do
|
|
|
|
sleep 1;
|
|
|
|
done
|
|
|
|
echo " Done"
|
|
|
|
fi
|
|
|
|
|
2015-03-25 22:25:50 -07:00
|
|
|
# Initialize database.
|
|
|
|
run ovs-vsctl --no-wait -- init
|
|
|
|
|
2013-04-19 16:25:56 -07:00
|
|
|
# Start ovs-vswitchd.
|
2015-04-14 13:44:01 -07:00
|
|
|
rungdb $gdb_vswitchd $gdb_vswitchd_ex ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \
|
2016-12-07 10:04:03 -08:00
|
|
|
--enable-dummy=$dummy -vvconn -vnetdev_dummy
|
2013-04-19 16:25:56 -07:00
|
|
|
|
2015-04-02 11:49:47 -04:00
|
|
|
if $ovn; then
|
2017-03-23 12:23:33 -04:00
|
|
|
ovn-nbctl init
|
|
|
|
ovn-sbctl init
|
|
|
|
|
2015-04-09 00:52:43 -07:00
|
|
|
ovs-vsctl set open . external-ids:system-id=56b18105-5706-46ef-80c4-ff20979ab068
|
2016-03-25 00:31:22 +00:00
|
|
|
ovs-vsctl set open . external-ids:hostname=sandbox
|
2015-04-25 10:47:56 -07:00
|
|
|
ovs-vsctl set open . external-ids:ovn-encap-type=geneve
|
2015-04-09 00:52:43 -07:00
|
|
|
ovs-vsctl set open . external-ids:ovn-encap-ip=127.0.0.1
|
|
|
|
|
2017-03-23 12:23:33 -04:00
|
|
|
if [ "$HAVE_OPENSSL" = yes ]; then
|
|
|
|
ovn-nbctl set-ssl $sandbox/ovnnb-privkey.pem $sandbox/ovnnb-cert.pem $sandbox/pki/switchca/cacert.pem
|
|
|
|
ovn-nbctl set-connection pssl:6641
|
|
|
|
ovn-sbctl set-ssl $sandbox/ovnsb-privkey.pem $sandbox/ovnsb-cert.pem $sandbox/pki/switchca/cacert.pem
|
|
|
|
ovn-sbctl set-connection pssl:6642
|
|
|
|
ovs-vsctl set open . external-ids:ovn-remote=ssl:127.0.0.1:6642
|
|
|
|
OVN_CTRLR_PKI="-p $sandbox/ovn-controller-privkey.pem -c $sandbox/ovn-controller-cert.pem -C $sandbox/pki/switchca/cacert.pem"
|
|
|
|
else
|
|
|
|
ovs-vsctl set open . external-ids:ovn-remote=unix:"$sandbox"/ovnsb_db.sock
|
|
|
|
OVN_CTRLR_PKI=""
|
|
|
|
fi
|
2016-03-21 15:40:01 -05:00
|
|
|
rungdb $gdb_ovn_northd $gdb_ovn_northd_ex ovn-northd --detach \
|
|
|
|
--no-chdir --pidfile -vconsole:off --log-file \
|
|
|
|
--ovnsb-db=unix:"$sandbox"/ovnsb_db.sock \
|
|
|
|
--ovnnb-db=unix:"$sandbox"/ovnnb_db.sock
|
|
|
|
rungdb $gdb_ovn_controller $gdb_ovn_controller_ex ovn-controller \
|
2017-03-23 12:23:33 -04:00
|
|
|
$OVN_CTRLR_PKI --detach --no-chdir --pidfile -vconsole:off --log-file
|
2016-03-21 15:40:01 -05:00
|
|
|
rungdb $gdb_ovn_controller_vtep $gdb_ovn_controller_vtep_ex \
|
|
|
|
ovn-controller-vtep --detach --no-chdir --pidfile -vconsole:off \
|
2017-03-23 12:23:33 -04:00
|
|
|
$OVN_CTRLR_PKI --log-file --ovnsb-db=unix:"$sandbox"/ovnsb_db.sock
|
2015-04-02 11:49:47 -04:00
|
|
|
fi
|
|
|
|
|
2013-04-19 16:25:56 -07:00
|
|
|
cat <<EOF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
You are running in a dummy Open vSwitch environment. You can use
|
|
|
|
ovs-vsctl, ovs-ofctl, ovs-appctl, and other tools to work with the
|
2016-03-07 10:47:21 -05:00
|
|
|
dummy switch.
|
2013-04-19 16:25:56 -07:00
|
|
|
|
2016-03-07 10:47:21 -05:00
|
|
|
EOF
|
|
|
|
if $ovn; then cat << EOF
|
|
|
|
This environment also has the OVN daemons and databases enabled.
|
|
|
|
You can use ovn-nbctl and ovn-sbctl to interact with the OVN databases.
|
|
|
|
|
2016-08-09 15:35:46 -07:00
|
|
|
The backup server of OVN SB can be accessed by:
|
|
|
|
* ovn-sbctl --db=unix:`pwd`/sandbox/ovnsb_db2.sock
|
|
|
|
* ovs-appctl -t `pwd`/sandbox/sb_backup_unixctl
|
|
|
|
The backup database file is "sandbox"/ovnsb2.db
|
|
|
|
|
|
|
|
|
2016-03-07 10:47:21 -05:00
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
cat <<EOF
|
2013-04-19 16:25:56 -07:00
|
|
|
Log files, pidfiles, and the configuration database are in the
|
|
|
|
"sandbox" subdirectory.
|
|
|
|
|
|
|
|
Exit the shell to kill the running daemons.
|
|
|
|
EOF
|
|
|
|
|
|
|
|
status=0; $SHELL || status=$?
|
|
|
|
|
|
|
|
cat <<EOF
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
exit $status
|