devstack/lib/neutron_thirdparty/ryu
armando-migliaccio ef1e08022b Add sanity check framework to verify neutron server/backend integration
Some Neutron plugins require controllers and multiple backend services
to operate correctly. This patch adds the framework for third party
plugins to run sanity checks after Neutron Server has started.

This simple addition may reveal potential configuration pitfalls
much earlier in the dev/test cycle, thus speeding up the build
churn process.

The first plugin that uses this framework is the VMware NSX one.

Closes-bug: #1265671

Change-Id: I17f9c5c8e828316ff03f0eff42ae4ae6c6c58733
2014-01-14 08:14:25 -08:00

84 lines
2.1 KiB
Plaintext

# Ryu OpenFlow Controller
# -----------------------
# Save trace setting
MY_XTRACE=$(set +o | grep xtrace)
set +o xtrace
RYU_DIR=$DEST/ryu
# Ryu API Host
RYU_API_HOST=${RYU_API_HOST:-127.0.0.1}
# Ryu API Port
RYU_API_PORT=${RYU_API_PORT:-8080}
# Ryu OFP Host
RYU_OFP_HOST=${RYU_OFP_HOST:-127.0.0.1}
# Ryu OFP Port
RYU_OFP_PORT=${RYU_OFP_PORT:-6633}
# Ryu Applications
RYU_APPS=${RYU_APPS:-ryu.app.simple_isolation,ryu.app.rest}
# configure_ryu can be called multiple times as neutron_pluing/ryu may call
# this function for neutron-ryu-agent
_RYU_CONFIGURED=${_RYU_CONFIGURED:-False}
function configure_ryu() {
if [[ "$_RYU_CONFIGURED" == "False" ]]; then
setup_develop $RYU_DIR
_RYU_CONFIGURED=True
fi
}
function init_ryu() {
RYU_CONF_DIR=/etc/ryu
if [[ ! -d $RYU_CONF_DIR ]]; then
sudo mkdir -p $RYU_CONF_DIR
fi
sudo chown $STACK_USER $RYU_CONF_DIR
RYU_CONF=$RYU_CONF_DIR/ryu.conf
sudo rm -rf $RYU_CONF
# Ryu configuration
RYU_CONF_CONTENTS=${RYU_CONF_CONTENTS:-"[DEFAULT]
app_lists=$RYU_APPS
wsapi_host=$RYU_API_HOST
wsapi_port=$RYU_API_PORT
ofp_listen_host=$RYU_OFP_HOST
ofp_tcp_listen_port=$RYU_OFP_PORT
neutron_url=http://$Q_HOST:$Q_PORT
neutron_admin_username=$Q_ADMIN_USERNAME
neutron_admin_password=$SERVICE_PASSWORD
neutron_admin_tenant_name=$SERVICE_TENANT_NAME
neutron_admin_auth_url=$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_AUTH_PORT/v2.0
neutron_auth_strategy=$Q_AUTH_STRATEGY
neutron_controller_addr=tcp:$RYU_OFP_HOST:$RYU_OFP_PORT
"}
echo "${RYU_CONF_CONTENTS}" > $RYU_CONF
}
# install_ryu can be called multiple times as neutron_pluing/ryu may call
# this function for neutron-ryu-agent
# Make this function idempotent and avoid cloning same repo many times
# with RECLONE=yes
_RYU_INSTALLED=${_RYU_INSTALLED:-False}
function install_ryu() {
if [[ "$_RYU_INSTALLED" == "False" ]]; then
git_clone $RYU_REPO $RYU_DIR $RYU_BRANCH
_RYU_INSTALLED=True
fi
}
function start_ryu() {
screen_it ryu "cd $RYU_DIR && $RYU_DIR/bin/ryu-manager --config-file $RYU_CONF"
}
function stop_ryu() {
:
}
function check_ryu() {
:
}
# Restore xtrace
$MY_XTRACE