# ${ROBOT_VENV} comes from the include-raw-integration-install-robotframework.sh
# script.
source ${ROBOT_VENV}/bin/activate
+PYTHON="${ROBOT_VENV}/bin/python"
# 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"
-pip install --upgrade urllib3
+$PYTHON -m pip install --upgrade urllib3
python ${WORKSPACE}/test/tools/distchanges/changes.py -d /tmp/distribution_folder \
-u ${ACTUAL_BUNDLE_URL} -b ${DISTROBRANCH} \
-r ssh://jenkins-${SILO}@git.opendaylight.org:29418 || true
EOF
fi #check for ENABLE_NETWORKING_L2GW
-fi #check for ODL_ML2_BRANCH
-
fi #ODL_ENABLE_L3_FWD check
cat >> ${local_conf_file_name} << EOF
minimize_polling=True
[ml2]
-# Needed for VLAN provider tests - because our provider networks are always encapsulated in VXLAN (br-phys1)
-# MTU(1440) + VXLAN(50) + VLAN(4) = 1494 < MTU eth0/br-phys1(1500)
+# Needed for VLAN provider tests - because our provider networks are always encapsulated in VXLAN (br-physnet1)
+# MTU(1440) + VXLAN(50) + VLAN(4) = 1494 < MTU eth0/br-physnet1(1500)
physical_network_mtus = ${PUBLIC_PHYSICAL_NETWORK}:1440
path_mtu = 1490
for i in `seq 1 ${NUM_ODL_SYSTEM}`
do
CONTROLLERIP=ODL_SYSTEM_${i}_IP
+ echo "Lets's take the karaf thread dump again..."
+ KARAF_PID=$(ssh ${!CONTROLLERIP} "ps aux | grep ${KARAF_ARTIFACT} | grep -v grep | tr -s ' ' | cut -f2 -d' '")
+ ssh ${!CONTROLLERIP} "jstack $KARAF_PID"> ${WORKSPACE}/karaf_${i}_threads_after.log || true
echo "killing karaf process..."
${SSH} "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh'
done
${SSH} "${!CONTROLLERIP}" "cp -r /tmp/${BUNDLEFOLDER}/data/log /tmp/odl_log"
${SSH} "${!CONTROLLERIP}" "tar -cf /tmp/odl${i}_karaf.log.tar /tmp/odl_log/*"
scp "${!CONTROLLERIP}:/tmp/odl${i}_karaf.log.tar" "${WORKSPACE}/odl${i}_karaf.log.tar"
+ ${SSH} "${!CONTROLLERIP}" "tar -cf /tmp/odl${i}_zrpcd.log.tar /tmp/zrpcd.init.log"
+ scp "${!CONTROLLERIP}:/tmp/odl${i}_zrpcd.log.tar" "${WORKSPACE}/odl${i}_zrpcd.log.tar"
tar -xvf ${WORKSPACE}/odl${i}_karaf.log.tar -C . --strip-components 2 --transform s/karaf/odl${i}_karaf/g
grep "ROBOT MESSAGE\| ERROR " odl${i}_karaf.log > odl${i}_err.log
grep "ROBOT MESSAGE\|Exception" odl${i}_karaf.log > odl${i}_exception.log
scp ${!OS_CTRL_IP}:/var/log/openvswitch/ovs-vswitchd.log ${OS_CTRL_FOLDER}/ovs-vswitchd.log
scp ${!OS_CTRL_IP}:/etc/neutron/neutron.conf ${OS_CTRL_FOLDER}/neutron.conf
scp ${!OS_CTRL_IP}:/etc/nova/nova.conf ${OS_CTRL_FOLDER}/nova.conf
+ scp ${!OS_CTRL_IP}:/etc/kuryr/kuryr.conf ${OS_CTRL_FOLDER}/kuryr.conf
rsync -avhe ssh ${!OS_CTRL_IP}:/opt/stack/logs/* ${OS_CTRL_FOLDER} # rsync to prevent copying of symbolic links
scp extra_debug.sh ${!OS_CTRL_IP}:/tmp
${SSH} ${!OS_CTRL_IP} "bash /tmp/extra_debug.sh > /tmp/extra_debug.log"
git checkout $OPENSTACK_BRANCH
EOF
+cat > "${WORKSPACE}/setup_host_cell_mapping.sh" << EOF
+sudo nova-manage cell_v2 map_cell0
+sudo nova-manage cell_v2 simple_cell_setup
+sudo nova-manage db sync
+sudo nova-manage cell_v2 discover_hosts
+EOF
+
[ "$NUM_OPENSTACK_SITES" ] || NUM_OPENSTACK_SITES=1
compute_index=1
odl_index=1
exit 1
fi
+ # For Ocata, if we do not enable the n-cpu in control node
+ # We need to discover hosts manually and ensure that they are mapped to cells.
+ # reference: https://ask.openstack.org/en/question/102256/how-to-configure-placement-service-for-compute-node-on-ocata/
+ if [ "${OPENSTACK_BRANCH}" == "stable/ocata" ]; then
+ scp ${WORKSPACE}/setup_host_cell_mapping.sh ${!CONTROLIP}:/tmp
+ ${SSH} ${!CONTROLIP} "sudo bash /tmp/setup_host_cell_mapping.sh"
+ fi
+
# upgrading pip, urllib3 and httplib2 so that tempest tests can be run on openstack control node
# this needs to happen after devstack runs because it seems devstack is pulling in specific versions
# of these libs that are not working for tempest.
EXTNET_VLAN_ID=167
EXTNET_INTERNET_IP="10.9.9.9"
EXTNET_PNF_IP="10.10.10.253"
- if [[ ${CONTROLLERFEATURES} == *"odl-ovsdb-openstack"* ]]; then
- ${SSH} ${!CONTROLIP} "sudo ifconfig ${PUBLIC_BRIDGE} up ${EXTNET_GATEWAY_IP}/24"
- else
- ${SSH} ${!CONTROLIP} "sudo ip link add link ${PUBLIC_BRIDGE} name ${PUBLIC_BRIDGE}.${EXTNET_VLAN_ID} type vlan id ${EXTNET_VLAN_ID}"
- ${SSH} ${!CONTROLIP} "sudo ifconfig ${PUBLIC_BRIDGE} up"
- ${SSH} ${!CONTROLIP} "sudo ifconfig ${PUBLIC_BRIDGE}.${EXTNET_VLAN_ID} up ${EXTNET_GATEWAY_IP}/24"
-
- # Control Node - external net PNF simulation
- ${SSH} ${!CONTROLIP} "
- sudo ip netns add pnf_ns;
- sudo ip link add pnf_veth0 type veth peer name pnf_veth1;
- sudo ip link set pnf_veth1 netns pnf_ns;
- sudo ip link set pnf_veth0 up;
- sudo ip netns exec pnf_ns ifconfig pnf_veth1 up;
- sudo ip netns exec pnf_ns ip link add link pnf_veth1 name pnf_veth1.${EXTNET_VLAN_ID} type vlan id ${EXTNET_VLAN_ID};
- sudo ip netns exec pnf_ns ifconfig pnf_veth1.${EXTNET_VLAN_ID} up ${EXTNET_PNF_IP}/24;
- sudo ovs-vsctl add-port ${PUBLIC_BRIDGE} pnf_veth0;
- "
-
- # Control Node - external net internet address simulation
- ${SSH} ${!CONTROLIP} "
- sudo ip tuntap add dev internet_tap mode tap;
- sudo ifconfig internet_tap up ${EXTNET_INTERNET_IP}/24;
- "
- fi
+ ${SSH} ${!CONTROLIP} "sudo ifconfig ${PUBLIC_BRIDGE} up ${EXTNET_GATEWAY_IP}/24"
+
+ # Control Node - external net PNF simulation
+ ${SSH} ${!CONTROLIP} "
+ sudo ip netns add pnf_ns;
+ sudo ip link add pnf_veth0 type veth peer name pnf_veth1;
+ sudo ip link set pnf_veth1 netns pnf_ns;
+ sudo ip link set pnf_veth0 up;
+ 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 - external net internet address simulation
+ ${SSH} ${!CONTROLIP} "
+ sudo ip tuntap add dev internet_tap mode tap;
+ sudo ifconfig internet_tap up ${EXTNET_INTERNET_IP}/24;
+ "
# Computes
compute_index=1
SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
+#Environment Variables Needed to execute Openstack Client for NEtvirt Jobs
+cat > /tmp/os_netvirt_client_rc << EOF
+export OS_USERNAME=admin
+export OS_PASSWORD=admin
+export OS_PROJECT_NAME=admin
+export OS_USER_DOMAIN_NAME=default
+export OS_PROJECT_DOMAIN_NAME=default
+export OS_AUTH_URL="http://${!CONTROLIP}:35357/v3"
+export OS_IDENTITY_API_VERSION=3
+export OS_IMAGE_API_VERSION=2
+export OS_TENANT_NAME=admin
+unset OS_CLOUD
+EOF
+
+source /tmp/os_netvirt_client_rc
+
#FIXME currently support only 1 site
echo "Starting Robot test suites ${SUITES} ..."
# please add pybot -v arguments on a single line and alphabetized
-pybot -N ${TESTPLAN} --removekeywords wuks -c critical -e exclude \
+pybot -N ${TESTPLAN} --removekeywords wuks -c critical -e exclude -e skip_if_${DISTROSTREAM} \
-v BUNDLEFOLDER:${BUNDLEFOLDER} \
-v BUNDLE_URL:${ACTUAL_BUNDLE_URL} \
-v CONTROLLER_USER:${USER} \