#!/bin/bash
#
# MidoNet
# -------

# This file implements functions required to configure MidoNet as the third-party
# system used with devstack's Neutron.  To include this file, specify the following
# variables in localrc:
#
# * enable_service midonet
#

# MidoNet devstack destination dir
MIDONET_DIR=${MIDONET_DIR:-$DEST/midonet}

# MidoNet client repo
MIDONET_CLIENT_REPO=${MIDONET_CLIENT_REPO:-https://github.com/midokura/python-midonetclient.git}
MIDONET_CLIENT_BRANCH=${MIDONET_CLIENT_BRANCH:-master}
MIDONET_CLIENT_DIR=${MIDONET_CLIENT_DIR:-$MIDONET_DIR/python-midonetclient}

# Save trace setting
MN3_XTRACE=$(set +o | grep xtrace)
set +o xtrace

function configure_midonet {
    :
}

function init_midonet {
    :
}

function install_midonet {
    git_clone $MIDONET_CLIENT_REPO $MIDONET_CLIENT_DIR $MIDONET_CLIENT_BRANCH
    export PYTHONPATH=$MIDONET_CLIENT_DIR/src:$PYTHONPATH
}

function start_midonet {
    :
}

function stop_midonet {
    :
}

function check_midonet {
    :
}

# Restore xtrace
$MN3_XTRACE
