Merge "Fix SC2059 for ShellCheck 0.4.4, printf formatting"
[releng/builder.git] / jjb / integration / integration-deploy-openstack-run-test.sh
index 07d0d61a708f9519db6eff64036f4b2ca5c03918..277e488ef5797e59daae8b2a35f84daf6e996056 100644 (file)
@@ -110,10 +110,6 @@ function install_openstack_clients_in_robot_vm() {
 function install_rdo_release() {
     local ip=$1
     case ${OPENSTACK_BRANCH} in
-       *pike*)
-          ${SSH} ${ip} "sudo yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-pike/rdo-release-pike-1.noarch.rpm"
-          ;;
-
        *queens*)
           ${SSH} ${ip} "sudo yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-queens/rdo-release-queens-1.noarch.rpm"
           ;;
@@ -127,7 +123,7 @@ function install_rdo_release() {
 # Involves just setting up the shared directory
 function setup_live_migration_control() {
     local control_ip=$1
-    printf "${control_ip}:Setup directory Share with NFS"
+    printf "%s:Setup directory Share with NFS" "${control_ip}"
     cat > ${WORKSPACE}/setup_live_migration_control.sh << EOF
 sudo mkdir --mode=777 /vm_instances
 sudo chown -R jenkins:jenkins /vm_instances
@@ -144,8 +140,8 @@ EOF
 function setup_live_migration_compute() {
     local compute_ip=$1
     local control_ip=$2
-    printf "${compute_ip}:Mount Shared directory from ${control_ip}"
-    printf "${compute_ip}:Configure libvirt in listen mode"
+    printf "%s:Mount Shared directory from ${control_ip}" "${compute_ip}"
+    printf "%s:Configure libvirt in listen mode" "${compute_ip}"
     cat >  ${WORKSPACE}/setup_live_migration_compute.sh << EOF
 sudo yum install -y libvirt libvirt-devel nfs-utils
 sudo crudini --verbose  --set --inplace /etc/libvirt/libvirtd.conf '' listen_tls 0
@@ -463,22 +459,26 @@ EOF
 global
   daemon
   group  haproxy
-  log  /dev/log local0
+  log  /dev/log local0 debug
   maxconn  20480
   pidfile  /tmp/haproxy.pid
+  ssl-default-bind-ciphers  !SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES
+  ssl-default-bind-options  no-sslv3 no-tlsv10
+  stats  socket /var/lib/haproxy/stats mode 600 level user
+  stats  timeout 2m
   user  haproxy
 
 defaults
   log  global
+  option  log-health-checks
   maxconn  4096
   mode  tcp
   retries  3
   timeout  http-request 10s
-  timeout  queue 1m
-  timeout  connect 10s
-  timeout  client 1m
-  timeout  server 1m
-  timeout  check 10s
+  timeout  queue 2m
+  timeout  connect 5s
+  timeout  client 5s
+  timeout  server 5s
 
 listen opendaylight
   bind ${haproxy_ip}:8181 transparent
@@ -487,7 +487,6 @@ listen opendaylight
   http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
   option httpchk GET /diagstatus
   option httplog
-  balance source
 EOF
 
     odlindex=1
@@ -501,16 +500,14 @@ EOF
 listen opendaylight_ws
   bind ${haproxy_ip}:8185 transparent
   mode http
-  timeout connect 5s
-  timeout client 25s
-  timeout server 25s
   timeout tunnel 3600s
-  balance source
+  option httpchk GET /data-change-event-subscription/neutron:neutron/neutron:ports/datastore=OPERATIONAL/scope=SUBTREE HTTP/1.1\r\nHost:\ ws.opendaylight.org\r\nConnection:\ Upgrade\r\nUpgrade:\ websocket\r\nSec-WebSocket-Key:\ haproxy\r\nSec-WebSocket-Version:\ 13\r\nSec-WebSocket-Protocol:\ echo-protocol
+  http-check expect status 101
 EOF
 
     odlindex=1
     for odlip in ${odl_ips[*]}; do
-        echo "  server opendaylight-ws-${odlindex} ${odlip}:8185 check fall 5 inter 2000 rise 2" >> ${WORKSPACE}/haproxy.cfg
+        echo "  server opendaylight-ws-${odlindex} ${odlip}:8185 check fall 3 inter 1000 rise 2" >> ${WORKSPACE}/haproxy.cfg
         odlindex=$((odlindex+1))
     done
 
@@ -730,16 +727,14 @@ if [ -n "${DEVSTACK_HASH}" ]; then
     echo "git checkout ${DEVSTACK_HASH}"
     git checkout ${DEVSTACK_HASH}
 fi
+wget https://raw.githubusercontent.com/shague/odl_tools/master/fix-logging.patch.txt -O /tmp/fix-logging.patch.txt
+patch --verbose -p1 -i /tmp/fix-logging.patch.txt
 git --no-pager log --pretty=format:'%h %<(13)%ar%<(13)%cr %<(20,trunc)%an%d %s%b' -n20
 echo
 
 echo "workaround: do not upgrade openvswitch"
 sudo yum install -y yum-plugin-versionlock
 sudo yum versionlock add openvswitch
-
-#Install qemu-img command in Control Node for Pike
-echo "Install qemu-img application"
-sudo yum install -y qemu-img
 EOF
 
 cat > "${WORKSPACE}/setup_host_cell_mapping.sh" << EOF
@@ -832,6 +827,11 @@ for i in `seq 1 ${NUM_OPENSTACK_CONTROL_NODES}`; do
         setup_live_migration_compute ${!CONTROLIP} ${!CONTROLIP}
     fi
     [ -n "${OVS_INSTALL}" ] && install_ovs ${!CONTROLIP} /tmp/ovs_rpms
+    if [[ "${ENABLE_OS_PLUGINS}" =~ networking-sfc ]]; then
+        # This should be really done by networking-odl devstack plugin,
+        # but in the meantime do it ourselves
+        ssh ${!CONTROLIP} "sudo ovs-vsctl set Open_vSwitch . external_ids:of-tunnel=true"
+    fi
     echo "Stack the control node ${i} of ${NUM_OPENSTACK_CONTROL_NODES}: ${CONTROLIP}"
     ssh ${!CONTROLIP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
     ssh ${!CONTROLIP} "ps -ef | grep stack.sh"
@@ -882,6 +882,11 @@ for i in `seq 1 ${NUM_OPENSTACK_COMPUTE_NODES}`; do
     install_rdo_release ${!COMPUTEIP}
     setup_live_migration_compute ${!COMPUTEIP} ${!CONTROLIP}
     [ -n "${OVS_INSTALL}" ] && install_ovs ${!COMPUTEIP} /tmp/ovs_rpms
+    if [[ "${ENABLE_OS_PLUGINS}" =~ networking-sfc ]]; then
+        # This should be really done by networking-odl devstack plugin,
+        # but in the meantime do it ourselves
+        ssh ${!COMPUTEIP} "sudo ovs-vsctl set Open_vSwitch . external_ids:of-tunnel=true"
+    fi
     echo "Stack the compute node ${i} of ${NUM_OPENSTACK_COMPUTE_NODES}: ${!COMPUTEIP}"
     ssh ${!COMPUTEIP} "cd /opt/stack/devstack; nohup ./stack.sh > /opt/stack/devstack/nohup.out 2>&1 &"
     ssh ${!COMPUTEIP} "ps -ef | grep stack.sh"
@@ -1070,32 +1075,7 @@ else
     HA_PROXY_3_IP=${ODL_SYSTEM_3_IP}
 fi
 
-echo "Locating test plan to use..."
-testplan_filepath="${WORKSPACE}/test/csit/testplans/${STREAMTESTPLAN}"
-if [ ! -f "${testplan_filepath}" ]; then
-    testplan_filepath="${WORKSPACE}/test/csit/testplans/${TESTPLAN}"
-fi
-
-echo "Changing the testplan path..."
-cat "${testplan_filepath}" | sed "s:integration:${WORKSPACE}:" > testplan.txt
-cat testplan.txt
-
-# Use the testplan if specific SUITES are not defined.
-if [ -z "${SUITES}" ]; then
-    SUITES=`egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' testplan.txt | tr '\012' ' '`
-else
-    newsuites=""
-    workpath="${WORKSPACE}/test/csit/suites"
-    for suite in ${SUITES}; do
-        fullsuite="${workpath}/${suite}"
-        if [ -z "${newsuites}" ]; then
-            newsuites+=${fullsuite}
-        else
-            newsuites+=" "${fullsuite}
-        fi
-    done
-    SUITES=${newsuites}
-fi
+get_test_suites SUITES
 
 #install all client versions required for this job testing
 install_openstack_clients_in_robot_vm
@@ -1195,6 +1175,7 @@ for suite in ${SUITES}; do
     -v TOOLS_SYSTEM_IP:${TOOLS_SYSTEM_1_IP} \
     -v TOOLS_SYSTEM_1_IP:${TOOLS_SYSTEM_1_IP} \
     -v TOOLS_SYSTEM_2_IP:${TOOLS_SYSTEM_2_IP} \
+    -v TOOLS_SYSTEM_3_IP:${TOOLS_SYSTEM_3_IP} \
     -v USER_HOME:${HOME} \
     -v WORKSPACE:/tmp \
     ${TESTOPTIONS} ${suite} || true