devstack/extras.d/80-opendaylight.sh
Sam Hague 408efd2170 Add bridge_mappings to extras/80-opendaylight.sh to support vlan isolation.
OpenDaylight integration with Openstack requires some extra configuration
information to be set in the ovsdb via the other_config value. Currently
only the local ip address is set. bridge_mappings needs to be added to support
vlan isolation.

This requires changing the form of the existing ovs-vsctl command to set
the other_config value. The current command does a replace so the last
command to run overwrites any other values. The command is changed to
append values instead.

Change-Id: Ia001ecf27c8f5ace05af014ecce0b13f6d490ac1
2014-04-23 11:19:28 -04:00

75 lines
2.1 KiB
Bash

# opendaylight.sh - DevStack extras script
if is_service_enabled odl-server odl-compute; then
# Initial source
[[ "$1" == "source" ]] && source $TOP_DIR/lib/opendaylight
fi
if is_service_enabled odl-server; then
if [[ "$1" == "source" ]]; then
# no-op
:
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
install_opendaylight
configure_opendaylight
init_opendaylight
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
configure_ml2_odl
# This has to start before Neutron
start_opendaylight
elif [[ "$1" == "stack" && "$2" == "post-extra" ]]; then
# no-op
:
fi
if [[ "$1" == "unstack" ]]; then
stop_opendaylight
cleanup_opendaylight
fi
if [[ "$1" == "clean" ]]; then
# no-op
:
fi
fi
if is_service_enabled odl-compute; then
if [[ "$1" == "source" ]]; then
# no-op
:
elif [[ "$1" == "stack" && "$2" == "install" ]]; then
install_opendaylight-compute
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
create_nova_conf_neutron
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
echo_summary "Initializing OpenDaylight"
ODL_LOCAL_IP=${ODL_LOCAL_IP:-$HOST_IP}
ODL_MGR_PORT=${ODL_MGR_PORT:-6640}
read ovstbl <<< $(sudo ovs-vsctl get Open_vSwitch . _uuid)
sudo ovs-vsctl set-manager tcp:$ODL_MGR_IP:$ODL_MGR_PORT
if [[ -n "$OVS_BRIDGE_MAPPINGS" ]] && [[ "$ENABLE_TENANT_VLANS" == "True" ]]; then
sudo ovs-vsctl set Open_vSwitch $ovstbl \
other_config:bridge_mappings=$OVS_BRIDGE_MAPPINGS
fi
sudo ovs-vsctl set Open_vSwitch $ovstbl other_config:local_ip=$ODL_LOCAL_IP
elif [[ "$1" == "stack" && "$2" == "post-extra" ]]; then
# no-op
:
fi
if [[ "$1" == "unstack" ]]; then
sudo ovs-vsctl del-manager
BRIDGES=$(sudo ovs-vsctl list-br)
for bridge in $BRIDGES ; do
sudo ovs-vsctl del-controller $bridge
done
stop_opendaylight-compute
fi
if [[ "$1" == "clean" ]]; then
# no-op
:
fi
fi