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