From e1283f49c6231c5df5a484330541a9976ef914eb Mon Sep 17 00:00:00 2001 From: yuyang Date: Mon, 31 Jul 2017 15:19:50 +0800 Subject: Add support for Bottlenecks' new framework and potential installers JIRA: BOTTLENECK-103 Bottlencks does not use docker-compose and support sourcing rc files from different installers. This patch is to modify the CI process for Bottlenecks. Change-Id: I79dc79c6a9528678bf62caa1fa817273e040288c Signed-off-by: yuyang --- jjb/bottlenecks/bottlenecks-ci-jobs.yml | 4 +- jjb/bottlenecks/bottlenecks-cleanup.sh | 1 + jjb/bottlenecks/bottlenecks-run-suite.sh | 94 +++++++++++++++++--------------- 3 files changed, 52 insertions(+), 47 deletions(-) diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml index c56ca19e9..455fa7247 100644 --- a/jjb/bottlenecks/bottlenecks-ci-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml @@ -70,8 +70,6 @@ # <<: *master #-------------------------------------------- suite: - - 'rubbos' - - 'vstf' - 'posca_stress_traffic' - 'posca_stress_ping' @@ -130,7 +128,7 @@ publishers: - email: - recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com sunshine.wang@huawei.com + recipients: gabriel.yuyang@huawei.com, liyin11@huawei.com ######################## # builder macros diff --git a/jjb/bottlenecks/bottlenecks-cleanup.sh b/jjb/bottlenecks/bottlenecks-cleanup.sh index 04e620c7f..d0e2088c7 100644 --- a/jjb/bottlenecks/bottlenecks-cleanup.sh +++ b/jjb/bottlenecks/bottlenecks-cleanup.sh @@ -10,6 +10,7 @@ #clean up correlated dockers and their images bash $WORKSPACE/docker/docker_cleanup.sh -d bottlenecks --debug +bash $WORKSPACE/docker/docker_cleanup.sh -d Bottlenecks --debug bash $WORKSPACE/docker/docker_cleanup.sh -d yardstick --debug bash $WORKSPACE/docker/docker_cleanup.sh -d kibana --debug bash $WORKSPACE/docker/docker_cleanup.sh -d elasticsearch --debug diff --git a/jjb/bottlenecks/bottlenecks-run-suite.sh b/jjb/bottlenecks/bottlenecks-run-suite.sh index e6f8d1ba5..4ec079d6d 100644 --- a/jjb/bottlenecks/bottlenecks-run-suite.sh +++ b/jjb/bottlenecks/bottlenecks-run-suite.sh @@ -1,64 +1,70 @@ #!/bin/bash +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + #set -e [[ $GERRIT_REFSPEC_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" BOTTLENECKS_IMAGE=opnfv/bottlenecks REPORT="True" -if [[ $SUITE_NAME == rubbos || $SUITE_NAME == vstf ]]; then - echo "Bottlenecks: to pull image $BOTTLENECKS_IMAGE:${DOCKER_TAG}" - docker pull $BOTTLENECKS_IMAGE:$DOCKER_TAG >${redirect} +RELENG_REPO=${WORKSPACE}/releng +[ -d ${RELENG_REPO} ] && rm -rf ${RELENG_REPO} +git clone https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO} >${redirect} - echo "Bottlenecks: docker start running" - opts="--privileged=true -id" - envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \ - -e NODE_NAME=${NODE_NAME} -e EXTERNAL_NET=${EXTERNAL_NETWORK} \ - -e BOTTLENECKS_BRANCH=${BOTTLENECKS_BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \ - -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL}" - cmd="sudo docker run ${opts} ${envs} $BOTTLENECKS_IMAGE:${DOCKER_TAG} /bin/bash" - echo "Bottlenecks: docker cmd running ${cmd}" - ${cmd} >${redirect} +OPENRC=/tmp/admin_rc.sh +OS_CACERT=/tmp/os_cacert - echo "Bottlenecks: obtain docker id" - container_id=$(docker ps | grep "$BOTTLENECKS_IMAGE:${DOCKER_TAG}" | awk '{print $1}' | head -1) - if [ -z ${container_id} ]; then - echo "Cannot find $BOTTLENECKS_IMAGE container ID ${container_id}. Please check if it exists." - docker ps -a - exit 1 +if [[ $SUITE_NAME == *posca* ]]; then + POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca + + echo "BOTTLENECKS INFO: fetching os credentials from $INSTALLER_TYPE" + if [[ $INSTALLER_TYPE == 'compass' ]]; then + if [[ ${BRANCH} == 'master' ]]; then + ${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${OS_CACERT} >${redirect} + if [[ -f ${OS_CACERT} ]]; then + echo "BOTTLENECKS INFO: successfully fetching os_cacert for openstack: ${OS_CACERT}" + else + echo "BOTTLENECKS ERROR: couldn't find os_cacert file: ${OS_CACERT}, please check if the it's been properly provided." + exit 1 + fi + else + ${RELENG_REPO}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} >${redirect} + fi fi - echo "Bottlenecks: to prepare openstack environment" - prepare_env="${REPO_DIR}/ci/prepare_env.sh" - echo "Bottlenecks: docker cmd running: ${prepare_env}" - sudo docker exec ${container_id} ${prepare_env} + if [[ -f ${OPENRC} ]]; then + echo "BOTTLENECKS INFO: openstack credentials path is ${OPENRC}" + if [[ $INSTALLER_TYPE == 'compass' && ${BRANCH} == 'master' ]]; then + echo "BOTTLENECKS INFO: writing ${OS_CACERT} to ${OPENRC}" + echo "export OS_CACERT=${OS_CACERT}" >> ${OPENRC} + fi + cat ${OPENRC} + else + echo "BOTTLENECKS ERROR: couldn't find openstack rc file: ${OPENRC}, please check if the it's been properly provided." + exit 1 - echo "Bottlenecks: to run testsuite ${SUITE_NAME}" - run_testsuite="${REPO_DIR}/run_tests.sh -s ${SUITE_NAME}" - echo "Bottlenecks: docker cmd running: ${run_testsuite}" - sudo docker exec ${container_id} ${run_testsuite} -else - echo "Bottlenecks: installing POSCA docker-compose" - if [ -d usr/local/bin/docker-compose ]; then - rm -rf usr/local/bin/docker-compose - fi - curl -L https://github.com/docker/compose/releases/download/1.11.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose - chmod +x /usr/local/bin/docker-compose + echo "INFO: pulling Bottlenecks docker ${DOCKER_TAG}" + docker pull opnfv/bottlenecks:${DOCKER_TAG} >$redirect - echo "Bottlenecks: composing up dockers" - cd $WORKSPACE - docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml up -d + opts="--privileged=true -id" + docker_volume="-v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp" + + cmd="docker run ${opts} --name bottlenecks-load-master ${docker_volume} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash" + echo "BOTTLENECKS INFO: running docker run commond: ${cmd}" + ${cmd} >$redirect + sleep 5 - echo "Bottlenecks: running traffic stress/factor testing in posca testsuite " - POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca if [[ $SUITE_NAME == posca_stress_traffic ]]; then TEST_CASE=posca_factor_system_bandwidth - echo "Bottlenecks: pulling tutum/influxdb for yardstick" - docker pull tutum/influxdb:0.13 - sleep 5 - docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE $REPORT + docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT elif [[ $SUITE_NAME == posca_stress_ping ]]; then TEST_CASE=posca_factor_ping - sleep 5 - docker exec bottleneckcompose_bottlenecks_1 python ${POSCA_SCRIPT}/run_posca.py testcase $TEST_CASE $REPORT + docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT fi echo "Bottlenecks: cleaning up docker-compose images and dockers" -- cgit 1.2.3-korg