diff --git a/devstack/plugin.sh b/devstack/plugin.sh new file mode 100644 index 00000000..a0ea51c9 --- /dev/null +++ b/devstack/plugin.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +# Copyright 2015 Midokura SARL +# +# 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. + +# This script is meant to be sourced from devstack. It is a wrapper of +# devmido scripts that allows proper exporting of environment variables. + +ABSOLUTE_PATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd) +PLUGIN_PATH=$ABSOLUTE_PATH/.. + +TAAS_OVS_AGENT_BINARY="$NEUTRON_BIN_DIR/neutron-taas-openvswitch-agent" +TAAS_OVS_AGENT_CONF_FILE="/etc/neutron/taas.ini" + +function install_taas { + pip_install --no-deps --editable $PLUGIN_PATH +} + +function configure_taas_plugin { + _neutron_service_plugin_class_add taas +} + +function configure_taas_openvswitch_agent { + local conf=$TAAS_OVS_AGENT_CONF_FILE + + cp $PLUGIN_PATH/etc/taas.ini $conf + iniset $conf taas driver neutron_taas.services.taas.drivers.linux.openvswitch_taas.OvsTaasDriver + iniset $conf taas enabled True + iniset $conf taas vlan_range_start 3000 + iniset $conf taas vlan_range_end 3500 +} + +function start_taas_openvswitch_agent { + run_process taas-openvswitch-agent "python $TAAS_OVS_AGENT_BINARY --config-file $NEUTRON_CONF --config-file $TAAS_OVS_AGENT_CONF_FILE" +} + +if is_service_enabled taas; then + if [[ "$1" == "stack" ]]; then + if [[ "$2" == "pre-install" ]]; then + : + elif [[ "$2" == "install" ]]; then + install_taas + configure_taas_plugin + elif [[ "$2" == "extra" ]]; then + : + elif [[ "$2" == "post-config" ]]; then + neutron-db-manage --subproject tap-as-a-service upgrade head + fi + elif [[ "$1" == "unstack" ]]; then + : + fi +fi + +if is_service_enabled taas_openvswitch_agent; then + if [[ "$1" == "stack" ]]; then + if [[ "$2" == "pre-install" ]]; then + : + elif [[ "$2" == "install" ]]; then + install_taas + elif [[ "$2" == "extra" ]]; then + : + elif [[ "$2" == "post-config" ]]; then + configure_taas_openvswitch_agent + start_taas_openvswitch_agent + fi + elif [[ "$1" == "unstack" ]]; then + : + fi +fi diff --git a/etc/taas.ini b/etc/taas.ini new file mode 100755 index 00000000..f569f67c --- /dev/null +++ b/etc/taas.ini @@ -0,0 +1,5 @@ +[taas] +driver = neutron_taas.services.taas.drivers.linux.ovs_taas.OvsTaasDriver +enabled = True +vlan_range_start = 3000 +vlan_range_end = 3500