diff options
26 files changed, 177 insertions, 60 deletions
diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index 55d8ff975..e7de31908 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -272,6 +272,10 @@ name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." + - string: + name: SSH_KEY + default: "/tmp/mcp.rsa" + description: "Path to private SSH key to access environment nodes. For MCP deployments only." ######################## # trigger macros diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh index e445e0850..9964ed5cc 100755 --- a/jjb/armband/armband-deploy.sh +++ b/jjb/armband/armband-deploy.sh @@ -2,7 +2,7 @@ # SPDX-license-identifier: Apache-2.0 ############################################################################## # Copyright (c) 2016 Ericsson AB and others. -# (c) 2016 Enea Software AB +# (c) 2017 Enea Software AB # 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 @@ -13,16 +13,18 @@ set -o pipefail export TERM="vt220" -# source the file so we get OPNFV vars -source latest.properties +if [[ "$BRANCH" != 'master' ]]; then + # source the file so we get OPNFV vars + source latest.properties -# echo the info about artifact that is used during the deployment -echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" + # echo the info about artifact that is used during the deployment + echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" +fi if [[ "$JOB_NAME" =~ "merge" ]]; then # set simplest scenario for virtual deploys to run for merges DEPLOY_SCENARIO="os-nosdn-nofeature-ha" -else +elif [[ "$BRANCH" != 'master' ]]; then # for none-merge deployments # checkout the commit that was used for building the downloaded artifact # to make sure the ISO and deployment mechanism uses same versions @@ -102,7 +104,7 @@ echo "--------------------------------------------------------" echo "Scenario: $DEPLOY_SCENARIO" echo "Lab: $LAB_NAME" echo "POD: $POD_NAME" -echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" +[[ "$BRANCH" != 'master' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" echo echo "Starting the deployment using $INSTALLER_TYPE. This could take some time..." echo "--------------------------------------------------------" diff --git a/jjb/armband/armband-download-artifact.sh b/jjb/armband/armband-download-artifact.sh index e2dd097b6..4f83305d4 100755 --- a/jjb/armband/armband-download-artifact.sh +++ b/jjb/armband/armband-download-artifact.sh @@ -2,6 +2,7 @@ # SPDX-license-identifier: Apache-2.0 ############################################################################## # Copyright (c) 2016 Ericsson AB and others. +# (c) 2017 Enea AB # 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 @@ -10,6 +11,9 @@ set -o errexit set -o pipefail +# disable Fuel ISO download for master branch +[[ "$BRANCH" == 'master' ]] && exit 0 + echo "Host info: $(hostname) $(hostname -I)" # Configurable environment variables: diff --git a/jjb/armband/build.sh b/jjb/armband/build.sh index a71cf1112..29c01bb38 100755 --- a/jjb/armband/build.sh +++ b/jjb/armband/build.sh @@ -2,12 +2,21 @@ # SPDX-license-identifier: Apache-2.0 ############################################################################## # Copyright (c) 2016 Ericsson AB and others. -# Copyright (c) 2016 Enea AB. +# Copyright (c) 2017 Enea AB. # 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 ############################################################################## + +# disable Armband iso build for master branch +if [[ "$BRANCH" == 'master' ]]; then + touch $WORKSPACE/.noupload + echo "--------------------------------------------------------" + echo "Done!" + exit 0 +fi + set -o errexit set -o nounset set -o pipefail diff --git a/jjb/ci_gate_security/opnfv-ci-gate-security.yml b/jjb/ci_gate_security/opnfv-ci-gate-security.yml index e2f6ceb7b..d991573b0 100644 --- a/jjb/ci_gate_security/opnfv-ci-gate-security.yml +++ b/jjb/ci_gate_security/opnfv-ci-gate-security.yml @@ -77,7 +77,7 @@ comment-contains-value: 'reverify' projects: - project-compare-type: 'REG_EXP' - project-pattern: 'apex|armband|bamboo|barometer|bottlenecks|calipso|compass4nfv|conductor|cooper|functest|octopus|pharos|releng|sandbox' + project-pattern: 'apex|armband|bamboo|barometer|bottlenecks|calipso|compass4nfv|conductor|cooper|cperf|daisy|doctor|dovetail|dpacc|enfv|escalator|fds|functest|octopus|pharos|releng|sandbox|yardstick' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' diff --git a/jjb/compass4nfv/compass-ci-jobs.yml b/jjb/compass4nfv/compass-ci-jobs.yml index ddd90b6e4..3335391ca 100644 --- a/jjb/compass4nfv/compass-ci-jobs.yml +++ b/jjb/compass4nfv/compass-ci-jobs.yml @@ -236,6 +236,15 @@ steps: - trigger-builds: - project: 'dovetail-compass-{pod}-proposed_tests-{stream}' + current-parameters: false + predefined-parameters: + DEPLOY_SCENARIO={scenario} + block: true + same-node: true + block-thresholds: + build-step-failure-threshold: 'never' + failure-threshold: 'never' + unstable-threshold: 'FAILURE' - job-template: name: 'compass-deploy-{pod}-daily-{stream}' diff --git a/jjb/qtip/qtip-validate-jobs.yml b/jjb/qtip/qtip-validate-jobs.yml index 8dd97de1d..9f1ccecaf 100644 --- a/jjb/qtip/qtip-validate-jobs.yml +++ b/jjb/qtip/qtip-validate-jobs.yml @@ -13,11 +13,6 @@ branch: '{stream}' gs-pathname: '' docker-tag: latest - danube: &danube - stream: danube - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - docker-tag: 'stable' #-------------------------------- # JOB VARIABLES @@ -31,18 +26,6 @@ installer: fuel scenario: os-nosdn-kvm-ha <<: *master - - zte-pod1: - installer: fuel - scenario: os-odl_l2-nofeature-ha - <<: *danube - - zte-pod3: - installer: fuel - scenario: os-nosdn-nofeature-ha - <<: *danube - - zte-pod3: - installer: fuel - scenario: os-nosdn-kvm-ha - <<: *danube #-------------------------------- # JOB LIST @@ -127,18 +110,3 @@ name: 'qtip-os-nosdn-kvm-ha-zte-pod3-daily-master-trigger' triggers: - timed: '0 15 * * *' - -- trigger: - name: 'qtip-os-odl_l2-nofeature-ha-zte-pod1-daily-danube-trigger' - triggers: - - timed: '0 7 * * *' - -- trigger: - name: 'qtip-os-nosdn-kvm-ha-zte-pod3-daily-danube-trigger' - triggers: - - timed: '0 7 * * *' - -- trigger: - name: 'qtip-os-nosdn-nofeature-ha-zte-pod3-daily-danube-trigger' - triggers: - - timed: '30 0 * * *' diff --git a/jjb/qtip/qtip-weekly-jobs.yml b/jjb/qtip/qtip-weekly-jobs.yml new file mode 100644 index 000000000..2170de7b8 --- /dev/null +++ b/jjb/qtip/qtip-weekly-jobs.yml @@ -0,0 +1,107 @@ +################# +# QTIP weekly job +################# +- project: + name: qtip-weekly + project: qtip + +#-------------------------------- +# BRANCH ANCHORS +#-------------------------------- + danube: &danube + stream: danube + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + docker-tag: 'stable' + +#-------------------------------- +# JOB VARIABLES +#-------------------------------- + pod: + - zte-pod1: + installer: fuel + scenario: os-odl_l2-nofeature-ha + <<: *danube + - zte-pod3: + installer: fuel + scenario: os-nosdn-nofeature-ha + <<: *danube + - zte-pod3: + installer: fuel + scenario: os-nosdn-kvm-ha + <<: *danube + +#-------------------------------- +# JOB LIST +#-------------------------------- + jobs: + - 'qtip-{scenario}-{pod}-weekly-{stream}' + +################################ +# job templates +################################ +- job-template: + name: 'qtip-{scenario}-{pod}-weekly-{stream}' + disabled: false + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - '{installer}-defaults' + - '{pod}-defaults' + - string: + name: DEPLOY_SCENARIO + default: '{scenario}' + - string: + name: DOCKER_TAG + default: '{docker-tag}' + description: 'Tag to pull docker image' + - string: + name: CI_DEBUG + default: 'false' + description: "Show debug output information" + scm: + - git-scm + triggers: + - 'qtip-{scenario}-{pod}-weekly-{stream}-trigger' + builders: + - description-setter: + description: "POD: $NODE_NAME" + - qtip-validate-deploy-weekly + publishers: + - email: + recipients: wu.zhihui1@zte.com.cn, zhang.yujunz@zte.com.cn + +################ +# MARCOS +################ + +#--------- +# builder +#--------- +- builder: + name: qtip-validate-deploy-weekly + builders: + - shell: + !include-raw: ./helpers/cleanup-deploy.sh + - shell: + !include-raw: ./helpers/validate-deploy.sh + +#--------- +# trigger +#--------- + +- trigger: + name: 'qtip-os-odl_l2-nofeature-ha-zte-pod1-weekly-danube-trigger' + triggers: + - timed: '0 7 * * 0' + +- trigger: + name: 'qtip-os-nosdn-kvm-ha-zte-pod3-weekly-danube-trigger' + triggers: + - timed: '0 7 * * 0' + +- trigger: + name: 'qtip-os-nosdn-nofeature-ha-zte-pod3-weekly-danube-trigger' + triggers: + - timed: '30 0 * * 0' diff --git a/jjb/yardstick/yardstick-daily-jobs.yml b/jjb/yardstick/yardstick-daily-jobs.yml index ff1d47eb4..41840d59c 100644 --- a/jjb/yardstick/yardstick-daily-jobs.yml +++ b/jjb/yardstick/yardstick-daily-jobs.yml @@ -276,7 +276,7 @@ - description-setter: description: "POD: $NODE_NAME" - 'yardstick-cleanup' - #- 'yardstick-fetch-os-creds' + - 'yardstick-fetch-os-creds' - 'yardstick-{testsuite}' - 'yardstick-store-results' diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh index 1c2abad3f..cf37ac262 100755 --- a/jjb/yardstick/yardstick-daily.sh +++ b/jjb/yardstick/yardstick-daily.sh @@ -2,9 +2,9 @@ set -e [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" -# labconfig is used only for joid -labconfig="" +rc_file_vol="" sshkey="" + if [[ ${INSTALLER_TYPE} == 'apex' ]]; then instack_mac=$(sudo virsh domiflist undercloud | grep default | \ grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") @@ -15,12 +15,16 @@ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable fi -elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then +fi + +if [[ ${INSTALLER_TYPE} == 'joid' ]]; then # If production lab then creds may be retrieved dynamically # creds are on the jumphost, always in the same folder - labconfig="-v $LAB_CONFIG/admin-openrc:/etc/yardstick/openstack.creds" + rc_file_vol="-v $LAB_CONFIG/admin-openrc:/etc/yardstick/openstack.creds" # If dev lab, credentials may not be the default ones, just provide a path to put them into docker # replace the default one by the customized one provided by jenkins config +else + rc_file_vol="-v ${HOME}/opnfv-openrc.sh:/etc/yardstick/openstack.creds" fi # Set iptables rule to allow forwarding return traffic for container @@ -46,7 +50,7 @@ sudo rm -rf ${dir_result}/* map_log_dir="-v ${dir_result}:/tmp/yardstick" # Run docker -cmd="sudo docker run ${opts} ${envs} ${labconfig} ${map_log_dir} ${sshkey} opnfv/yardstick:${DOCKER_TAG} \ +cmd="sudo docker run ${opts} ${envs} ${rc_file_vol} ${map_log_dir} ${sshkey} opnfv/yardstick:${DOCKER_TAG} \ exec_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SCENARIO_SUITE_NAME}" echo "Yardstick: Running docker cmd: ${cmd}" ${cmd} diff --git a/prototypes/xci/playbooks/configure-opnfvhost.yml b/prototypes/xci/playbooks/configure-opnfvhost.yml index 8656ff9df..a7ce5216c 100644 --- a/prototypes/xci/playbooks/configure-opnfvhost.yml +++ b/prototypes/xci/playbooks/configure-opnfvhost.yml @@ -87,6 +87,13 @@ command: "/bin/bash ./scripts/bootstrap-ansible.sh" args: chdir: "{{OPENSTACK_OSA_PATH}}" + - name: install python Crypto module + package: + name: "{{ python_crypto_package_name }}" + - name: install PyYAML + pip: + name: pyyaml + state: present - name: generate password token command: "python pw-token-gen.py --file {{OPENSTACK_OSA_ETC_PATH}}/user_secrets.yml" args: diff --git a/prototypes/xci/var/Debian.yml b/prototypes/xci/var/Debian.yml index d13d08097..33f110593 100644 --- a/prototypes/xci/var/Debian.yml +++ b/prototypes/xci/var/Debian.yml @@ -9,3 +9,4 @@ ############################################################################## # this is the interface the VM nodes are connected to libvirt network "default" interface: "ens3" +python_crypto_package_name: python-crypto diff --git a/prototypes/xci/var/RedHat.yml b/prototypes/xci/var/RedHat.yml index 6d03e0f32..eae7d127f 100644 --- a/prototypes/xci/var/RedHat.yml +++ b/prototypes/xci/var/RedHat.yml @@ -8,3 +8,4 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## # this is placeholder and left blank intentionally to complete later on +python_crypto_package_name: python-crypto diff --git a/prototypes/xci/var/Suse.yml b/prototypes/xci/var/Suse.yml index 6d03e0f32..9674ed2d9 100644 --- a/prototypes/xci/var/Suse.yml +++ b/prototypes/xci/var/Suse.yml @@ -8,3 +8,4 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## # this is placeholder and left blank intentionally to complete later on +python_crypto_package_name: python-pycrypto diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/__init__.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/__init__.py diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/scenario-c1.json b/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c1.json index 187802215..187802215 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/scenario-c1.json +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c1.json diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/scenario-c2.json b/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json index b6a3b83ab..b6a3b83ab 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/scenario-c2.json +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_base.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_base.py index 4d3445659..6e4d454de 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_base.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_base.py @@ -17,7 +17,7 @@ from opnfv_testapi.resources import models from opnfv_testapi.tests.unit import fake_pymongo config.Config.CONFIG = path.join(path.dirname(__file__), - '../../../etc/config.ini') + '../../../../etc/config.ini') class TestBase(testing.AsyncHTTPTestCase): @@ -42,7 +42,7 @@ class TestBase(testing.AsyncHTTPTestCase): from opnfv_testapi.cmd import server server.parse_config([ '--config-file', - path.join(path.dirname(__file__), 'common/normal.ini') + path.join(path.dirname(__file__), path.pardir, 'common/normal.ini') ]) self.db_patcher = mock.patch('opnfv_testapi.cmd.server.get_db', self._fake_pymongo) diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_fake_pymongo.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_fake_pymongo.py index 1ebc96f3b..1ebc96f3b 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_fake_pymongo.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_fake_pymongo.py diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_pod.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_pod.py index 0ed348df9..8e0ae407d 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_pod.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_pod.py @@ -12,7 +12,7 @@ import unittest from opnfv_testapi.common import message from opnfv_testapi.resources import pod_models from opnfv_testapi.tests.unit import executor -from opnfv_testapi.tests.unit import test_base as base +from opnfv_testapi.tests.unit.resources import test_base as base class TestPodBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_project.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_project.py index 323a1168f..5a2ce7522 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_project.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_project.py @@ -4,7 +4,7 @@ import unittest from opnfv_testapi.common import message from opnfv_testapi.resources import project_models from opnfv_testapi.tests.unit import executor -from opnfv_testapi.tests.unit import test_base as base +from opnfv_testapi.tests.unit.resources import test_base as base class TestProjectBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_result.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_result.py index ef2ce307e..c8463cb02 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_result.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_result.py @@ -7,17 +7,17 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## import copy -from datetime import datetime, timedelta import httplib import unittest +from datetime import datetime, timedelta from opnfv_testapi.common import message from opnfv_testapi.resources import pod_models from opnfv_testapi.resources import project_models from opnfv_testapi.resources import result_models from opnfv_testapi.resources import testcase_models -from opnfv_testapi.tests.unit import test_base as base from opnfv_testapi.tests.unit import executor +from opnfv_testapi.tests.unit.resources import test_base as base class Details(object): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_scenario.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py index b232bc168..bd720671b 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_scenario.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py @@ -1,13 +1,13 @@ -from copy import deepcopy -from datetime import datetime import functools import httplib import json import os +from copy import deepcopy +from datetime import datetime -from opnfv_testapi.common import message import opnfv_testapi.resources.scenario_models as models -from opnfv_testapi.tests.unit import test_base as base +from opnfv_testapi.common import message +from opnfv_testapi.tests.unit.resources import test_base as base class TestScenarioBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_testcase.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_testcase.py index e28eaf5b8..4f2bc2ad1 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_testcase.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_testcase.py @@ -13,8 +13,8 @@ import unittest from opnfv_testapi.common import message from opnfv_testapi.resources import project_models from opnfv_testapi.resources import testcase_models -from opnfv_testapi.tests.unit import test_base as base from opnfv_testapi.tests.unit import executor +from opnfv_testapi.tests.unit.resources import test_base as base class TestCaseBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_token.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_token.py index ca247a3b7..c9d4b72c4 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_token.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_token.py @@ -13,7 +13,7 @@ from opnfv_testapi.resources import project_models from opnfv_testapi.router import url_mappings from opnfv_testapi.tests.unit import executor from opnfv_testapi.tests.unit import fake_pymongo -from opnfv_testapi.tests.unit import test_base as base +from opnfv_testapi.tests.unit.resources import test_base as base class TestToken(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_version.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_version.py index fff802ac8..51fed11ea 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/test_version.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_version.py @@ -11,7 +11,7 @@ import unittest from opnfv_testapi.resources import models from opnfv_testapi.tests.unit import executor -from opnfv_testapi.tests.unit import test_base as base +from opnfv_testapi.tests.unit.resources import test_base as base class TestVersionBase(base.TestBase): |