Merge "Use only Boron for netvirt-legacy patch test"
[releng/builder.git] / jjb / integration / include-raw-integration-get-slave-addresses.sh
1 #!/bin/bash
2 # Get the Controller and Tools VM slave addresses
3
4 ODL_SYSTEM=()
5 TOOLS_SYSTEM=()
6 OPENSTACK_SYSTEM=()
7 [ "$NUM_OPENSTACK_SITES" ] || NUM_OPENSTACK_SITES=1
8
9 OPENSTACK_VENV="/tmp/v/openstack"
10 # shellcheck source=/tmp/v/openstack/bin/activate disable=SC1091
11 source $OPENSTACK_VENV/bin/activate
12
13 ADDR=($(openstack stack show -f json -c outputs "$STACK_NAME" | \
14        jq -r '.outputs[] | select(.output_key | match("^vm_[0-9]+_ips$")) | .output_value | .[]'))
15
16 for i in "${ADDR[@]}"
17 do
18     REMHOST=$(ssh "${i}" hostname)
19     case ${REMHOST} in
20     *java*)
21        ODL_SYSTEM=( "${ODL_SYSTEM[@]}" "${i}" )
22        ;;
23     *devstack*)
24        OPENSTACK_SYSTEM=( "${OPENSTACK_SYSTEM[@]}" "${i}" )
25        ;;
26     *)
27        TOOLS_SYSTEM=( "${TOOLS_SYSTEM[@]}" "${i}" )
28        ;;
29     esac
30 done
31
32 echo "NUM_ODL_SYSTEM=${#ODL_SYSTEM[@]}" >> slave_addresses.txt
33 echo "NUM_TOOLS_SYSTEM=${#TOOLS_SYSTEM[@]}" >> slave_addresses.txt
34 #if HA Proxy is requested the last devstack node will be configured as haproxy
35 if [ "${ENABLE_HAPROXY_FOR_NEUTRON}" == "yes" ]; then
36    # HA Proxy is installed on one OPENSTACK_SYSTEM VM on each site
37    NUM_OPENSTACK_SYSTEM=$(( ${#OPENSTACK_SYSTEM[@]} - NUM_OPENSTACK_SITES ))
38 else
39    NUM_OPENSTACK_SYSTEM=${#OPENSTACK_SYSTEM[@]}
40 fi
41 echo "NUM_OPENSTACK_SYSTEM=${NUM_OPENSTACK_SYSTEM}" >> slave_addresses.txt
42
43 # Add alias for ODL_SYSTEM_1_IP as ODL_SYSTEM_IP
44 echo "ODL_SYSTEM_IP=${ODL_SYSTEM[0]}" >> slave_addresses.txt
45 for i in $(seq 0 $(( ${#ODL_SYSTEM[@]} - 1 )))
46 do
47     echo "ODL_SYSTEM_$((i+1))_IP=${ODL_SYSTEM[${i}]}" >> slave_addresses.txt
48 done
49
50 # Add alias for TOOLS_SYSTEM_1_IP as TOOLS_SYSTEM_IP
51 echo "TOOLS_SYSTEM_IP=${TOOLS_SYSTEM[0]}" >> slave_addresses.txt
52 for i in $(seq 0 $(( ${#TOOLS_SYSTEM[@]} - 1 )))
53 do
54     echo "TOOLS_SYSTEM_$((i+1))_IP=${TOOLS_SYSTEM[${i}]}" >> slave_addresses.txt
55 done
56
57 openstack_index=0
58 # Assuming number of openstack control nodes equals number of openstack sites
59 NUM_OPENSTACK_CONTROL_NODES=$(( NUM_OPENSTACK_SITES ))
60 echo "NUM_OPENSTACK_CONTROL_NODES=${NUM_OPENSTACK_CONTROL_NODES}" >> slave_addresses.txt
61 for i in $(seq 0 $((NUM_OPENSTACK_CONTROL_NODES - 1)))
62 do
63     echo "OPENSTACK_CONTROL_NODE_$((i+1))_IP=${OPENSTACK_SYSTEM[$((openstack_index++))]}" >> slave_addresses.txt
64 done
65
66 # The rest of the openstack nodes until NUM_OPENSTACK_SYSTEM are computes
67 NUM_OPENSTACK_COMPUTE_NODES=$(( NUM_OPENSTACK_SYSTEM - NUM_OPENSTACK_CONTROL_NODES ))
68 echo "NUM_OPENSTACK_COMPUTE_NODES=${NUM_OPENSTACK_COMPUTE_NODES}" >> slave_addresses.txt
69 for i in $(seq 0 $((NUM_OPENSTACK_COMPUTE_NODES - 1)))
70 do
71     echo "OPENSTACK_COMPUTE_NODE_$((i+1))_IP=${OPENSTACK_SYSTEM[$((openstack_index++))]}" >> slave_addresses.txt
72 done
73
74 # The remaining openstack nodes are haproxy nodes (for ODL cluster)
75 NUM_OPENSTACK_HAPROXY_NODES=$(( ${#OPENSTACK_SYSTEM[@]} - NUM_OPENSTACK_SYSTEM ))
76 echo "NUM_OPENSTACK_HAPROXY_NODES=${NUM_OPENSTACK_HAPROXY_NODES}" >> slave_addresses.txt
77 for i in $(seq 0 $((NUM_OPENSTACK_HAPROXY_NODES - 1)))
78 do
79     echo "OPENSTACK_HAPROXY_$((i+1))_IP=${OPENSTACK_SYSTEM[$((openstack_index++))]}" >> slave_addresses.txt
80 done
81 # vim: sw=4 ts=4 sts=4 et ft=sh :