trap 'trap_handler ${LINENO} ${$?}' ERR
-function print_job_parameters() {
- cat << EOF
-
-Job parameters:
-DISTROBRANCH: ${DISTROBRANCH}
-DISTROSTREAM: ${DISTROSTREAM}
-BUNDLE_URL: ${BUNDLE_URL}
-CONTROLLERFEATURES: ${CONTROLLERFEATURES}
-CONTROLLERDEBUGMAP: ${CONTROLLERDEBUGMAP}
-TESTPLAN: ${TESTPLAN}
-SUITES: ${SUITES}
-PATCHREFSPEC: ${PATCHREFSPEC}
-OPENSTACK_BRANCH: ${OPENSTACK_BRANCH}
-DEVSTACK_HASH: ${DEVSTACK_HASH}
-ODL_ML2_DRIVER_REPO: ${ODL_ML2_DRIVER_REPO}
-ODL_ML2_BRANCH: ${ODL_ML2_BRANCH}
-ODL_ML2_DRIVER_VERSION: ${ODL_ML2_DRIVER_VERSION}
-ODL_ML2_PORT_BINDING: ${ODL_ML2_PORT_BINDING}
-DEVSTACK_KUBERNETES_PLUGIN_REPO: ${DEVSTACK_KUBERNETES_PLUGIN_REPO}
-DEVSTACK_LBAAS_PLUGIN_REPO: ${DEVSTACK_LBAAS_PLUGIN_REPO}
-DEVSTACK_NETWORKING_SFC_PLUGIN_REPO: ${DEVSTACK_NETWORKING_SFC_PLUGIN_REPO}
-ODL_ENABLE_L3_FWD: ${ODL_ENABLE_L3_FWD}
-IPSEC_VXLAN_TUNNELS_ENABLED: ${IPSEC_VXLAN_TUNNELS_ENABLED}
-PUBLIC_BRIDGE: ${PUBLIC_BRIDGE}
-ENABLE_HAPROXY_FOR_NEUTRON: ${ENABLE_HAPROXY_FOR_NEUTRON}
-ENABLE_OS_SERVICES: ${ENABLE_OS_SERVICES}
-ENABLE_OS_COMPUTE_SERVICES: ${ENABLE_OS_COMPUTE_SERVICES}
-ENABLE_OS_NETWORK_SERVICES: ${ENABLE_OS_NETWORK_SERVICES}
-ENABLE_OS_PLUGINS: ${ENABLE_OS_PLUGINS}
-DISABLE_OS_SERVICES: ${DISABLE_OS_SERVICES}
-TENANT_NETWORK_TYPE: ${TENANT_NETWORK_TYPE}
-SECURITY_GROUP_MODE: ${SECURITY_GROUP_MODE}
-ENABLE_ITM_DIRECT_TUNNELS: ${ENABLE_ITM_DIRECT_TUNNELS}
-PUBLIC_PHYSICAL_NETWORK: ${PUBLIC_PHYSICAL_NETWORK}
-ENABLE_NETWORKING_L2GW: ${ENABLE_NETWORKING_L2GW}
-CREATE_INITIAL_NETWORKS: ${CREATE_INITIAL_NETWORKS}
-LBAAS_SERVICE_PROVIDER: ${LBAAS_SERVICE_PROVIDER}
-NUM_OPENSTACK_SITES: ${NUM_OPENSTACK_SITES}
-ODL_SFC_DRIVER: ${ODL_SFC_DRIVER}
-ODL_SNAT_MODE: ${ODL_SNAT_MODE}
-
-EOF
-}
-
print_job_parameters
function create_etc_hosts() {
done
if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
- #networking-l2gw is not officially available in any release yet. Gettting the latest stable version.
+ #networking-l2gw is not officially available in any release yet. Getting the latest stable version.
$PYTHON -m pip install networking-l2gw==11.0.0
fi
}
echo 0
}
-function fix_libvirt_version_n_cpu_pike() {
- local ip=$1
- ${SSH} ${ip} "
- cd /opt/stack;
- git clone https://git.openstack.org/openstack/requirements;
- cd requirements;
- git checkout stable/pike;
- sed -i s/libvirt-python===3.5.0/libvirt-python===4.2.0/ upper-constraints.txt
- "
-}
-
#Function to install rdo release
# This will help avoiding installing wrong version of packages which causes
# functionality failures
NEUTRON_SFC_DRIVERS=${ODL_SFC_DRIVER} # Only relevant if networking-sfc plugin is enabled
NEUTRON_FLOWCLASSIFIER_DRIVERS=${ODL_SFC_DRIVER} # Only relevant if networking-sfc plugin is enabled
ETCD_PORT=2379
+PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
+PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
+ML2_VLAN_RANGES=${PUBLIC_PHYSICAL_NETWORK}
+ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
EOF
if [ "${TENANT_NETWORK_TYPE}" == "local" ]; then
cat >> ${local_conf_file_name} << EOF
EOF
fi
- if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
- cat >> ${local_conf_file_name} << EOF
-
-PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
-PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
-ML2_VLAN_RANGES=${PUBLIC_PHYSICAL_NETWORK}
-ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
-EOF
-
- if [ "${ODL_ML2_DRIVER_VERSION}" == "v2" ]; then
- SERVICE_PLUGINS="odl-router_v2"
- else
- SERVICE_PLUGINS="odl-router"
- fi
- if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
- SERVICE_PLUGINS+=", networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin"
- fi
- if [ "${IS_LBAAS_PLUGIN_ENABLED}" == "yes" ]; then
- SERVICE_PLUGINS+=", lbaasv2"
- fi
- if [ "${IS_SFC_PLUGIN_ENABLED}" == "yes" ]; then
- SERVICE_PLUGINS+=", networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,networking_sfc.services.sfc.plugin.SfcPlugin"
- fi
- fi #check for ODL_ENABLE_L3_FWD
+ if [ "${ODL_ML2_DRIVER_VERSION}" == "v2" ]; then
+ SERVICE_PLUGINS="odl-router_v2"
+ else
+ SERVICE_PLUGINS="odl-router"
+ fi
+ if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
+ SERVICE_PLUGINS+=", networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin"
+ fi
+ if [ "${IS_LBAAS_PLUGIN_ENABLED}" == "yes" ]; then
+ SERVICE_PLUGINS+=", lbaasv2"
+ fi
+ if [ "${IS_SFC_PLUGIN_ENABLED}" == "yes" ]; then
+ SERVICE_PLUGINS+=", networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin,networking_sfc.services.sfc.plugin.SfcPlugin"
+ fi
cat >> ${local_conf_file_name} << EOF
RABBIT_PASSWORD=${ADMIN_PASSWORD}
SERVICE_TOKEN=${ADMIN_PASSWORD}
SERVICE_PASSWORD=${ADMIN_PASSWORD}
+
+PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
+PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
+ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
EOF
if [[ "${ENABLE_OS_PLUGINS}" =~ networking-odl ]]; then
EOF
fi
- if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
- cat >> ${local_conf_file_name} << EOF
-
-PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
-PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK}
-ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS}
-Q_L3_ENABLED=True
-ODL_L3=${ODL_L3}
-EOF
- fi
-
cat >> ${local_conf_file_name} << EOF
[[post-config|/etc/nova/nova.conf]]
return ${rc}
}
-# if we are using the new netvirt impl, as determined by the feature name
-# odl-netvirt-openstack (note: old impl is odl-ovsdb-openstack) then we
-# want PROVIDER_MAPPINGS to be used -- this should be fixed if we want to support
-# external networks in legacy netvirt
-if [[ ${CONTROLLERFEATURES} == *"odl-netvirt-openstack"* ]]; then
- ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}"
-else
- ODL_PROVIDER_MAPPINGS=
-fi
-
-# if we are using the old netvirt impl, as determined by the feature name
-# odl-ovsdb-openstack (note: new impl is odl-netvirt-openstack) then we
-# want ODL_L3 to be True. New impl wants it False
-if [[ ${CONTROLLERFEATURES} == *"odl-ovsdb-openstack"* ]]; then
- ODL_L3=True
-else
- ODL_L3=False
-fi
-
+ODL_PROVIDER_MAPPINGS="\${PUBLIC_PHYSICAL_NETWORK}:${PUBLIC_BRIDGE}"
RECLONE=False
ODL_PORT=8181
scp ${WORKSPACE}/get_devstack.sh ${!CONTROLIP}:/tmp
# devstack Master is yet to migrate fully to lib/neutron, there are some ugly hacks that is
# affecting the stacking.
- #Workaround For Queens, Make the physical Network as physnet1 in lib/neutron
- #Workaround Comment out creating initial Networks in lib/neutron
+ # Workaround For Queens, Make the physical Network as physnet1 in lib/neutron
+ # In Queens the neutron new libs are used and do not have the following options from Pike and earlier:
+ # Q_ML2_PLUGIN_FLAT_TYPE_OPTIONS could be used for the flat_networks
+ # and Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS could be used for the ml2_type_vlan
${SSH} ${!CONTROLIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1"
if [ "${ODL_ML2_BRANCH}" == "stable/queens" ]; then
ssh ${!CONTROLIP} "sed -i 's/flat_networks public/flat_networks public,physnet1/' /opt/stack/devstack/lib/neutron"
scp ${WORKSPACE}/hosts_file ${!COMPUTEIP}:/tmp/hosts
scp ${WORKSPACE}/get_devstack.sh ${!COMPUTEIP}:/tmp
${SSH} ${!COMPUTEIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1"
- if [ "${ODL_ML2_BRANCH}" == "stable/pike" ]; then
- echo "Updating requirements for ${ODL_ML2_BRANCH}"
- echo "Workaround for libvirt-python failing installation"
- echo "Modify upper-constraints to use libvirt-python 4.2.0"
- fix_libvirt_version_n_cpu_pike ${!COMPUTEIP}
- fi
create_compute_node_local_conf ${!COMPUTEIP} ${!CONTROLIP} ${ODLMGRIP[$SITE_INDEX]} "${ODL_OVS_MGRS[$SITE_INDEX]}"
scp ${WORKSPACE}/local.conf_compute_${!COMPUTEIP} ${!COMPUTEIP}:/opt/stack/devstack/local.conf
echo "Install rdo release to avoid incompatible Package versions"
-v NUM_OS_SYSTEM:${NUM_OPENSTACK_SYSTEM} \
-v NUM_TOOLS_SYSTEM:${NUM_TOOLS_SYSTEM} \
-v ODL_SNAT_MODE:${ODL_SNAT_MODE} \
- -v ODL_ENABLE_L3_FWD:${ODL_ENABLE_L3_FWD} \
-v ODL_STREAM:${DISTROSTREAM} \
-v ODL_SYSTEM_IP:${ODL_SYSTEM_IP} \
-v ODL_SYSTEM_1_IP:${ODL_SYSTEM_1_IP} \