diff options
Diffstat (limited to 'jjb/bottlenecks')
-rw-r--r-- | jjb/bottlenecks/bottlenecks-ci-jobs.yml | 248 | ||||
-rw-r--r-- | jjb/bottlenecks/bottlenecks-cleanup.sh | 1 | ||||
-rw-r--r-- | jjb/bottlenecks/bottlenecks-project-jobs.yml | 260 | ||||
-rw-r--r-- | jjb/bottlenecks/bottlenecks-run-suite.sh | 178 |
4 files changed, 390 insertions, 297 deletions
diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml index c56ca19e9..a8654d0cf 100644 --- a/jjb/bottlenecks/bottlenecks-ci-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml @@ -1,3 +1,4 @@ +--- #################################### # job configuration for bottlenecks #################################### @@ -6,77 +7,75 @@ project: 'bottlenecks' -#-------------------------------- -# BRANCH ANCHORS -#-------------------------------- + # ------------------------------- + # BRANCH ANCHORS + # ------------------------------- master: &master - stream: master - branch: '{stream}' - #This is used for common project file storage - gs-pathname: '' - #This is used for different test suite dependent packages storage - gs-packagepath: '/{suite}' - #docker tag used for version control - docker-tag: 'latest' + stream: master + branch: '{stream}' + # This is used for common project file storage + gs-pathname: '' + # This is used for different test suite dependent packages storage + gs-packagepath: '/{suite}' + # docker tag used for version control + docker-tag: 'latest' danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - gs-packagepath: '/{stream}/{suite}' - docker-tag: 'stable' -#-------------------------------- -# POD, INSTALLER, AND BRANCH MAPPING -#-------------------------------- -# Installers using labels -# CI PODs -# This section should only contain the installers -# that have been switched using labels for slaves -#-------------------------------- + stream: danube + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + gs-packagepath: '/{stream}/{suite}' + docker-tag: 'stable' + # ------------------------------- + # POD, INSTALLER, AND BRANCH MAPPING + # ------------------------------- + # Installers using labels + # CI PODs + # This section should only contain the installers + # that have been switched using labels for slaves + # ------------------------------- pod: -#compass CI PODs - - baremetal: - slave-label: compass-baremetal - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: compass-virtual - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: compass-baremetal - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - - virtual: - slave-label: compass-virtual - installer: compass - auto-trigger-name: 'daily-trigger-disabled' - <<: *danube - -#-------------------------------- -# None-CI PODs -#-------------------------------- - # - orange-pod2: - # slave-label: '{pod}' - # installer: joid - # auto-trigger-name: 'daily-trigger-disabled' - # <<: *danube - # - orange-pod2: - # slave-label: '{pod}' - # installer: joid - # auto-trigger-name: 'daily-trigger-disabled' - # <<: *master -#-------------------------------------------- + # compass CI PODs + - baremetal: + slave-label: compass-baremetal-master + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - virtual: + slave-label: compass-virtual-master + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *master + - baremetal: + slave-label: compass-baremetal-branch + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + - virtual: + slave-label: compass-virtual-branch + installer: compass + auto-trigger-name: 'daily-trigger-disabled' + <<: *danube + + # ------------------------------- + # None-CI PODs + # ------------------------------- + # - orange-pod2: + # slave-label: '{pod}' + # installer: joid + # auto-trigger-name: 'daily-trigger-disabled' + # <<: *danube + # - orange-pod2: + # slave-label: '{pod}' + # installer: joid + # auto-trigger-name: 'daily-trigger-disabled' + # <<: *master + # ------------------------------------------- suite: - - 'rubbos' - - 'vstf' - - 'posca_stress_traffic' - - 'posca_stress_ping' + - 'posca_stress_traffic' + - 'posca_stress_ping' jobs: - - 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}' + - 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}' ################################ # job templates @@ -85,52 +84,53 @@ name: 'bottlenecks-{installer}-{suite}-{pod}-daily-{stream}' wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 180 - abort: true + - build-name: + name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' + - timeout: + timeout: 180 + abort: true triggers: - - '{auto-trigger-name}' + - '{auto-trigger-name}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' - - '{installer}-defaults' - - 'bottlenecks-params-{slave-label}' - - string: - name: REPO_DIR - default: "/home/opnfv/bottlenecks" - description: "Directory where the repository is cloned" - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: GERRIT_REFSPEC_DEBUG - default: 'true' - description: "Gerrit refspec for debug." - - string: - name: SUITE_NAME - default: '{suite}' - description: "test suite name." - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: "docker image tag used for version control" + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{slave-label}-defaults' + - '{installer}-defaults' + - 'bottlenecks-params-{slave-label}' + - string: + name: REPO_DIR + default: "/home/opnfv/bottlenecks" + description: "Directory where the repository is cloned" + - string: + name: DEPLOY_SCENARIO + default: 'os-odl_l2-nofeature-ha' + - string: + name: GERRIT_REFSPEC_DEBUG + default: 'true' + description: "Gerrit refspec for debug." + - string: + name: SUITE_NAME + default: '{suite}' + description: "test suite name." + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: "docker image tag used for version control" scm: - - git-scm + - git-scm builders: - - 'bottlenecks-env-cleanup' - - 'bottlenecks-run-suite' + - 'bottlenecks-env-cleanup' + - 'bottlenecks-run-suite' publishers: - - email: - recipients: hongbo.tianhongbo@huawei.com matthew.lijun@huawei.com liangqi1@huawei.com sunshine.wang@huawei.com + - email: + recipients: gabriel.yuyang@huawei.com, liyin11@huawei.com + - email-jenkins-admins-on-failure ######################## # builder macros @@ -138,39 +138,47 @@ - builder: name: bottlenecks-env-cleanup builders: - - shell: - !include-raw: ./bottlenecks-cleanup.sh + - shell: + !include-raw: ./bottlenecks-cleanup.sh - builder: name: bottlenecks-run-suite builders: - - shell: - !include-raw: ./bottlenecks-run-suite.sh + - shell: + !include-raw: ./bottlenecks-run-suite.sh #################### # parameter macros #################### - parameter: - name: 'bottlenecks-params-compass-baremetal' + name: 'bottlenecks-params-compass-baremetal-master' parameters: - - string: - name: BOTTLENECKS_DB_TARGET - default: '104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - string: + name: BOTTLENECKS_DB_TARGET + default: 'http://testresults.opnfv.org/test/api/v1/results' + description: 'Arguments to use in order to choose the backend DB' - parameter: - name: 'bottlenecks-params-compass-virtual' + name: 'bottlenecks-params-compass-virtual-master' parameters: - - string: - name: BOTTLENECKS_DB_TARGET - default: '' - description: 'Arguments to use in order to choose the backend DB' + - string: + name: BOTTLENECKS_DB_TARGET + default: 'http://testresults.opnfv.org/test/api/v1/results' + description: 'Arguments to use in order to choose the backend DB' - parameter: - name: 'bottlenecks-params-orange-pod2' + name: 'bottlenecks-params-compass-baremetal-branch' parameters: - - string: - name: BOTTLENECKS_DB_TARGET - default: '104.197.68.199:8086' - description: 'Arguments to use in order to choose the backend DB' + - string: + name: BOTTLENECKS_DB_TARGET + default: 'http://testresults.opnfv.org/test/api/v1/results' + description: 'Arguments to use in order to choose the backend DB' + +- parameter: + name: 'bottlenecks-params-compass-virtual-branch' + parameters: + - string: + name: BOTTLENECKS_DB_TARGET + default: 'http://testresults.opnfv.org/test/api/v1/results' + description: 'Arguments to use in order to choose the backend DB' 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-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml index 5dced2aad..c7c9b4208 100644 --- a/jjb/bottlenecks/bottlenecks-project-jobs.yml +++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml @@ -1,3 +1,4 @@ +--- ################################################### # Non-ci jobs for Bottlenecks project # They will only be enabled on request by projects! @@ -8,29 +9,29 @@ project: 'bottlenecks' jobs: - - 'bottlenecks-verify-{stream}' - - 'bottlenecks-merge-{stream}' - - 'bottlenecks-{suite}-upload-artifacts-{stream}' + - 'bottlenecks-verify-{stream}' + - 'bottlenecks-merge-{stream}' + - 'bottlenecks-{suite}-upload-artifacts-{stream}' stream: - - master: - branch: '{stream}' - #This is used for common project file storage - gs-pathname: '' - #This is used for different test suite dependent packages storage - gs-packagepath: '/{suite}' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - gs-packagepath: '/{stream}/{suite}' - disabled: false + - master: + branch: '{stream}' + # This is used for common project file storage + gs-pathname: '' + # This is used for different test suite dependent packages storage + gs-packagepath: '/{suite}' + disabled: false + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + gs-packagepath: '/{stream}/{suite}' + disabled: false suite: - - 'rubbos' - - 'vstf' - - 'posca_stress_traffic' - - 'posca_stress_ping' + - 'rubbos' + - 'vstf' + - 'posca_stress_traffic' + - 'posca_stress_ping' ################################ # job templates @@ -42,36 +43,37 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' scm: - - git-scm-gerrit + - git-scm-gerrit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + builders: - #- bottlenecks-hello - - bottlenecks-unit-tests + # - bottlenecks-hello + - bottlenecks-unit-tests - job-template: name: 'bottlenecks-merge-{stream}' @@ -79,31 +81,31 @@ disabled: '{obj:disabled}' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' scm: - - git-scm + - git-scm triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' builders: - - bottlenecks-hello - #- bottlenecks-unit-tests + - bottlenecks-hello + # - bottlenecks-unit-tests - job-template: name: 'bottlenecks-{suite}-upload-artifacts-{stream}' @@ -114,27 +116,27 @@ concurrent: true properties: - - logrotate-default - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - option: 'project' + - logrotate-default + - throttle: + enabled: true + max-total: 1 + max-per-node: 1 + option: 'project' parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - bottlenecks-parameter: - gs-packagepath: '{gs-packagepath}' + - project-parameter: + project: '{project}' + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' + - bottlenecks-parameter: + gs-packagepath: '{gs-packagepath}' scm: - - git-scm + - git-scm builders: - - 'bottlenecks-builder-upload-artifact' - - 'bottlenecks-workspace-cleanup' + - 'bottlenecks-builder-upload-artifact' + - 'bottlenecks-workspace-cleanup' #################### # parameter macros @@ -142,82 +144,82 @@ - parameter: name: bottlenecks-parameter parameters: - - string: - name: CACHE_DIR - default: $WORKSPACE/cache{gs-packagepath} - description: "the cache to store packages downloaded from public IP" - - string: - name: SUITE_URL - default: gs://artifacts.opnfv.org/bottlenecks{gs-packagepath} - description: "LF artifacts url for storage of bottlenecks packages" - - string: - name: PACKAGE_URL - default: http://205.177.226.237:9999/bottlenecks{gs-packagepath}/ - description: "the url where we store the packages used for bottlenecks rubbos" + - string: + name: CACHE_DIR + default: $WORKSPACE/cache{gs-packagepath} + description: "the cache to store packages downloaded from public IP" + - string: + name: SUITE_URL + default: gs://artifacts.opnfv.org/bottlenecks{gs-packagepath} + description: "LF artifacts url for storage of bottlenecks packages" + - string: + name: PACKAGE_URL + default: http://205.177.226.237:9999/bottlenecks{gs-packagepath}/ + description: "the url where we store the packages used for bottlenecks rubbos" #################################### -#builders for bottlenecks project +# builders for bottlenecks project #################################### - builder: name: bottlenecks-builder-upload-artifact builders: - - shell: | - #!/bin/bash - set -o errexit + - shell: | + #!/bin/bash + set -o errexit - echo "Bottlenecks: upload to artifacts from the public IP" + echo "Bottlenecks: upload to artifacts from the public IP" - [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR + [[ -d $CACHE_DIR ]] || mkdir -p $CACHE_DIR - for file in $(curl -s $PACKAGE_URL | - grep href | - sed 's/.*href="//' | - sed 's/".*//' | - grep '^[a-zA-Z].*'); do - curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v - echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL" - gsutil cp $CACHE_DIR/$file $SUITE_URL - done + for file in $(curl -s $PACKAGE_URL | + grep href | + sed 's/.*href="//' | + sed 's/".*//' | + grep '^[a-zA-Z].*'); do + curl --connect-timeout 10 -o $CACHE_DIR/$file $PACKAGE_URL$file -v + echo "bottlenecks: copy file $CACHE_DIR/$file to $SUITE_URL" + gsutil cp $CACHE_DIR/$file $SUITE_URL + done - builder: name: bottlenecks-workspace-cleanup builders: - - shell: | - #!/bin/bash - set -o errexit + - shell: | + #!/bin/bash + set -o errexit - echo "Bottlenecks: cleanup cache used for storage downloaded packages" + echo "Bottlenecks: cleanup cache used for storage downloaded packages" - /bin/rm -rf $CACHE_DIR + /bin/rm -rf $CACHE_DIR - builder: name: bottlenecks-unit-tests builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail + - shell: | + #!/bin/bash + set -o errexit + set -o pipefail - echo "Running unit tests..." - cd $WORKSPACE - virtualenv $WORKSPACE/bottlenecks_venv - source $WORKSPACE/bottlenecks_venv/bin/activate + echo "Running unit tests..." + cd $WORKSPACE + virtualenv $WORKSPACE/bottlenecks_venv + source $WORKSPACE/bottlenecks_venv/bin/activate - # install python packages - easy_install -U setuptools - easy_install -U pip - pip install -r $WORKSPACE/requirements/verify.txt + # install python packages + easy_install -U setuptools + easy_install -U pip + pip install -r $WORKSPACE/requirements/verify.txt - # unit tests - /bin/bash $WORKSPACE/verify.sh + # unit tests + /bin/bash $WORKSPACE/verify.sh - deactivate + deactivate - builder: name: bottlenecks-hello builders: - - shell: | - #!/bin/bash - set -o errexit + - shell: | + #!/bin/bash + set -o errexit - echo -e "Wellcome to Bottlenecks! \nMerge event is planning to support more functions! " + echo -e "Wellcome to Bottlenecks! \nMerge event is planning to support more functions! " diff --git a/jjb/bottlenecks/bottlenecks-run-suite.sh b/jjb/bottlenecks/bottlenecks-run-suite.sh index e6f8d1ba5..6d4d2d8d1 100644 --- a/jjb/bottlenecks/bottlenecks-run-suite.sh +++ b/jjb/bottlenecks/bottlenecks-run-suite.sh @@ -1,66 +1,148 @@ #!/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} - - 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 +YARDSTICK_REPO=${WORKSPACE}/yardstick +[ -d ${YARDSTICK_REPO} ] && rm -rf ${YARDSTICK_REPO} +git clone https://gerrit.opnfv.org/gerrit/yardstick ${YARDSTICK_REPO} >${redirect} + +OPENRC=/tmp/admin_rc.sh +OS_CACERT=/tmp/os_cacert + +BOTTLENECKS_CONFIG=/tmp + +if [[ $SUITE_NAME == *posca* ]]; then + POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca + + # Preparing OpenStack RC and Cacert files + 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 + + 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 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} - - 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 + # Finding and crearting POD description files from different deployments + ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + + if [ "$INSTALLER_TYPE" == "fuel" ]; then + echo "Fetching id_rsa file from jump_server $INSTALLER_IP..." + sshpass -p r00tme sudo scp $ssh_options root@${INSTALLER_IP}:~/.ssh/id_rsa ${BOTTLENECKS_CONFIG}/id_rsa + fi + + if [ "$INSTALLER_TYPE" == "apex" ]; then + echo "Fetching id_rsa file from jump_server $INSTALLER_IP..." + sudo scp $ssh_options stack@${INSTALLER_IP}:~/.ssh/id_rsa ${BOTTLENECKS_CONFIG}/id_rsa 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 "Bottlenecks: composing up dockers" - cd $WORKSPACE - docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml up -d + set +e - echo "Bottlenecks: running traffic stress/factor testing in posca testsuite " - POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca + sudo pip install virtualenv + + cd ${RELENG_REPO}/modules + sudo virtualenv venv + source venv/bin/activate + sudo pip install -e ./ >/dev/null + sudo pip install netaddr + + if [[ ${INSTALLER_TYPE} == compass ]]; then + options="-u root -p root" + elif [[ ${INSTALLER_TYPE} == fuel ]]; then + options="-u root -p r00tme" + elif [[ ${INSTALLER_TYPE} == apex ]]; then + options="-u stack -k /root/.ssh/id_rsa" + else + echo "Don't support to generate pod.yaml on ${INSTALLER_TYPE} currently." + fi + + if [[ ${INSTALLER_TYPE} != compass ]]; then + cmd="sudo python ${RELENG_REPO}/utils/create_pod_file.py -t ${INSTALLER_TYPE} \ + -i ${INSTALLER_IP} ${options} -f ${BOTTLENECKS_CONFIG}/pod.yaml \ + -s ${BOTTLENECKS_CONFIG}/id_rsa" + echo ${cmd} + ${cmd} + else + cmd="sudo cp ${YARDSTICK_REPO}/etc/yardstick/nodes/compass_sclab_virtual/pod.yaml \ + ${BOTTLENECKS_CONFIG}" + echo ${cmd} + ${cmd} + fi + + deactivate + + set -e + + cd ${WORKSPACE} + + if [ -f ${BOTTLENECKS_CONFIG}/pod.yaml ]; then + echo "FILE: ${BOTTLENECKS_CONFIG}/pod.yaml:" + cat ${BOTTLENECKS_CONFIG}/pod.yaml + else + echo "ERROR: cannot find file ${BOTTLENECKS_CONFIG}/pod.yaml. Please check if it is existing." + sudo ls -al ${BOTTLENECKS_CONFIG} + fi + + # Pulling Bottlenecks docker and passing environment variables + echo "INFO: pulling Bottlenecks docker ${DOCKER_TAG}" + docker pull opnfv/bottlenecks:${DOCKER_TAG} >$redirect + + 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 BRANCH=${BRANCH} -e GERRIT_REFSPEC_DEBUG=${GERRIT_REFSPEC_DEBUG} \ + -e BOTTLENECKS_DB_TARGET=${BOTTLENECKS_DB_TARGET} -e PACKAGE_URL=${PACKAGE_URL} \ + -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} -e BUILD_TAG=${BUILD_TAG}" + docker_volume="-v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp" + + cmd="docker run ${opts} ${envs} --name bottlenecks-load-master ${docker_volume} opnfv/bottlenecks:${DOCKER_TAG} /bin/bash" + echo "BOTTLENECKS INFO: running docker run commond: ${cmd}" + ${cmd} >$redirect + sleep 5 + + # Running test cases through Bottlenecks docker 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 + testcase_cmd="docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT" + echo "BOTTLENECKS INFO: running test case ${TEST_CASE} with report indicator: ${testcase_cmd}" + ${testcase_cmd} >$redirect 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 + testcase_cmd="docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT" + echo "BOTTLENECKS INFO: running test case ${TEST_CASE} with report indicator: ${testcase_cmd}" + ${testcase_cmd} >$redirect fi - - echo "Bottlenecks: cleaning up docker-compose images and dockers" - docker-compose -f $WORKSPACE/docker/bottleneck-compose/docker-compose.yml down --rmi all -fi
\ No newline at end of file +fi |