Merge "[Dovetail] process name configuration for HA test cases on Fuel"
[releng.git] / jjb / cperf / cperf-robot-netvirt-csit.sh
1 #!/usr/bin/env bash
2
3 set -o errexit
4 set -o nounset
5 set -o pipefail
6
7 source ${WORKSPACE}/overcloudrc
8 # note SDN_CONTROLLER_IP is set in overcloudrc, which is the VIP
9 # for admin/public network (since we are running single network deployment)
10
11 if [ "$OS_VERSION" == 'master' ]; then
12   FULL_OS_VER='master'
13 else
14   FULL_OS_VER="stable/${OS_VERSION}"
15 fi
16
17 if [ "$ODL_BRANCH" == 'master' ]; then
18   ODL_STREAM='flourine'
19 else
20   ODL_STREAM=${ODL_BRANCH}
21 fi
22
23 NUM_CONTROL_NODES=$(python ./parse-node-yaml.py num_nodes --file $NODE_FILE_PATH)
24 NUM_COMPUTE_NODES=$(python ./parse-node-yaml.py num_nodes --node-type compute --file $NODE_FILE_PATH)
25
26 idx=1
27 EXTRA_ROBOT_ARGS=""
28 for idx in `seq 1 $NUM_CONTROL_NODES`; do
29   CONTROLLER_IP=$(python ./parse-node-yaml.py get_value -k address --node-number ${idx} --file $NODE_FILE_PATH)
30   EXTRA_ROBOT_ARGS+=" -v ODL_SYSTEM_${idx}_IP:${CONTROLLER_IP} \
31                       -v OS_CONTROL_NODE_${idx}_IP:${CONTROLLER_IP} \
32                       -v ODL_SYSTEM_${idx}_IP:${CONTROLLER_IP} \
33                       -v HA_PROXY_${idx}_IP:${SDN_CONTROLLER_IP}"
34 done
35
36 idx=1
37 for idx in `seq 1 $NUM_COMPUTE_NODES`; do
38   COMPUTE_IP=$(python ./parse-node-yaml.py get_value -k address --node-type compute --node-number ${idx} --file $NODE_FILE_PATH)
39   EXTRA_ROBOT_ARGS+=" -v OS_COMPUTE_${idx}_IP:${COMPUTE_IP}"
40 done
41
42 CONTROLLER_1_IP=$(python ./parse-node-yaml.py get_value -k address --node-number 1 --file $NODE_FILE_PATH)
43
44 if [ "$ODL_CONTAINERIZED" == 'false' ]; then
45   EXTRA_ROBOT_ARGS+=" -v NODE_KARAF_COUNT_COMMAND:'ps axf | grep org.apache.karaf | grep -v grep | wc -l || echo 0' \
46                       -v NODE_START_COMMAND:'sudo systemctl start opendaylight_api' \
47                       -v NODE_KILL_COMMAND:'sudo systemctl stop opendaylight_api' \
48                       -v NODE_STOP_COMMAND:'sudo systemctl stop opendaylight_api' \
49                       -v NODE_FREEZE_COMMAND:'sudo systemctl stop opendaylight_api' "
50 else
51   EXTRA_ROBOT_ARGS+=" -v NODE_KARAF_COUNT_COMMAND:\"sudo docker exec opendaylight_api /bin/bash -c 'ps axf | \
52                                 grep org.apache.karaf | grep -v grep | wc -l' || echo 0\" \
53                       -v NODE_START_COMMAND:\"sudo docker start opendaylight_api\" \
54                       -v NODE_KILL_COMMAND:\"sudo docker stop opendaylight_api\" \
55                       -v NODE_STOP_COMMAND:\"sudo docker stop opendaylight_api\" \
56                       -v NODE_FREEZE_COMMAND:\"sudo docker stop opendaylight_api\" "
57 fi
58
59 robot_cmd="pybot \
60   --removekeywords wuks \
61   --xunit robotxunit.xml \
62   -c critical \
63   -e exclude \
64   -d /tmp/robot_results \
65   -v BUNDLEFOLDER:/opt/opendaylight \
66   -v CONTROLLER_USER:heat-admin \
67   -v DEFAULT_LINUX_PROMPT:\$ \
68   -v DEFAULT_LINUX_PROMPT_STRICT:]\$ \
69   -v DEFAULT_USER:heat-admin \
70   -v DEVSTACK_DEPLOY_PATH:/tmp \
71   -v HA_PROXY_IP:$SDN_CONTROLLER_IP \
72   -v NUM_ODL_SYSTEM:$NUM_CONTROL_NODES \
73   -v NUM_OS_SYSTEM:$NUM_CONTROL_NODES \
74   -v NUM_TOOLS_SYSTEM:0 \
75   -v ODL_SNAT_MODE:conntrack \
76   -v ODL_STREAM:$ODL_STREAM \
77   -v ODL_SYSTEM_IP: $CONTROLLER_1_IP \
78   -v OS_CONTROL_NODE_IP:$CONTROLLER_1_IP \
79   -v OPENSTACK_BRANCH:$FULL_OS_VER \
80   -v OS_USER:heat-admin \
81   -v ODL_ENABLE_L3_FWD:yes \
82   -v ODL_SYSTEM_USER:heat-admin \
83   -v ODL_SYSTEM_PROMPT:\$ \
84   -v PRE_CLEAN_OPENSTACK_ALL:True \
85   -v PUBLIC_PHYSICAL_NETWORK:datacentre \
86   -v RESTCONFPORT:8081 \
87   -v ODL_RESTCONF_USER:admin \
88   -v ODL_RESTCONF_PASSWORD:admin \
89   -v KARAF_PROMPT_LOGIN:'opendaylight-user' \
90   -v KARAF_PROMPT:'opendaylight-user.*root.*>' \
91   -v SECURITY_GROUP_MODE:stateful \
92   -v USER:heat-admin \
93   -v USER_HOME:\$HOME \
94   -v TOOLS_SYSTEM_IP:'' \
95   -v NODE_ROLE_INDEX_START:0 \
96   -v WORKSPACE:/tmp  \
97   $EXTRA_ROBOT_ARGS \
98   -v of_port:6653 "
99
100 docker run -i --net=host \
101   -v ${WORKSPACE}/id_rsa:/tmp/id_rsa \
102   -v ${WORKSPACE}/overcloudrc:/tmp/overcloudrc \
103   opnfv/cperf:$DOCKER_TAG \
104   /bin/bash -c "source /tmp/overcloudrc; mkdir -p \$HOME/.ssh; cp /tmp/id_rsa \$HOME/.ssh; \
105   $robot_cmd /home/opnfv/repos/odl_test/csit/suites/openstack/connectivity/l2.robot;"