PYTHON="${ROBOT_VENV}/bin/python"
SSH="ssh -t -t"
ADMIN_PASSWORD="admin"
-OPENSTACK_MASTER_CLIENTS_VERSION="pike"
+OPENSTACK_MASTER_CLIENTS_VERSION="queens"
# TODO: remove this work to run changes.py if/when it's moved higher up to be visible at the Robot level
echo "showing recent changes that made it in to the distribution used by this job"
local prog="$0"
local lastline="$1"
local lasterr="$2"
- echo "${prog}: line ${lastline}: exit status of last command: ${lasterr}"
- echo "command: ${BASH_COMMAND}"
+ echo "trap_hanlder: ${prog}: line ${lastline}: exit status of last command: ${lasterr}"
+ echo "trap_handler: command: ${BASH_COMMAND}"
collect_logs
exit 1
} # trap_handler()
if [ "${ENABLE_NETWORKING_L2GW}" == "yes" ]; then
#networking-l2gw is not officially available in any release yet. Gettting the latest stable version.
- $PYTHON -m pip install networking-l2gw
+ $PYTHON -m pip install networking-l2gw==11.0.0
fi
}
cat >> ${local_conf_file_name} << EOF
enable_plugin networking-l2gw ${NETWORKING_L2GW_DRIVER} ${ODL_ML2_BRANCH}
-NETWORKING_L2GW_SERVICE_DRIVER=L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
+NETWORKING_L2GW_SERVICE_DRIVER=L2GW:OpenDaylight:networking_odl.l2gateway.driver_v2.OpenDaylightL2gwDriver:default
EOF
fi
add_os_services "${CORE_OS_COMPUTE_SERVICES}" "${ENABLE_OS_COMPUTE_SERVICES}" "${DISABLE_OS_SERVICES}" "${local_conf_file_name}"
cat >> ${local_conf_file_name} << EOF
-
+#Added to make Nova wait until nova in control node is ready.
+NOVA_READY_TIMEOUT=1800
HOST_IP=${HOSTIP}
SERVICE_HOST=${SERVICEHOST}
Q_ML2_TENANT_NETWORK_TYPE=${TENANT_NETWORK_TYPE}
mkdir -p ${TEMPEST_LOGS_DIR}
scp ${OPENSTACK_CONTROL_NODE_1_IP}:${DEVSTACK_TEMPEST_DIR}/tempest_results.html ${TEMPEST_LOGS_DIR}
scp ${OPENSTACK_CONTROL_NODE_1_IP}:${DEVSTACK_TEMPEST_DIR}/tempest.log ${TEMPEST_LOGS_DIR}
- if [ "$(echo ${OPENSTACK_BRANCH} | cut -d/ -f2)" != "master" ]; then
+ if [ "$(echo ${OPENSTACK_BRANCH} | cut -d/ -f2)" != "queens" ]; then
mv ${WORKSPACE}/tempest_output* ${TEMPEST_LOGS_DIR}
fi
else
function is_rabbitmq_ready() {
local -r ip=$1
rm -f rabbit.txt
- ${SSH} ${ip} "sudo rabbitmqctl status" > rabbit.txt
- grep pid rabbit.txt
+ ${SSH} ${ip} "sudo rabbitmqctl list_vhosts" > rabbit.txt
+ grep nova_cell1 rabbit.txt
}
# retry the given command ($3) until success for a number of iterations ($1)
# sleeping ($2) between tries.
function retry() {
- set +e
local -r -i max_tries=${1}
local -r -i sleep_time=${2}
local -r cmd=${3}
fi
fi
done
- set -e
return ${rc}
}
# Additional services
CORE_OS_CONTROL_SERVICES+=",mysql,rabbit"
+# collect performance stats
+CORE_OS_COMPUTE_SERVICES="dstat"
# computes only need nova and odl
-CORE_OS_COMPUTE_SERVICES="n-cpu,odl-compute"
+CORE_OS_COMPUTE_SERVICES+=",n-cpu,odl-compute"
cat > ${WORKSPACE}/disable_firewall.sh << EOF
sudo systemctl stop firewalld
#Workaround For Queens, Make the physical Network as physnet1 in lib/neutron
#Workaround Comment out creating initial Networks in lib/neutron
${SSH} ${!CONTROLIP} "bash /tmp/get_devstack.sh > /tmp/get_devstack.sh.txt 2>&1"
- if [ "${ODL_ML2_BRANCH}" == "master" ]; then
+ if [ "${ODL_ML2_BRANCH}" == "stable/queens" ]; then
ssh ${!CONTROLIP} "sed -i 's/flat_networks public/flat_networks public,physnet1/' /opt/stack/devstack/lib/neutron"
ssh ${!CONTROLIP} "sed -i '186i iniset \$NEUTRON_CORE_PLUGIN_CONF ml2_type_vlan network_vlan_ranges public:1:4094,physnet1:1:4094' /opt/stack/devstack/lib/neutron"
fi
# Compare that timestamp to this log in the control stack.log: sudo rabbitmqctl set_permissions -p nova_cell1 stackrabbit
# If the n-cpu.log is earlier than the control stack.log timestamp then the failure condition is likely hit.
if [ ${NUM_OPENSTACK_COMPUTE_NODES} -gt 0 ]; then
- WAIT_FOR_RABBITMQ_MINUTES=60
- echo "Wait a maximum of ${WAIT_FOR_RABBITMQ_MINUTES}m until rabbitmq is ready to allow the controller to create nova_cell1 before the computes need it"
- retry ${WAIT_FOR_RABBITMQ_MINUTES} 60 "is_rabbitmq_ready ${OPENSTACK_CONTROL_NODE_1_IP}"
- rc=$?
- if ((${rc} == 0)); then
+ WAIT_FOR_RABBITMQ_MINUTES=60
+ echo "Wait a maximum of ${WAIT_FOR_RABBITMQ_MINUTES}m until rabbitmq is ready and nova_cell1 created to allow the controller to create nova_cell1 before the computes need it"
+ set +e
+ retry ${WAIT_FOR_RABBITMQ_MINUTES} 60 "is_rabbitmq_ready ${OPENSTACK_CONTROL_NODE_1_IP}"
+ rc=$?
+ set -e
+ if ((${rc} == 0)); then
echo "rabbitmq is ready, starting ${NUM_OPENSTACK_COMPUTE_NODES} compute(s)"
- else
+ else
echo "rabbitmq was not ready in ${WAIT_FOR_RABBITMQ_MINUTES}m"
collect_logs
exit 1
- fi
+ fi
fi
for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
sudo ip netns exec pnf_ns ifconfig pnf_veth1 up ${EXTNET_PNF_IP}/24;
sudo ovs-vsctl add-port ${PUBLIC_BRIDGE} pnf_veth0;
"
- # Control Node - set VXLAN TEP IP for Genius Auto TZ
- ${SSH} ${!CONTROLIP} "
- sudo ovs-vsctl set O . external_ids:tep-ip=${!CONTROLIP};
- "
# Control Node - external net internet address simulation
${SSH} ${!CONTROLIP} "
${SSH} $compute_ip "
sudo ovs-vsctl add-port $PUBLIC_BRIDGE $CONTROLPORT -- set interface $CONTROLPORT type=vxlan options:local_ip=$compute_ip options:remote_ip=${!CONTROLIP} options:dst_port=9876 options:key=flow
"
- #Compute Node - set VXLAN TEP IP for Genius Auto TZ
- ${SSH} $compute_ip "
- sudo ovs-vsctl set O . external_ids:tep-ip=${compute_ip};
- "
done
done