b81f4cacef78e3c0320ca7ae82a4e122fb0504d4
[releng.git] / jjb / bottlenecks / bottlenecks-run-suite.sh
1 #!/bin/bash
2 ##############################################################################
3 # Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10 #set -e
11 [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
12 BOTTLENECKS_IMAGE=opnfv/bottlenecks
13 REPORT="True"
14
15 RELENG_REPO=${WORKSPACE}/releng
16 [ -d ${RELENG_REPO} ] && rm -rf ${RELENG_REPO}
17 git clone https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO} >${redirect}
18
19 OPENRC=/tmp/admin_rc.sh
20 OS_CACERT=/tmp/os_cacert
21
22 if [[ $SUITE_NAME == *posca* ]]; then
23     POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca
24
25     echo "BOTTLENECKS INFO: fetching os credentials from $INSTALLER_TYPE"
26     if [[ $INSTALLER_TYPE == 'compass' ]]; then
27         if [[ ${BRANCH} == 'master' ]]; then
28             ${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${OS_CACERT} >${redirect}
29             if [[ -f ${OS_CACERT} ]]; then
30                 echo "BOTTLENECKS INFO: successfully fetching os_cacert for openstack: ${OS_CACERT}"
31             else
32                 echo "BOTTLENECKS ERROR: couldn't find os_cacert file: ${OS_CACERT}, please check if the it's been properly provided."
33                 exit 1
34             fi
35         else
36             ${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP}  >${redirect}
37         fi
38     fi
39
40     if [[ -f ${OPENRC} ]]; then
41         echo "BOTTLENECKS INFO: openstack credentials path is ${OPENRC}"
42         if [[ $INSTALLER_TYPE == 'compass' && ${BRANCH} == 'master' ]]; then
43             echo "BOTTLENECKS INFO: writing ${OS_CACERT} to ${OPENRC}"
44             echo "export OS_CACERT=${OS_CACERT}" >> ${OPENRC}
45         fi
46         cat ${OPENRC}
47     else
48         echo "BOTTLENECKS ERROR: couldn't find openstack rc file: ${OPENRC}, please check if the it's been properly provided."
49         exit 1
50     fi
51
52     echo "INFO: pulling Bottlenecks docker ${DOCKER_TAG}"
53     docker pull opnfv/bottlenecks:${DOCKER_TAG} >$redirect
54
55     opts="--privileged=true -id"
56     docker_volume="-v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp"
57
58     cmd="docker run ${opts} --name bottlenecks-load-master ${docker_volume} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash"
59     echo "BOTTLENECKS INFO: running docker run commond: ${cmd}"
60     ${cmd} >$redirect
61     sleep 5
62
63     if [[ $SUITE_NAME == posca_stress_traffic ]]; then
64         TEST_CASE=posca_factor_system_bandwidth
65         docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT
66     elif [[ $SUITE_NAME == posca_stress_ping ]]; then
67         TEST_CASE=posca_factor_ping
68         docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT
69     fi
70 fi