Title fixed and updated ovn-northd to the new db paths. From 9052644fd5ed07583540292fcd0cb5ddc47d633e Mon Sep 17 00:00:00 2001 From: Michael Arnaldi <m...@mymoneyex.com> Date: Mon, 8 Feb 2016 18:56:51 +0100 Subject: [PATCH] Separating ovn nb&sb databases
Signed-off-by: Michael Arnaldi <m...@mymoneyex.com> --- ovn/northd/ovn-northd.c | 33 ++++++++++++++++++-------- ovn/utilities/ovn-ctl | 59 ++++++++++++++++++++++++++++++++--------------- ovn/utilities/ovn-nbctl.c | 2 +- ovn/utilities/ovn-sbctl.c | 3 ++- 4 files changed, 66 insertions(+), 31 deletions(-) diff --git a/ovn/northd/ovn-northd.c b/ovn/northd/ovn-northd.c index e6271cf..bc61255 100644 --- a/ovn/northd/ovn-northd.c +++ b/ovn/northd/ovn-northd.c @@ -52,7 +52,8 @@ struct northd_context { static const char *ovnnb_db; static const char *ovnsb_db; -static const char *default_db(void); +static const char *default_nb_db(void); +static const char *default_sb_db(void); /* Pipeline stages. */ @@ -167,7 +168,7 @@ Options:\n\ -h, --help display this help message\n\ -o, --options list available options\n\ -V, --version display version information\n\ -", program_name, program_name, default_db(), default_db()); +", program_name, program_name, default_nb_db(), default_sb_db()); daemon_usage(); vlog_usage(); stream_usage("database", true, true, false); @@ -1786,15 +1787,26 @@ ovnsb_db_run(struct northd_context *ctx) } -static char *default_db_; +static char *default_nb_db_; static const char * -default_db(void) +default_nb_db(void) { - if (!default_db_) { - default_db_ = xasprintf("unix:%s/db.sock", ovs_rundir()); + if (!default_nb_db_) { + default_nb_db_ = xasprintf("unix:%s/ovn/run/db_nb.sock", ovs_rundir()); } - return default_db_; + return default_nb_db_; +} + +static char *default_sb_db_; + +static const char * +default_sb_db(void) +{ + if (!default_sb_db_) { + default_sb_db_ = xasprintf("unix:%s/ovn/run/db_sb.sock", ovs_rundir()); + } + return default_sb_db_; } static void @@ -1856,11 +1868,11 @@ parse_options(int argc OVS_UNUSED, char *argv[] OVS_UNUSED) } if (!ovnsb_db) { - ovnsb_db = default_db(); + ovnsb_db = default_sb_db(); } if (!ovnnb_db) { - ovnnb_db = default_db(); + ovnnb_db = default_nb_db(); } free(short_options); @@ -1976,7 +1988,8 @@ main(int argc, char *argv[]) ovsdb_idl_loop_destroy(&ovnsb_idl_loop); service_stop(); - free(default_db_); + free(default_nb_db_); + free(default_sb_db_); exit(res); } diff --git a/ovn/utilities/ovn-ctl b/ovn/utilities/ovn-ctl index b171934..85c4199 100755 --- a/ovn/utilities/ovn-ctl +++ b/ovn/utilities/ovn-ctl @@ -31,30 +31,38 @@ done ## ----- ## upgrade_ovn_dbs () { - ovn_dbs=$(ovs-appctl -t ovsdb-server ovsdb-server/list-dbs 2>/dev/null) - for db in $ovn_dbs; do - case $db in - OVN*) - action "Removing $db from ovsdb-server" \ - ovs-appctl -t ovsdb-server ovsdb-server/remove-db $db - ;; - esac - done - upgrade_db "$DB_NB_FILE" "$DB_NB_SCHEMA" - upgrade_db "$DB_SB_FILE" "$DB_SB_SCHEMA" - for db in $DB_NB_FILE $DB_SB_FILE; do - action "Adding $db to ovsdb-server" \ - ovs-appctl -t ovsdb-server ovsdb-server/add-db $db || exit 1 - done + upgrade_db "$DB_NB_FILE" "$DB_NB_SCHEMA" 1>/dev/null 2>/dev/null + upgrade_db "$DB_SB_FILE" "$DB_SB_SCHEMA" 1>/dev/null 2>/dev/null +} + +stop_ovsdb_ovn () { + if [ -f $DB_NB_PID ]; then + kill -9 $(cat $DB_NB_PID) 1>/dev/null 2>/dev/null + rm -f $DB_NB_PID 1>/dev/null 2>/dev/null + fi + if [ -f $DB_SB_PID ]; then + kill -9 $(cat $DB_SB_PID) 1>/dev/null 2>/dev/null + rm -f $DB_SB_PID 1>/dev/null 2>/dev/null + fi +} + +start_ovsdb_ovn () { + mkdir -p $OVN_DB_DIR + mkdir -p $OVN_DB_DIR/run + + ovsdb-server --detach -vconsole:off --remote=punix:$DB_NB_SOCK --remote=ptcp:$DB_NB_PORT --pidfile=$DB_NB_PID $DB_NB_FILE + ovsdb-server --detach -vconsole:off --remote=punix:$DB_SB_SOCK --remote=ptcp:$DB_SB_PORT --pidfile=$DB_SB_PID $DB_SB_FILE } start_northd () { # We expect ovn-northd to be co-located with ovsdb-server handling both the # OVN_Northbound and OVN_Southbound dbs. + stop_ovsdb_ovn upgrade_ovn_dbs + start_ovsdb_ovn set ovn-northd - set "$@" -vconsole:emer -vsyslog:err -vfile:info + set "$@" -vconsole:emer -vsyslog:err -vfile:info --ovnnb-db=unix:$DB_NB_SOCK --ovnsb-db=unix:$DB_SB_SOCK OVS_RUNDIR=${OVN_RUNDIR} start_daemon "$OVN_NORTHD_PRIORITY" "$OVN_NORTHD_WRAPPER" "$@" } @@ -70,6 +78,7 @@ start_controller () { stop_northd () { OVS_RUNDIR=${OVN_RUNDIR} stop_daemon ovn-northd + stop_ovsdb_ovn } stop_controller () { @@ -95,12 +104,24 @@ restart_controller () { ## ---- ## set_defaults () { - DB_SOCK=$rundir/db.sock - DB_NB_FILE=$dbdir/ovnnb.db - DB_SB_FILE=$dbdir/ovnsb.db + OVN_DB_DIR=$rundir/ovn + + DB_NB_SOCK=$OVN_DB_DIR/run/db_nb.sock + DB_NB_PID=$OVN_DB_DIR/run/db_nb.pid + DB_NB_PORT=6651 + + DB_SB_SOCK=$OVN_DB_DIR/run/db_sb.sock + DB_SB_PID=$OVN_DB_DIR/run/db_sb.pid + DB_SB_PORT=6652 + + DB_NB_FILE=$OVN_DB_DIR/db/ovnnb.db + DB_SB_FILE=$OVN_DB_DIR/db/ovnsb.db + DB_NB_SCHEMA=$datadir/ovn-nb.ovsschema DB_SB_SCHEMA=$datadir/ovn-sb.ovsschema + DB_SOCK=$rundir/db.sock + OVN_NORTHD_PRIORITY=-10 OVN_NORTHD_WRAPPER= OVN_CONTROLLER_PRIORITY=-10 diff --git a/ovn/utilities/ovn-nbctl.c b/ovn/utilities/ovn-nbctl.c index 324a0a4..62adfba 100644 --- a/ovn/utilities/ovn-nbctl.c +++ b/ovn/utilities/ovn-nbctl.c @@ -142,7 +142,7 @@ nbctl_default_db(void) if (!def) { def = getenv("OVN_NB_DB"); if (!def) { - def = ctl_default_db(); + def = xasprintf("unix:%s/ovn/run/db_nb.sock", ovs_rundir()); } } return def; diff --git a/ovn/utilities/ovn-sbctl.c b/ovn/utilities/ovn-sbctl.c index b428a35..15b3ea3 100644 --- a/ovn/utilities/ovn-sbctl.c +++ b/ovn/utilities/ovn-sbctl.c @@ -28,6 +28,7 @@ #include <unistd.h> #include "db-ctl-base.h" +#include "dirs.h" #include "command-line.h" #include "compiler.h" @@ -154,7 +155,7 @@ sbctl_default_db(void) if (!def) { def = getenv("OVN_SB_DB"); if (!def) { - def = ctl_default_db(); + def = xasprintf("unix:%s/ovn/run/db_sb.sock", ovs_rundir()); } } return def; -- 2.4.9 (Apple Git-60) Michael Arnaldi - Chief Technology Officer (CTO) MyMoneyEx Limited c/o Buzzacott LLP 130 Wood Street London EC2V 6DL - United Kingdom Mail: michael.arna...@mymoneyex.com Web: https://www.mymoneyex.com -------------------------------------------------------------------------------------------- This message is private and confidential. If you have received this message in error, please notify us and remove it from your system. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev