echo "## Deploy Openstack 3-node ##"
echo "#################################################"
+
+SSH="ssh -t -t"
function create_control_node_local_conf {
local_conf_file_name=${WORKSPACE}/local.conf_control
cat > ${local_conf_file_name} << EOF
if [ "${ODL_ENABLE_L3_FWD}" == "yes" ]; then
cat >> ${local_conf_file_name} << EOF
-ODL_PROVIDER_MAPPINGS=br-ex:br100
+PUBLIC_BRIDGE=${PUBLIC_BRIDGE}
+ODL_PROVIDER_MAPPINGS=${PUBLIC_BRIDGE}:br100
disable_service q-l3
Q_L3_ENABLED=True
true
EOF
scp ${WORKSPACE}/install_ha_proxy.sh ${ha_proxy_ip}:/tmp
-ssh ${ha_proxy_ip} "sudo bash /tmp/install_ha_proxy.sh"
+${SSH} ${ha_proxy_ip} "sudo bash /tmp/install_ha_proxy.sh"
scp ${WORKSPACE}/haproxy.cfg ${ha_proxy_ip}:/tmp
scp ${WORKSPACE}/deploy_ha_proxy.sh ${ha_proxy_ip}:/tmp
-ssh ${ha_proxy_ip} "sudo bash /tmp/deploy_ha_proxy.sh"
+${SSH} ${ha_proxy_ip} "sudo bash /tmp/deploy_ha_proxy.sh"
}
function collect_logs_and_exit (){
do
CONTROLLERIP=ODL_SYSTEM_${i}_IP
echo "killing karaf process..."
- ssh "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh'
+ ${SSH} "${!CONTROLLERIP}" bash -c 'ps axf | grep karaf | grep -v grep | awk '"'"'{print "kill -9 " $1}'"'"' | sh'
done
+
sleep 5
for i in `seq 1 ${NUM_ODL_SYSTEM}`
do
CONTROLLERIP=ODL_SYSTEM_${i}_IP
- ssh "${!CONTROLLERIP}" "mv /tmp/${BUNDLEFOLDER}/data/log/ /tmp/odl_log/"
- ssh "${!CONTROLLERIP}" 'tar -cf - "/tmp/odl_log/" | xz -9 -c - > /tmp/odl_karaf_log.tar.xz'
- scp "${!CONTROLLERIP}:/tmp/odl_karaf_log.tar.xz" "odl${i}_karaf.log.tar.xz"
+ ${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"
+ tar -xvf ${WORKSPACE}/odl${i}_karaf.log.tar -C . --strip-components 2 --transform s/karaf/odl${i}_karaf/g
+ rm ${WORKSPACE}/odl${i}_karaf.log.tar
done
-ssh ${OPENSTACK_CONTROL_NODE_IP} "xz -9ekvv /opt/stack/devstack/nohup.out"
-scp ${OPENSTACK_CONTROL_NODE_IP}:/opt/stack/devstack/nohup.out.xz "openstack_control_stack.log.xz"
+scp ${OPENSTACK_CONTROL_NODE_IP}:/opt/stack/devstack/nohup.out "openstack_control_stack.log"
for i in `seq 1 $((NUM_OPENSTACK_SYSTEM - 1))`
do
OSIP=OPENSTACK_COMPUTE_NODE_${i}_IP
done
}
+cat > ${WORKSPACE}/disable_firewall.sh << EOF
+sudo systemctl stop firewalld
+sudo systemctl stop iptables
+true
+EOF
+
cat > ${WORKSPACE}/get_devstack.sh << EOF
-sudo yum update -y
sudo systemctl stop firewalld
sudo yum install bridge-utils -y
sudo systemctl stop NetworkManager
echo "::1 localhost \${HOSTNAME}" >> /tmp/hosts
sudo mv /tmp/hosts /etc/hosts
sudo /usr/sbin/brctl addbr br100
+#sudo ifconfig eth0 mtu 2000
sudo mkdir /opt/stack
sudo chmod 777 /opt/stack
cd /opt/stack
os_node_list=()
echo "Stack the Control Node"
scp ${WORKSPACE}/get_devstack.sh ${OPENSTACK_CONTROL_NODE_IP}:/tmp
-ssh ${OPENSTACK_CONTROL_NODE_IP} "bash /tmp/get_devstack.sh"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "bash /tmp/get_devstack.sh"
create_control_node_local_conf
scp ${WORKSPACE}/local.conf_control ${OPENSTACK_CONTROL_NODE_IP}:/opt/stack/devstack/local.conf
ssh ${OPENSTACK_CONTROL_NODE_IP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
do
COMPUTEIP=OPENSTACK_COMPUTE_NODE_${i}_IP
scp ${WORKSPACE}/get_devstack.sh ${!COMPUTEIP}:/tmp
- ssh ${!COMPUTEIP} "bash /tmp/get_devstack.sh"
+ ${SSH} ${!COMPUTEIP} "bash /tmp/get_devstack.sh"
create_compute_node_local_conf ${!COMPUTEIP}
scp ${WORKSPACE}/local.conf_compute_${!COMPUTEIP} ${!COMPUTEIP}:/opt/stack/devstack/local.conf
ssh ${!COMPUTEIP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
iteration=0
in_progress=1
while [ ${in_progress} -eq 1 ]; do
-iterator=$(($iterator + 1))
+iteration=$(($iteration + 1))
for index in ${!os_node_list[@]}
do
echo "Check the status of stacking in ${os_node_list[index]}"
scp ${WORKSPACE}/check_stacking.sh ${os_node_list[index]}:/tmp
-ssh ${os_node_list[index]} "bash /tmp/check_stacking.sh"
+${SSH} ${os_node_list[index]} "bash /tmp/check_stacking.sh"
scp ${os_node_list[index]}:/tmp/stack_progress .
#debug
cat stack_progress
#Need to disable firewalld and iptables in control node
echo "Stop Firewall in Control Node for compute nodes to be able to reach the ports and add to hypervisor-list"
-ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo systemctl stop firewalld; sudo systemctl stop iptables"
+scp ${WORKSPACE}/disable_firewall.sh ${OPENSTACK_CONTROL_NODE_IP}:/tmp
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo bash /tmp/disable_firewall.sh"
echo "sleep for a minute and print hypervisor-list"
sleep 60
-ssh ${OPENSTACK_CONTROL_NODE_IP} "cd /opt/stack/devstack; source openrc admin admin; nova hypervisor-list;nova-manage service list;sudo systemctl status libvirtd"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "cd /opt/stack/devstack; source openrc admin admin; nova hypervisor-list;nova-manage service list"
#Need to disable firewalld and iptables in compute nodes as well
for i in `seq 1 $((NUM_OPENSTACK_SYSTEM - 1))`
do
OSIP=OPENSTACK_COMPUTE_NODE_${i}_IP
- ssh "${!OSIP}" "sudo systemctl stop firewalld; sudo systemctl stop iptables"
+ scp ${WORKSPACE}/disable_firewall.sh "${!OSIP}:/tmp"
+ ${SSH} "${!OSIP}" "sudo bash /tmp/disable_firewall.sh"
done
+# upgrading pip, urllib3 and httplib2 so that tempest tests can be run on ${OPENSTACK_CONTROL_NODE_IP}
+# 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.
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo pip install --upgrade pip"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo pip install urllib3 --upgrade"
+${SSH} ${OPENSTACK_CONTROL_NODE_IP} "sudo pip install httplib2 --upgrade"
+
echo "Locating test plan to use..."
testplan_filepath="${WORKSPACE}/test/csit/testplans/${STREAMTESTPLAN}"
if [ ! -f "${testplan_filepath}" ]; then
-v DEVSTACK_DEPLOY_PATH:/opt/stack/devstack -v USER_HOME:${HOME} ${TESTOPTIONS} ${SUITES} || true
echo "Tests Executed"
+DEVSTACK_TEMPEST_DIR="/opt/stack/tempest"
+if $(ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo sh -c '[ -f ${DEVSTACK_TEMPEST_DIR}/.testrepository/0]"); then # if Tempest results exist
+ ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo sh -c '${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/subunit-1to2 < ${DEVSTACK_TEMPEST_DIR}/.testrepository/0 > ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt'"
+ ssh ${OPENSTACK_CONTROL_NODE_IP} "sudo sh -c '${DEVSTACK_TEMPEST_DIR}/.tox/tempest/bin/python ${DEVSTACK_TEMPEST_DIR}/.tox/tempest/lib/python2.7/site-packages/os_testr/subunit2html.py ${DEVSTACK_TEMPEST_DIR}/subunit_log.txt ${DEVSTACK_TEMPEST_DIR}/tempest_results.html'"
+ scp ${OPENSTACK_CONTROL_NODE_IP}:${DEVSTACK_TEMPEST_DIR}/tempest_results.html ${WORKSPACE}/
+fi
collect_logs_and_exit
true # perhaps Jenkins is testing last exit code