Merge "fix the judgement condition"
[releng.git] / jjb / bottlenecks / bottlenecks-run-suite.sh
1 #!/bin/bash
2 #set -e
3 [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
4 BOTTLENECKS_IMAGE=opnfv/bottlenecks
5 REPORT="True"
6
7 if [[ $SUITE_NAME == rubbos || $SUITE_NAME == vstf ]]; then
8     echo "Bottlenecks: to pull image $BOTTLENECKS_IMAGE:${DOCKER_TAG}"
9     docker pull $BOTTLENECKS_IMAGE:$DOCKER_TAG >${redirect}
10
11     echo "Bottlenecks: docker start running"
12     opts="--privileged=true -id"
13     envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
14           -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \
15           -e BOTTLENECKS_BRANCH=${BOTTLENECKS_BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \
16           -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL}"
17     cmd="sudo docker run ${opts} ${envs} $BOTTLENECKS_IMAGE:${DOCKER_TAG} /bin/bash"
18     echo "Bottlenecks: docker cmd running ${cmd}"
19     ${cmd} >${redirect}
20
21     echo "Bottlenecks: obtain docker id"
22     container_id=$(docker ps | grep "$BOTTLENECKS_IMAGE:${DOCKER_TAG}" | awk '{print $1}' | head -1)
23     if [ -z ${container_id} ]; then
24         echo "Cannot find $BOTTLENECKS_IMAGE container ID ${container_id}. Please check if it exists."
25         docker ps -a
26         exit 1
27     fi
28
29     echo "Bottlenecks: to prepare openstack environment"
30     prepare_env="${REPO_DIR}/ci/prepare_env.sh"
31     echo "Bottlenecks: docker cmd running: ${prepare_env}"
32     sudo docker exec ${container_id} ${prepare_env}
33
34     echo "Bottlenecks: to run testsuite ${SUITE_NAME}"
35     run_testsuite="${REPO_DIR}/run_tests.sh -s ${SUITE_NAME}"
36     echo "Bottlenecks: docker cmd running: ${run_testsuite}"
37     sudo docker exec ${container_id} ${run_testsuite}
38 else
39     echo "Bottlenecks: installing POSCA docker-compose"
40     if [ -d usr/local/bin/docker-compose ]; then
41         rm -rf usr/local/bin/docker-compose
42     fi
43     curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
44     chmod +x /usr/local/bin/docker-compose
45
46     echo "Bottlenecks: composing up dockers"
47     cd $WORKSPACE
48     docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml up -d
49
50     echo "Bottlenecks: running traffic stress/factor testing in posca testsuite "
51     POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca
52     if [[ $SUITE_NAME == posca_stress_traffic ]]; then
53         TEST_CASE=posca_factor_system_bandwidth
54         echo "Bottlenecks: pulling tutum/influxdb for yardstick"
55         docker pull tutum/influxdb:0.13
56         sleep 5
57         docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE $REPORT
58     elif [[ $SUITE_NAME == posca_stress_ping ]]; then
59         TEST_CASE=posca_factor_ping
60         sleep 5
61         docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE $REPORT
62     fi
63
64     echo "Bottlenecks: cleaning up docker-compose images and dockers"
65     docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml down --rmi all
66 fi