echo "--------------------------------------------------------"
echo
-sudo rm -rf /tmp/tmp*
-
if [ -z "$DEPLOY_SCENARIO" ]; then
echo "Deploy scenario not set!"
exit 1
DEPLOY_SETTINGS_DIR="${WORKSPACE}/config/deploy"
NETWORK_SETTINGS_DIR="${WORKSPACE}/config/network"
DEPLOY_CMD="opnfv-deploy --image-dir ${WORKSPACE}/.build"
- CLEAN_CMD="${WORKSPACE}/ci/clean.sh"
+ CLEAN_CMD="opnfv-clean"
RESOURCES="${WORKSPACE}/.build/"
CONFIG="${WORKSPACE}/build"
BASE=$CONFIG
VERSION_EXTENSION=$(echo $(basename $RPM_LIST) | grep -Eo '[0-9]+\.[0-9]+-([0-9]{8}|[a-z]+-[0-9]\.[0-9]+)')
# build RPM List which already includes base Apex RPM
RPM_LIST+=" opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm"
- RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm"
+
+ # add back legacy support for danube
+ if [ "$BRANCH" == 'stable/danube' ]; then
+ RPM_LIST+=" opnfv-apex-common-${VERSION_EXTENSION}.noarch.rpm"
+ else
+ RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm"
+ fi
# remove old / install new RPMs
if rpm -q opnfv-apex > /dev/null; then
gs-pathname: ''
concurrent-builds: 3
disabled: false
-
+ - euphrates: &euphrates
+ branch: 'stable/euphrates'
+ gs-pathname: '/euphrates'
+ concurrent-builds: 3
+ disabled: true
- danube: &danube
branch: 'stable/danube'
gs-pathname: '/danube'
# Required Variables:
# stream: branch with - in place of / (eg. stable)
# branch: branch (eg. stable)
- node: 'apex-build-{stream}'
+ node: 'apex-build-master'
disabled: false
# Required Variables:
# stream: branch with - in place of / (eg. stable)
# branch: branch (eg. stable)
- node: 'apex-virtual-{stream}'
+ node: 'apex-virtual-master'
disabled: false
echo "Cleaning server"
pushd ci > /dev/null
-sudo BASE=../build/ LIB=../lib ./clean.sh
+sudo opnfv-clean
popd > /dev/null
echo "Downloading latest snapshot properties file"
- 'apex-verify-unit-tests-{stream}'
- 'apex-runner-cperf-{stream}'
- 'apex-deploy-{platform}-{stream}'
- - 'apex-daily-master'
- - 'apex-daily-danube'
+ - 'apex-daily-{stream}'
- 'apex-csit-promote-daily-{stream}'
- 'apex-fdio-promote-daily-{stream}'
- 'apex-{scenario}-baremetal-{scenario_stream}'
baremetal-slave: 'apex-baremetal-master'
verify-scenario: 'os-odl-nofeature-ha'
scenario_stream: 'master'
-
+ - euphrates: &euphrates
+ branch: 'stable/euphrates'
+ gs-pathname: ''
+ build-slave: 'apex-build-master'
+ virtual-slave: 'apex-virtual-master'
+ baremetal-slave: 'apex-baremetal-master'
+ verify-scenario: 'os-odl-nofeature-ha'
+ scenario_stream: 'euphrates'
- danube: &danube
branch: 'stable/danube'
gs-pathname: '/danube'
<<: *master
- 'os-odl-fdio-dvr-ha':
<<: *master
+ - 'os-nosdn-nofeature-noha':
+ <<: *euphrates
+ - 'os-nosdn-nofeature-ha':
+ <<: *euphrates
+ - 'os-odl-nofeature-ha':
+ <<: *euphrates
+ - 'os-odl-nofeature-noha':
+ <<: *euphrates
+ - 'os-odl-bgpvpn-ha':
+ <<: *euphrates
+ - 'os-ovn-nofeature-noha':
+ <<: *euphrates
+ - 'os-nosdn-fdio-noha':
+ <<: *euphrates
+ - 'os-nosdn-fdio-ha':
+ <<: *euphrates
+ - 'os-odl-fdio-noha':
+ <<: *euphrates
+ - 'os-odl-fdio-ha':
+ <<: *euphrates
+ - 'os-nosdn-bar-ha':
+ <<: *euphrates
+ - 'os-nosdn-bar-noha':
+ <<: *euphrates
+ - 'os-nosdn-nofeature-ha-ipv6':
+ <<: *euphrates
+ - 'os-nosdn-ovs_dpdk-noha':
+ <<: *euphrates
+ - 'os-nosdn-ovs_dpdk-ha':
+ <<: *euphrates
+ - 'os-nosdn-kvm_ovs_dpdk-noha':
+ <<: *euphrates
+ - 'os-nosdn-kvm_ovs_dpdk-ha':
+ <<: *euphrates
+ - 'os-odl-sfc-noha':
+ <<: *euphrates
+ - 'os-odl-sfc-ha':
+ <<: *euphrates
+ - 'os-odl-fdio-dvr-noha':
+ <<: *euphrates
+ - 'os-odl-fdio-dvr-ha':
+ <<: *euphrates
platform:
- 'baremetal'
# steps:
# - shell: 'echo "Tests Passed"'
-
-# danube Daily
- job-template:
- name: 'apex-daily-danube'
+ name: 'apex-daily-{stream}'
# Job template for daily build
#
# branch: branch (eg. stable)
project-type: 'multijob'
- node: 'apex-baremetal-danube'
+ node: '{baremetal-slave}'
disabled: false
parameters:
- '{project}-defaults'
- - '{project}-baremetal-danube-defaults'
+ - '{project}-baremetal-{stream}-defaults'
- project-parameter:
project: '{project}'
- branch: 'stable/danube'
+ branch: '{branch}'
- apex-parameter:
- gs-pathname: '/danube'
+ gs-pathname: '{gs-pathname}'
properties:
- logrotate-default
triggers:
- - 'apex-danube'
+ - 'apex-{stream}'
builders:
- multijob:
name: build
condition: SUCCESSFUL
projects:
- - name: 'apex-build-danube'
+ - name: 'apex-build-{stream}'
current-parameters: false
predefined-parameters: |
GERRIT_BRANCH=$GERRIT_BRANCH
name: 'Verify and upload ISO'
condition: SUCCESSFUL
projects:
- - name: 'apex-verify-iso-danube'
+ - name: 'apex-verify-iso-{stream}'
current-parameters: false
predefined-parameters: |
- BUILD_DIRECTORY=$WORKSPACE/../apex-build-danube/.build
+ BUILD_DIRECTORY=$WORKSPACE/../apex-build-{stream}/.build
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
kill-phase-on: FAILURE
abort-all-job: true
git-revision: true
- - multijob:
- name: Baremetal Deploy and Test Phase
- condition: SUCCESSFUL
- projects:
-
- - name: 'apex-os-nosdn-nofeature-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ - apex-builder-{stream}
- - name: 'apex-os-nosdn-nofeature-ha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+# snapshot create
+- job-template:
+ name: 'apex-create-snapshot'
- - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ # Job template for clean
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
- - name: 'apex-os-nosdn-ovs-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ disabled: false
- - name: 'apex-os-nosdn-ovs-ha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ builders:
+ - shell:
+ !include-raw-escape: ./apex-snapshot-create.sh
- - name: 'apex-os-nosdn-fdio-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+# snapshot upload
+- job-template:
+ name: 'apex-upload-snapshot'
- - name: 'apex-os-nosdn-fdio-ha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ # Job template for clean
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
- - name: 'apex-os-nosdn-kvm-ha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ disabled: false
- - name: 'apex-os-nosdn-kvm-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ builders:
+ - inject:
+ properties-content: ARTIFACT_TYPE=snapshot
+ - 'apex-upload-artifact'
- - name: 'apex-os-odl_l2-fdio-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+# CSIT promote
+- job-template:
+ name: 'apex-csit-promote-daily-{stream}'
- - name: 'apex-os-odl_l2-fdio-ha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ # Job template for promoting CSIT Snapshots
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
+ # branch: branch (eg. stable)
+ node: '{virtual-slave}'
+ project-type: 'multijob'
+ disabled: false
- - name: 'apex-os-odl_netvirt-fdio-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ scm:
+ - git-scm
- - name: 'apex-os-odl_l2-sfc-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
- - name: 'apex-os-odl_l3-nofeature-noha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify.*'
+ - 'apex-deploy.*'
+ - 'apex-runner.*'
+ - 'apex-daily.*'
- - name: 'apex-os-odl_l3-nofeature-ha-baremetal-danube'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
+ triggers:
+ - timed: '0 12 * * 0'
- - name: 'apex-os-odl_l3-ovs-noha-baremetal-danube'
- node-parameters: false
+ builders:
+ - multijob:
+ name: build
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-build-{stream}'
current-parameters: false
predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
-
- - name: 'apex-os-odl_l3-ovs-ha-baremetal-danube'
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
+ kill-phase-on: FAILURE
abort-all-job: true
- git-revision: false
-
- - name: 'apex-os-odl-bgpvpn-ha-baremetal-danube'
- node-parameters: false
+ git-revision: true
+ - multijob:
+ name: deploy-virtual
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-deploy-virtual-{stream}'
current-parameters: false
predefined-parameters: |
+ DEPLOY_SCENARIO=os-odl_l3-csit-noha
OPNFV_CLEAN=yes
- kill-phase-on: NEVER
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ PROMOTE=True
+ node-parameters: true
+ kill-phase-on: FAILURE
abort-all-job: true
git-revision: false
-
- - name: 'apex-os-odl-gluon-noha-baremetal-danube'
+ - multijob:
+ name: functest-smoke
+ condition: SUCCESSFUL
+ projects:
+ - name: 'functest-apex-virtual-suite-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-odl_l3-nofeature-noha
+ FUNCTEST_SUITE_NAME=tempest_smoke_serial
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+ - multijob:
+ name: create snapshot
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-create-snapshot'
+ current-parameters: false
+ predefined-parameters: |
+ SNAP_TYPE=csit
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+ - multijob:
+ name: upload snapshot
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-upload-snapshot'
+ current-parameters: false
+ predefined-parameters: |
+ SNAP_TYPE=csit
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+
+# FDIO promote
+- job-template:
+ name: 'apex-fdio-promote-daily-{stream}'
+
+ # Job template for promoting CSIT Snapshots
+ #
+ # Required Variables:
+ # stream: branch with - in place of / (eg. stable)
+ # branch: branch (eg. stable)
+ node: '{virtual-slave}'
+ project-type: 'multijob'
+ disabled: false
+
+ scm:
+ - git-scm
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify.*'
+ - 'apex-deploy.*'
+ - 'apex-runner.*'
+ - 'apex-daily.*'
+
+ builders:
+ - multijob:
+ name: build
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-build-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: true
+ - multijob:
+ name: deploy-virtual
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-deploy-virtual-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha
+ OPNFV_CLEAN=yes
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ PROMOTE=True
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+ - multijob:
+ name: create snapshot
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-create-snapshot'
+ current-parameters: false
+ predefined-parameters: |
+ SNAP_TYPE=fdio
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+ - multijob:
+ name: upload snapshot
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-upload-snapshot'
+ current-parameters: false
+ predefined-parameters: |
+ SNAP_TYPE=fdio
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+
+# Flex job
+- job-template:
+ name: 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}'
+
+ project-type: 'multijob'
+
+ disabled: false
+
+ node: 'flex-pod2'
+
+ scm:
+ - git-scm
+ triggers:
+ - 'apex-{stream}'
+ parameters:
+ - '{project}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - apex-parameter:
+ gs-pathname: '{gs-pathname}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
+ description: "Scenario to deploy with."
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: SSH_KEY
+ default: /root/.ssh/id_rsa
+ description: 'SSH key to use for Apex'
+ properties:
+ - logrotate-default
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify.*'
+ - 'apex-runner.*'
+ - 'apex-.*-promote.*'
+ - 'apex-run.*'
+ - 'apex-.+-baremetal-.+'
+ - throttle:
+ max-per-node: 1
+ max-total: 10
+ option: 'project'
+ builders:
+ - description-setter:
+ description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
+ - multijob:
+ name: 'Baremetal Deploy'
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-deploy-baremetal-{stream}'
+ node-parameters: true
+ current-parameters: true
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+ - multijob:
+ name: Yardstick
+ condition: ALWAYS
+ projects:
+ - name: 'yardstick-apex-baremetal-daily-{stream}'
+ node-parameters: true
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ kill-phase-on: NEVER
+ abort-all-job: false
+ git-revision: false
+
+# Dovetail Danube test job
+- job-template:
+ name: 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube'
+
+ project-type: 'multijob'
+
+ node: 'huawei-pod4'
+
+ disabled: false
+
+ parameters:
+ - '{project}-defaults'
+ - project-parameter:
+ project: '{project}'
+ branch: 'stable/danube'
+ - apex-parameter:
+ gs-pathname: '/danube'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-nosdn-nofeature-ha'
+ description: "Scenario to deploy with."
+
+ properties:
+ - logrotate-default
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ blocking-jobs:
+ - 'apex-verify.*'
+ - 'apex-runner.*'
+ - 'apex-.*-promote.*'
+ - 'apex-run.*'
+
+ triggers:
+ - timed: '0 12 * * *'
+
+ builders:
+ - description-setter:
+ description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
+ - multijob:
+ name: 'Baremetal Deploy'
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-deploy-baremetal-danube'
+ node-parameters: true
+ current-parameters: true
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ git-revision: false
+ - multijob:
+ name: Dovetail
+ condition: ALWAYS
+ projects:
+ - name: 'dovetail-apex-baremetal-proposed_tests-danube'
+ node-parameters: true
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ kill-phase-on: NEVER
+ abort-all-job: false
+ git-revision: false
+
+########################
+# parameter macros
+########################
+- parameter:
+ name: apex-parameter
+ parameters:
+ - string:
+ name: ARTIFACT_NAME
+ default: 'latest'
+ description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
+ - string:
+ name: ARTIFACT_VERSION
+ default: 'daily'
+ description: "Artifact version type"
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/.build
+ description: "Directory where the build artifact will be located upon the completion of the build."
+ - string:
+ name: CACHE_DIRECTORY
+ default: $HOME/opnfv/apex-cache{gs-pathname}
+ description: "Directory where the cache to be used during the build is located."
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+ - string:
+ name: GS_PATHNAME
+ default: '{gs-pathname}'
+ description: "Version directory where opnfv artifacts are stored in gs repository"
+ - string:
+ name: GS_URL
+ default: $GS_BASE{gs-pathname}
+ description: "URL to Google Storage."
+ - string:
+ name: PROMOTE
+ default: 'False'
+ description: "Flag to know if we should promote/upload snapshot artifacts."
+
+########################
+# builder macros
+########################
+
+# danube Builder
+- builder:
+ name: apex-builder-danube
+ builders:
+ - multijob:
+ name: Baremetal Deploy and Test Phase
+ condition: SUCCESSFUL
+ projects:
+
+ - name: 'apex-os-nosdn-nofeature-noha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl_l3-fdio-noha-baremetal-danube'
+ - name: 'apex-os-nosdn-nofeature-ha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl_l3-fdio-ha-baremetal-danube'
+ - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl_l3-fdio_dvr-noha-baremetal-danube'
+ - name: 'apex-os-nosdn-ovs-noha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl_l3-fdio_dvr-ha-baremetal-danube'
+ - name: 'apex-os-nosdn-ovs-ha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl_l3-csit-noha-baremetal-danube'
+ - name: 'apex-os-nosdn-fdio-noha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-onos-nofeature-ha-baremetal-danube'
+ - name: 'apex-os-nosdn-fdio-ha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
- - name: 'apex-os-ovn-nofeature-noha-baremetal-danube'
+ - name: 'apex-os-nosdn-kvm-ha-baremetal-danube'
node-parameters: false
current-parameters: false
predefined-parameters: |
abort-all-job: true
git-revision: false
+ - name: 'apex-os-nosdn-kvm-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
-# master Daily
-- job-template:
- name: 'apex-daily-master'
+ - name: 'apex-os-odl_l2-fdio-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- # Job template for daily build
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- project-type: 'multijob'
+ - name: 'apex-os-odl_l2-fdio-ha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- node: 'apex-baremetal-master'
+ - name: 'apex-os-odl_netvirt-fdio-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- disabled: false
+ - name: 'apex-os-odl_l2-sfc-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- scm:
- - git-scm
+ - name: 'apex-os-odl_l3-nofeature-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- parameters:
- - '{project}-defaults'
- - '{project}-baremetal-master-defaults'
- - project-parameter:
- project: '{project}'
- branch: 'master'
- - apex-parameter:
- gs-pathname: ''
+ - name: 'apex-os-odl_l3-nofeature-ha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- properties:
- - logrotate-default
+ - name: 'apex-os-odl_l3-ovs-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- triggers:
- - 'apex-master'
+ - name: 'apex-os-odl_l3-ovs-ha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- builders:
- - multijob:
- name: build
- condition: SUCCESSFUL
- projects:
- - name: 'apex-build-master'
+ - name: 'apex-os-odl-bgpvpn-ha-baremetal-danube'
+ node-parameters: false
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: true
- kill-phase-on: FAILURE
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
abort-all-job: true
- git-revision: true
- - multijob:
- name: 'Verify and upload ISO'
- condition: SUCCESSFUL
- projects:
- - name: 'apex-verify-iso-master'
+ git-revision: false
+
+ - name: 'apex-os-odl-gluon-noha-baremetal-danube'
+ node-parameters: false
current-parameters: false
predefined-parameters: |
- BUILD_DIRECTORY=$WORKSPACE/../apex-build-master/.build
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: true
- kill-phase-on: FAILURE
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl_l3-fdio-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl_l3-fdio-ha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl_l3-fdio_dvr-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl_l3-fdio_dvr-ha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl_l3-csit-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-onos-nofeature-ha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-ovn-nofeature-noha-baremetal-danube'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
abort-all-job: true
- git-revision: true
+ git-revision: false
+
+
+# master Builder
+- builder:
+ name: apex-builder-master
+ builders:
- multijob:
name: Baremetal Deploy and Test Phase
condition: SUCCESSFUL
git-revision: false
-
-# snapshot create
-- job-template:
- name: 'apex-create-snapshot'
-
- # Job template for clean
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
-
- disabled: false
-
- builders:
- - shell:
- !include-raw-escape: ./apex-snapshot-create.sh
-
-# snapshot upload
-- job-template:
- name: 'apex-upload-snapshot'
-
- # Job template for clean
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
-
- disabled: false
-
- builders:
- - inject:
- properties-content: ARTIFACT_TYPE=snapshot
- - 'apex-upload-artifact'
-
-# CSIT promote
-- job-template:
- name: 'apex-csit-promote-daily-{stream}'
-
- # Job template for promoting CSIT Snapshots
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- node: '{virtual-slave}'
- project-type: 'multijob'
- disabled: false
-
- scm:
- - git-scm
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
-
- properties:
- - build-blocker:
- use-build-blocker: true
- block-level: 'NODE'
- blocking-jobs:
- - 'apex-verify.*'
- - 'apex-deploy.*'
- - 'apex-runner.*'
- - 'apex-daily.*'
-
- triggers:
- - timed: '0 12 * * 0'
-
- builders:
+# euphrates Builder
+- builder:
+ name: apex-builder-euphrates
+ builders:
- multijob:
- name: build
+ name: Baremetal Deploy and Test Phase
condition: SUCCESSFUL
projects:
- - name: 'apex-build-{stream}'
+
+ - name: 'apex-os-nosdn-nofeature-noha-baremetal-euphrates'
+ node-parameters: false
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: false
- kill-phase-on: FAILURE
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
abort-all-job: true
- git-revision: true
- - multijob:
- name: deploy-virtual
- condition: SUCCESSFUL
- projects:
- - name: 'apex-deploy-virtual-{stream}'
+ git-revision: false
+
+ - name: 'apex-os-nosdn-nofeature-ha-baremetal-euphrates'
+ node-parameters: false
current-parameters: false
predefined-parameters: |
- DEPLOY_SCENARIO=os-odl_l3-csit-noha
OPNFV_CLEAN=yes
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- PROMOTE=True
- node-parameters: true
- kill-phase-on: FAILURE
+ kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - multijob:
- name: functest-smoke
- condition: SUCCESSFUL
- projects:
- - name: 'functest-apex-virtual-suite-{stream}'
- current-parameters: false
- predefined-parameters: |
- DEPLOY_SCENARIO=os-odl_l3-nofeature-noha
- FUNCTEST_SUITE_NAME=tempest_smoke_serial
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- git-revision: false
- - multijob:
- name: create snapshot
- condition: SUCCESSFUL
- projects:
- - name: 'apex-create-snapshot'
- current-parameters: false
- predefined-parameters: |
- SNAP_TYPE=csit
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- git-revision: false
- - multijob:
- name: upload snapshot
- condition: SUCCESSFUL
- projects:
- - name: 'apex-upload-snapshot'
- current-parameters: false
- predefined-parameters: |
- SNAP_TYPE=csit
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- git-revision: false
-
-# FDIO promote
-- job-template:
- name: 'apex-fdio-promote-daily-{stream}'
-
- # Job template for promoting CSIT Snapshots
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- node: '{virtual-slave}'
- project-type: 'multijob'
- disabled: false
-
- scm:
- - git-scm
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
-
- properties:
- - build-blocker:
- use-build-blocker: true
- block-level: 'NODE'
- blocking-jobs:
- - 'apex-verify.*'
- - 'apex-deploy.*'
- - 'apex-runner.*'
- - 'apex-daily.*'
- builders:
- - multijob:
- name: build
- condition: SUCCESSFUL
- projects:
- - name: 'apex-build-{stream}'
+ - name: 'apex-os-odl-nofeature-ha-baremetal-euphrates'
+ node-parameters: false
current-parameters: false
predefined-parameters: |
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+ - name: 'apex-os-odl-nofeature-noha-baremetal-euphrates'
node-parameters: false
- kill-phase-on: FAILURE
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
abort-all-job: true
- git-revision: true
- - multijob:
- name: deploy-virtual
- condition: SUCCESSFUL
- projects:
- - name: 'apex-deploy-virtual-{stream}'
+ git-revision: false
+
+ - name: 'apex-os-odl-bgpvpn-ha-baremetal-euphrates'
+ node-parameters: false
current-parameters: false
predefined-parameters: |
- DEPLOY_SCENARIO=os-odl_netvirt-fdio-noha
OPNFV_CLEAN=yes
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- PROMOTE=True
- node-parameters: true
- kill-phase-on: FAILURE
+ kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - multijob:
- name: create snapshot
- condition: SUCCESSFUL
- projects:
- - name: 'apex-create-snapshot'
- current-parameters: false
- predefined-parameters: |
- SNAP_TYPE=fdio
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- git-revision: false
- - multijob:
- name: upload snapshot
- condition: SUCCESSFUL
- projects:
- - name: 'apex-upload-snapshot'
- current-parameters: false
- predefined-parameters: |
- SNAP_TYPE=fdio
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
- git-revision: false
-# Flex job
-- job-template:
- name: 'apex-flex-daily-os-nosdn-nofeature-ha-{stream}'
+ - name: 'apex-os-ovn-nofeature-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- project-type: 'multijob'
+ - name: 'apex-os-nosdn-fdio-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- disabled: false
+ - name: 'apex-os-nosdn-fdio-ha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- node: 'flex-pod2'
+ - name: 'apex-os-odl-fdio-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- scm:
- - git-scm
- triggers:
- - 'apex-{stream}'
- parameters:
- - '{project}-defaults'
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - apex-parameter:
- gs-pathname: '{gs-pathname}'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-ha'
- description: "Scenario to deploy with."
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/$PROJECT
- description: 'Git URL to use on this Jenkins Slave'
- - string:
- name: SSH_KEY
- default: /root/.ssh/id_rsa
- description: 'SSH key to use for Apex'
- properties:
- - logrotate-default
- - build-blocker:
- use-build-blocker: true
- block-level: 'NODE'
- blocking-jobs:
- - 'apex-verify.*'
- - 'apex-runner.*'
- - 'apex-.*-promote.*'
- - 'apex-run.*'
- - 'apex-.+-baremetal-.+'
- - throttle:
- max-per-node: 1
- max-total: 10
- option: 'project'
- builders:
- - description-setter:
- description: "Deployed on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
- - multijob:
- name: 'Baremetal Deploy'
- condition: SUCCESSFUL
- projects:
- - name: 'apex-deploy-baremetal-{stream}'
- node-parameters: true
- current-parameters: true
+ - name: 'apex-os-odl-fdio-ha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
predefined-parameters: |
OPNFV_CLEAN=yes
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
- kill-phase-on: FAILURE
+ kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - multijob:
- name: Yardstick
- condition: ALWAYS
- projects:
- - name: 'yardstick-apex-baremetal-daily-{stream}'
- node-parameters: true
+
+ - name: 'apex-os-nosdn-bar-ha-baremetal-euphrates'
+ node-parameters: false
current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
kill-phase-on: NEVER
- abort-all-job: false
+ abort-all-job: true
git-revision: false
-# Dovetail Danube test job
-- job-template:
- name: 'apex-dovetail-daily-os-nosdn-nofeature-ha-baremetal-danube'
+ - name: 'apex-os-nosdn-bar-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- project-type: 'multijob'
+ - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- node: 'huawei-pod4'
+ - name: 'apex-os-nosdn-ovs_dpdk-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- disabled: false
+ - name: 'apex-os-nosdn-ovs_dpdk-ha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- parameters:
- - '{project}-defaults'
- - project-parameter:
- project: '{project}'
- branch: 'stable/danube'
- - apex-parameter:
- gs-pathname: '/danube'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-ha'
- description: "Scenario to deploy with."
+ - name: 'apex-os-nosdn-kvm_ovs_dpdk-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- properties:
- - logrotate-default
- - build-blocker:
- use-build-blocker: true
- block-level: 'NODE'
- blocking-jobs:
- - 'apex-verify.*'
- - 'apex-runner.*'
- - 'apex-.*-promote.*'
- - 'apex-run.*'
+ - name: 'apex-os-nosdn-kvm_ovs_dpdk-ha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- triggers:
- - timed: '0 12 * * *'
+ - name: 'apex-os-odl-sfc-noha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
- builders:
- - description-setter:
- description: "Testing on $NODE_NAME - Scenario: $DEPLOY_SCENARIO"
- - multijob:
- name: 'Baremetal Deploy'
- condition: SUCCESSFUL
- projects:
- - name: 'apex-deploy-baremetal-danube'
- node-parameters: true
- current-parameters: true
+ - name: 'apex-os-odl-sfc-ha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
predefined-parameters: |
OPNFV_CLEAN=yes
- GERRIT_BRANCH=$GERRIT_BRANCH
- GERRIT_REFSPEC=
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
- kill-phase-on: FAILURE
+ kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - multijob:
- name: Dovetail
- condition: ALWAYS
- projects:
- - name: 'dovetail-apex-baremetal-proposed_tests-danube'
- node-parameters: true
+
+ - name: 'apex-os-odl-fdio-dvr-noha-baremetal-euphrates'
+ node-parameters: false
current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
kill-phase-on: NEVER
- abort-all-job: false
+ abort-all-job: true
git-revision: false
-########################
-# parameter macros
-########################
-- parameter:
- name: apex-parameter
- parameters:
- - string:
- name: ARTIFACT_NAME
- default: 'latest'
- description: "RPM Artifact name that will be appended to GS_URL to deploy a specific artifact"
- - string:
- name: ARTIFACT_VERSION
- default: 'daily'
- description: "Artifact version type"
- - string:
- name: BUILD_DIRECTORY
- default: $WORKSPACE/.build
- description: "Directory where the build artifact will be located upon the completion of the build."
- - string:
- name: CACHE_DIRECTORY
- default: $HOME/opnfv/apex-cache{gs-pathname}
- description: "Directory where the cache to be used during the build is located."
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/$PROJECT
- description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
- - string:
- name: GS_PATHNAME
- default: '{gs-pathname}'
- description: "Version directory where opnfv artifacts are stored in gs repository"
- - string:
- name: GS_URL
- default: $GS_BASE{gs-pathname}
- description: "URL to Google Storage."
- - string:
- name: PROMOTE
- default: 'False'
- description: "Flag to know if we should promote/upload snapshot artifacts."
+ - name: 'apex-os-odl-fdio-dvr-ha-baremetal-euphrates'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
+
-########################
-# builder macros
-########################
- builder:
name: 'apex-unit-test'
builders:
########################
- trigger:
name: 'apex-master'
+ triggers:
+ - timed: '0 3 1 1 7'
+- trigger:
+ name: 'apex-euphrates'
triggers:
- timed: '0 12 * * *'
- trigger:
- 'apex-verify-unit-tests-{stream}'
- 'apex-runner-cperf-{stream}'
- 'apex-deploy-{platform}-{stream}'
- - 'apex-daily-master'
- - 'apex-daily-danube'
+ - 'apex-daily-{stream}'
- 'apex-csit-promote-daily-{stream}'
- 'apex-fdio-promote-daily-{stream}'
- 'apex-{scenario}-baremetal-{scenario_stream}'
baremetal-slave: 'apex-baremetal-master'
verify-scenario: 'os-odl-nofeature-ha'
scenario_stream: 'master'
-
+ - euphrates: &euphrates
+ branch: 'stable/euphrates'
+ gs-pathname: ''
+ build-slave: 'apex-build-master'
+ virtual-slave: 'apex-virtual-master'
+ baremetal-slave: 'apex-baremetal-master'
+ verify-scenario: 'os-odl-nofeature-ha'
+ scenario_stream: 'euphrates'
- danube: &danube
branch: 'stable/danube'
gs-pathname: '/danube'
# steps:
# - shell: 'echo "Tests Passed"'
-{% for stream in scenarios %}
-# {{ stream }} Daily
- job-template:
- name: 'apex-daily-{{ stream }}'
+ name: 'apex-daily-{stream}'
# Job template for daily build
#
# branch: branch (eg. stable)
project-type: 'multijob'
- node: '{{ build_slave[stream] }}'
+ node: '{baremetal-slave}'
disabled: false
parameters:
- '{project}-defaults'
- - '{project}-baremetal-{{ stream }}-defaults'
+ - '{project}-baremetal-{stream}-defaults'
- project-parameter:
project: '{project}'
- branch: '{{ branch[stream] }}'
+ branch: '{branch}'
- apex-parameter:
- gs-pathname: '{{ gspathname[stream] }}'
+ gs-pathname: '{gs-pathname}'
properties:
- logrotate-default
triggers:
- - 'apex-{{ stream }}'
+ - 'apex-{stream}'
builders:
- multijob:
name: build
condition: SUCCESSFUL
projects:
- - name: 'apex-build-{{ stream }}'
+ - name: 'apex-build-{stream}'
current-parameters: false
predefined-parameters: |
GERRIT_BRANCH=$GERRIT_BRANCH
name: 'Verify and upload ISO'
condition: SUCCESSFUL
projects:
- - name: 'apex-verify-iso-{{ stream }}'
+ - name: 'apex-verify-iso-{stream}'
current-parameters: false
predefined-parameters: |
- BUILD_DIRECTORY=$WORKSPACE/../apex-build-{{ stream }}/.build
+ BUILD_DIRECTORY=$WORKSPACE/../apex-build-{stream}/.build
GERRIT_BRANCH=$GERRIT_BRANCH
GERRIT_REFSPEC=
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
kill-phase-on: FAILURE
abort-all-job: true
git-revision: true
- - multijob:
- name: Baremetal Deploy and Test Phase
- condition: SUCCESSFUL
- projects:
-{% for scenario in scenarios[stream] %}
- - name: 'apex-{{ scenario }}-baremetal-{{ stream }}'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
-{% endfor %}
-{% endfor %}
+ - apex-builder-{stream}
# snapshot create
- job-template:
########################
# builder macros
########################
+{% for stream in scenarios %}
+# {{ stream }} Builder
+- builder:
+ name: apex-builder-{{ stream }}
+ builders:
+ - multijob:
+ name: Baremetal Deploy and Test Phase
+ condition: SUCCESSFUL
+ projects:
+{% for scenario in scenarios[stream] %}
+ - name: 'apex-{{ scenario }}-baremetal-{{ stream }}'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+{% endfor %}
+{% endfor %}
+
- builder:
name: 'apex-unit-test'
builders:
########################
- trigger:
name: 'apex-master'
+ triggers:
+ - timed: '0 3 1 1 7'
+- trigger:
+ name: 'apex-euphrates'
triggers:
- timed: '0 12 * * *'
- trigger:
- 'os-odl-sfc-ha'
- 'os-odl-fdio-dvr-noha'
- 'os-odl-fdio-dvr-ha'
+euphrates:
+ - 'os-nosdn-nofeature-noha'
+ - 'os-nosdn-nofeature-ha'
+ - 'os-odl-nofeature-ha'
+ - 'os-odl-nofeature-noha'
+ - 'os-odl-bgpvpn-ha'
+ - 'os-ovn-nofeature-noha'
+ - 'os-nosdn-fdio-noha'
+ - 'os-nosdn-fdio-ha'
+ - 'os-odl-fdio-noha'
+ - 'os-odl-fdio-ha'
+ - 'os-nosdn-bar-ha'
+ - 'os-nosdn-bar-noha'
+ - 'os-nosdn-nofeature-ha-ipv6'
+ - 'os-nosdn-ovs_dpdk-noha'
+ - 'os-nosdn-ovs_dpdk-ha'
+ - 'os-nosdn-kvm_ovs_dpdk-noha'
+ - 'os-nosdn-kvm_ovs_dpdk-ha'
+ - 'os-odl-sfc-noha'
+ - 'os-odl-sfc-ha'
+ - 'os-odl-fdio-dvr-noha'
+ - 'os-odl-fdio-dvr-ha'
danube:
- 'os-nosdn-nofeature-noha'
- 'os-nosdn-nofeature-ha'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
gs-packagepath: '/{suite}'
# docker tag used for version control
docker-tag: 'latest'
- danube: &danube
- stream: danube
+ euphrates: &euphrates
+ stream: euphrates
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
gs-packagepath: '/{stream}/{suite}'
slave-label: compass-baremetal-branch
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- virtual:
slave-label: compass-virtual-branch
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
# -------------------------------
# None-CI PODs
# slave-label: '{pod}'
# installer: joid
# auto-trigger-name: 'daily-trigger-disabled'
- # <<: *danube
+ # <<: *euphrates
# - orange-pod2:
# slave-label: '{pod}'
# installer: joid
- timeout:
timeout: 180
abort: true
+ - fix-workspace-permissions
triggers:
- '{auto-trigger-name}'
# This is used for different test suite dependent packages storage
gs-packagepath: '/{suite}'
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
gs-packagepath: '/{stream}/{suite}'
deactivate
+ sudo rm -rf ${RELENG_REPO}/modules/venv
+ sudo rm -rf ${RELENG_REPO}/modules/opnfv.egg-info
+
set -e
cd ${WORKSPACE}
- master:
branch: '{stream}'
disabled: false
+ - euphrates:
+ branch: 'stable/{stream}'
+ disabled: false
- job-template:
name: 'calipso-verify-{stream}'
ppa-pathname: '/{stream}'
disabled: false
openstack-version: ocata
+ euphrates: &euphrates
+ stream: euphrates
+ branch: 'stable/{stream}'
+ disabled: true
+ gs-pathname: '/{stream}'
+ ppa-pathname: '/{stream}'
+ openstack-version: ocata
danube: &danube
stream: danube
branch: 'stable/{stream}'
- baremetal:
slave-label: compass-baremetal-branch
os-version: 'xenial'
- <<: *danube
+ <<: *euphrates
- virtual:
slave-label: compass-virtual-branch
os-version: 'xenial'
- <<: *danube
+ <<: *euphrates
#--------------------------------
# master
#--------------------------------
slave-label: 'intel-pod8'
os-version: 'centos7'
<<: *master
+#--------------------------------
+# danube for dovetail
+#--------------------------------
+ - huawei-pod7:
+ slave-label: 'huawei-pod7'
+ os-version: 'xenial'
+ <<: *danube
scenario:
- 'os-nosdn-nofeature-ha':
!include-raw-escape: ./compass-deploy.sh
- conditional-step:
condition-kind: regex-match
- regex: danube
+ regex: (danube|euphrates)
label: '{stream}'
steps:
- shell:
- shell:
!include-raw-escape: ./compass-deploy.sh
-
########################
# parameter macros
########################
triggers:
- timed: ''
+#---------------------------
+# ha-huawei-pod7-danube
+#---------------------------
+- trigger:
+ name: 'compass-os-nosdn-nofeature-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: '0 19 * * *'
+- trigger:
+ name: 'compass-os-nosdn-openo-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-odl_l2-nofeature-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: '0 21 * * *'
+- trigger:
+ name: 'compass-os-odl_l3-nofeature-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: '0 15 * * *'
+- trigger:
+ name: 'compass-os-onos-nofeature-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-ocl-nofeature-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-onos-sfc-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-odl_l2-moon-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-nosdn-kvm-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-nosdn-dpdk-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-odl-sfc-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-k8-nosdn-nofeature-ha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+
+#-----------------------------
+# noha-huawei-pod7-danube
+#-----------------------------
+- trigger:
+ name: 'compass-os-nosdn-nofeature-noha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-odl_l3-nofeature-noha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-odl_l2-moon-noha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-nosdn-kvm-noha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-odl-sfc-noha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'compass-os-nosdn-dpdk-noha-huawei-pod7-danube-trigger'
+ triggers:
+ - timed: ''
#--------------------
# ha-baremetal-master
#--------------------
- timed: ''
#--------------------
-# ha-baremetal-danube
+# ha-baremetal-euphrates
#--------------------
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-baremetal-euphrates-trigger'
triggers:
- - timed: '0 9 * * *'
+ - timed: '' #'0 9 * * *'
- trigger:
- name: 'compass-os-nosdn-openo-ha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-openo-ha-baremetal-euphrates-trigger'
triggers:
- - timed: '0 13 * * *'
+ - timed: '' #'0 13 * * *'
- trigger:
- name: 'compass-os-odl_l2-nofeature-ha-baremetal-danube-trigger'
+ name: 'compass-os-odl_l2-nofeature-ha-baremetal-euphrates-trigger'
triggers:
- - timed: '0 17 * * *'
+ - timed: '' #'0 17 * * *'
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-baremetal-danube-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-baremetal-euphrates-trigger'
triggers:
- - timed: '0 21 * * *'
+ - timed: '' #'0 21 * * *'
- trigger:
- name: 'compass-os-onos-nofeature-ha-baremetal-danube-trigger'
+ name: 'compass-os-onos-nofeature-ha-baremetal-euphrates-trigger'
triggers:
- - timed: '0 1 * * *'
+ - timed: '' #'0 1 * * *'
- trigger:
- name: 'compass-os-ocl-nofeature-ha-baremetal-danube-trigger'
+ name: 'compass-os-ocl-nofeature-ha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-sfc-ha-baremetal-danube-trigger'
+ name: 'compass-os-onos-sfc-ha-baremetal-euphrates-trigger'
triggers:
- - timed: '0 5 * * *'
+ - timed: '' #'0 5 * * *'
- trigger:
- name: 'compass-os-odl_l2-moon-ha-baremetal-danube-trigger'
+ name: 'compass-os-odl_l2-moon-ha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-kvm-ha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-kvm-ha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-dpdk-ha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-k8-nosdn-nofeature-ha-baremetal-danube-trigger'
+ name: 'compass-k8-nosdn-nofeature-ha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl-sfc-ha-baremetal-danube-trigger'
+ name: 'compass-os-odl-sfc-ha-baremetal-euphrates-trigger'
triggers:
- timed: ''
#----------------------
-# noha-baremetal-danube
+# noha-baremetal-euphrates
#----------------------
- trigger:
- name: 'compass-os-nosdn-kvm-noha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-kvm-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-nofeature-noha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-nofeature-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l3-nofeature-noha-baremetal-danube-trigger'
+ name: 'compass-os-odl_l3-nofeature-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-moon-noha-baremetal-danube-trigger'
+ name: 'compass-os-odl_l2-moon-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl-sfc-noha-baremetal-danube-trigger'
+ name: 'compass-os-odl-sfc-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-baremetal-danube-trigger'
+ name: 'compass-os-nosdn-dpdk-noha-baremetal-euphrates-trigger'
triggers:
- timed: ''
- trigger:
name: 'compass-k8-nosdn-nofeature-ha-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: '0 12 * * *'
- trigger:
name: 'compass-os-odl-sfc-ha-virtual-master-trigger'
triggers:
- timed: '0 11 * * *'
#------------------
-# ha-virtual-danube
+# ha-virtual-euphrates
#------------------
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 21 * * *'
+ - timed: '' #'0 21 * * *'
- trigger:
- name: 'compass-os-nosdn-openo-ha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-openo-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 22 * * *'
+ - timed: '' #'0 22 * * *'
- trigger:
- name: 'compass-os-odl_l2-nofeature-ha-virtual-danube-trigger'
+ name: 'compass-os-odl_l2-nofeature-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 20 * * *'
+ - timed: '' #'0 20 * * *'
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-virtual-danube-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 19 * * *'
+ - timed: '' #'0 19 * * *'
- trigger:
- name: 'compass-os-onos-nofeature-ha-virtual-danube-trigger'
+ name: 'compass-os-onos-nofeature-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 18 * * *'
+ - timed: '' #'0 18 * * *'
- trigger:
- name: 'compass-os-ocl-nofeature-ha-virtual-danube-trigger'
+ name: 'compass-os-ocl-nofeature-ha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-sfc-ha-virtual-danube-trigger'
+ name: 'compass-os-onos-sfc-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 15 * * *'
+ - timed: '' #'0 15 * * *'
- trigger:
- name: 'compass-os-odl_l2-moon-ha-virtual-danube-trigger'
+ name: 'compass-os-odl_l2-moon-ha-virtual-euphrates-trigger'
triggers:
- - timed: '0 14 * * *'
+ - timed: '' #'0 14 * * *'
- trigger:
- name: 'compass-os-nosdn-kvm-ha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-kvm-ha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-ha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-dpdk-ha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl-sfc-ha-virtual-danube-trigger'
+ name: 'compass-os-odl-sfc-ha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-k8-nosdn-nofeature-ha-virtual-danube-trigger'
+ name: 'compass-k8-nosdn-nofeature-ha-virtual-euphrates-trigger'
triggers:
- timed: ''
#--------------------
-# noha-virtual-danube
+# noha-virtual-euphrates
#--------------------
- trigger:
- name: 'compass-os-nosdn-kvm-noha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-kvm-noha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-nofeature-noha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-nofeature-noha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l3-nofeature-noha-virtual-danube-trigger'
+ name: 'compass-os-odl_l3-nofeature-noha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-moon-noha-virtual-danube-trigger'
+ name: 'compass-os-odl_l2-moon-noha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl-sfc-noha-virtual-danube-trigger'
+ name: 'compass-os-odl-sfc-noha-virtual-euphrates-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-dpdk-noha-virtual-danube-trigger'
+ name: 'compass-os-nosdn-dpdk-noha-virtual-euphrates-trigger'
triggers:
- timed: ''
branch: '{stream}'
disabled: false
gs-pathname: ''
+ euphrates: &euphrates
+ stream: euphrates
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+
#--------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
#--------------------------------
name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
triggers:
- timed: '0 12 * * *'
+
+#-----------------------------------------------
+# Triggers for job running on daisy-baremetal against euphrates branch
+#-----------------------------------------------
+# Basic HA Scenarios
+- trigger:
+ name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger'
+ triggers:
+ - timed: '0 0 * * *'
+# ODL Scenarios
+- trigger:
+ name: 'daisy-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
+ triggers:
+ - timed: '0 20 * * *'
+#-----------------------------------------------
+# Triggers for job running on daisy-virtual against euphrates branch
+#-----------------------------------------------
+# Basic HA Scenarios
+- trigger:
+ name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger'
+ triggers:
+ - timed: '0 0 * * *'
+# ODL Scenarios
+- trigger:
+ name: 'daisy-os-odl-nofeature-ha-virtual-daily-euphrates-trigger'
+ triggers:
+ - timed: '0 20 * * *'
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - euphrates:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
phase:
- 'build':
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: true
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - '{alias}-merge-(master|danube)'
+ - '{alias}-merge-(master|euphrates)'
block-level: 'NODE'
scm:
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
pattern: 'code/**'
- compare-type: ANT
pattern: 'deploy/**'
+ - compare-type: ANT
+ pattern: 'tests/**'
disable-strict-forbidden-file-verification: 'true'
forbidden-file-paths:
- compare-type: ANT
branch-pattern: '**/{branch}'
file-paths:
- compare-type: ANT
- pattern: 'tests/**'
+ pattern: 'doctor_tests/**'
builders:
- shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh"
- '{auto-trigger-name}':
project: '{project}'
branch: '{branch}'
- files: 'tests/**'
+ files: 'doctor_tests/**'
builders:
- shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh"
- '{auto-trigger-name}':
project: '{project}'
branch: '{branch}'
- files: 'tests/**'
+ files: 'doctor_tests/**'
builders:
- 'clean-workspace-log'
functest_log="$HOME/opnfv/functest/results/{stream}/$FUNCTEST_SUITE_NAME.log"
# NOTE: checking the test result, as the previous job could return
# 0 regardless the result of doctor test scenario.
- grep -e ' OK$' $functest_log || exit 1
+ grep -e 'doctor test successfully' $functest_log || exit 1
publishers:
- archive:
- artifacts: 'tests/*.log'
+ artifacts: 'doctor_tests/*.log'
- archive:
artifacts: 'functest_results/$FUNCTEST_SUITE_NAME.log'
- email-jenkins-admins-on-failure
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-zte-pod3-daily-master-trigger'
triggers:
- - timed: '0 10 * * *'
+ - timed: '' # '0 10 * * *'
- trigger:
name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-master-trigger'
triggers:
if [ ${FUNCTEST_SUITE_NAME} == 'healthcheck' ]; then
tiers=(healthcheck)
else
- tiers=(healthcheck smoke features vnf)
+ if [ ${DEPLOY_TYPE} == 'baremetal' ]; then
+ tiers=(healthcheck smoke features vnf parser)
+ else
+ tiers=(healthcheck smoke features)
+ fi
fi
cmd_opt='prepare_env start && run_tests -r -t all'
FUNCTEST_IMAGE=opnfv/functest-${tier}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
- cmd="docker run ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
+ cmd="docker run --privileged=true ${envs} ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
echo "Running Functest tier '${tier}'. CMD: ${cmd}"
eval ${cmd}
done
name: functest-daily-builder
builders:
- 'functest-cleanup'
- - 'set-functest-env-alpine'
- 'functest-daily'
- 'functest-store-results'
name: functest-daily
builders:
- shell:
- !include-raw: ./functest-alpine.sh
+ !include-raw:
+ - ./functest-env-presetup.sh
+ - ../../utils/fetch_os_creds.sh
+ - ./functest-alpine.sh
- builder:
name: functest-arm-daily
default-slaves:
- lf-pod1
+- parameter:
+ name: 'apex-baremetal-euphrates-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'apex-baremetal-master'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: SSH_KEY
+ default: /root/.ssh/id_rsa
+ description: 'SSH key to use for Apex'
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - lf-pod1
+ default-slaves:
+ - lf-pod1
+
- parameter:
name: 'apex-baremetal-danube-defaults'
parameters:
- lf-virtual2
- lf-virtual3
+- parameter:
+ name: 'apex-virtual-euphrates-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'apex-virtual-master'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: SSH_KEY
+ default: /root/.ssh/id_rsa
+ description: 'SSH key to use for Apex'
+ - node:
+ name: SLAVE_NAME
+ description: 'Slave name on Jenkins'
+ allowed-slaves:
+ - lf-virtual2
+ - lf-virtual3
+ default-slaves:
+ - lf-virtual2
+ - lf-virtual3
+
- parameter:
name: 'apex-virtual-danube-defaults'
parameters:
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - euphrates:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
jobs:
- 'ovn4nfv-build-{stream}'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
dockerfile: "Dockerfile.aarch64"
dockerdir: "docker"
+ docker_repo_name: "opnfv/{project}_aarch64"
arch_tag: ""
dockerrepo:
description: "To enable/disable pushing the image to Dockerhub."
- string:
name: DOCKER_REPO_NAME
- default: "opnfv/{project}_aarch64"
+ default: "{docker_repo_name}"
description: "Dockerhub repo to be pushed to."
- string:
name: RELEASE_VERSION
description: "Release version, e.g. 1.0, 2.0, 3.0"
- string:
name: DOCKER_DIR
- default: "docker"
+ default: "{dockerdir}"
description: "Directory containing files needed by the Dockerfile"
- string:
name: DOCKERFILE
fi
ARCH_BUILD_ARG=""
+ARCH_TAG=${ARCH_TAG:-}
if [[ -n "${ARCH_TAG}" ]]; then
DOCKER_TAG=${ARCH_TAG}-${DOCKER_TAG}
ARCH_BUILD_ARG="--build-arg ARCH=${ARCH_TAG}"
--- /dev/null
+---
+###################################################
+# All the jobs except verify have been removed!
+# They will only be enabled on request by projects!
+###################################################
+- project:
+ name: stor4nfv
+
+ project: '{name}'
+
+ jobs:
+ - 'stor4nfv-verify-{stream}'
+
+ stream:
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - danube:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+
+- job-template:
+ name: 'stor4nfv-verify-{stream}'
+
+ disabled: '{obj:disabled}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'opnfv-build-ubuntu-defaults'
+
+ scm:
+ - 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}'
+ disable-strict-forbidden-file-verification: 'true'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**|.gitignore'
+
+ builders:
+ - shell: |
+ echo "Nothing to verify!"
#--------------------------------
distro:
- 'xenial':
- disabled: false
+ disabled: true
dib-os-release: 'xenial'
dib-os-element: 'ubuntu-minimal'
dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
extra-dib-elements: 'openssh-server'
- 'centos7':
- disabled: false
+ disabled: true
dib-os-release: '7'
dib-os-element: 'centos-minimal'
dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
extra-dib-elements: 'openssh-server'
- 'suse':
- disabled: false
+ disabled: true
dib-os-release: '42.3'
dib-os-element: 'opensuse-minimal'
dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
branch-pattern: '**/{branch}'
disable-strict-forbidden-file-verification: 'true'
file-paths:
+ - compare-type: ANT
+ pattern: 'bifrost/**'
- compare-type: ANT
pattern: 'xci/**'
forbidden-file-paths:
- - compare-type: ANT
- pattern: 'bifrost/**'
- compare-type: ANT
pattern: 'prototypes/**'
- compare-type: ANT
- label:
name: SLAVE_LABEL
default: 'xci-virtual-{distro}'
+ - string:
+ name: CLEAN_DIB_IMAGES
+ default: 'true'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
predefined-parameters: |
DISTRO={distro}
DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+ CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
predefined-parameters: |
DISTRO={distro}
DEPLOY_SCENARIO=os-nosdn-nofeature-noha
+ CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
FUNCTEST_SUITE_NAME=healthcheck
node-parameters: true
kill-phase-on: NEVER
- string:
name: XCI_FLAVOR
default: 'mini'
+ - string:
+ name: CLEAN_DIB_IMAGES
+ default: 'true'
- string:
name: OPNFV_RELENG_DEV_PATH
default: $WORKSPACE/
#!/bin/bash
-[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
+[[ ${CI_DEBUG} == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
# Remove containers along with image opnfv/yardstick*:<none>
-dangling_images=($(docker images -f "dangling=true" | grep opnfv/yardstick | awk '{print $3}'))
-if [[ -n ${dangling_images} ]]; then
+dangling_images=($(docker images -f "dangling=true" | awk '/opnfv[/]yardstick/ {print $3}'))
+if [[ ${#dangling_images[@]} -eq 0 ]] ; then
echo "Removing opnfv/yardstick:<none> images and their containers..."
for image_id in "${dangling_images[@]}"; do
echo " Removing image_id: $image_id and its containers"
- containers=$(docker ps -a | grep $image_id | awk '{print $1}')
+ containers=$(docker ps -a | awk "/${image_id}/ {print \$1}")
if [[ -n "$containers" ]];then
- docker rm -f $containers >${redirect}
+ docker rm -f "${containers}" >${redirect}
fi
- docker rmi $image_id >${redirect}
+ docker rmi "${image_id}" >${redirect}
done
fi
echo "Cleaning up docker containers/images..."
# Remove previous running containers if exist
-if [[ ! -z $(docker ps -a | grep opnfv/yardstick) ]]; then
+if docker ps -a | grep -q opnfv/yardstick; then
echo "Removing existing opnfv/yardstick containers..."
- docker ps -a | grep opnfv/yardstick | awk '{print $1}' | xargs docker rm -f >$redirect
+ docker ps -a | awk "/${image_id}/ {print \$1}" | xargs docker rm -f >${redirect}
fi
# Remove existing images if exist
-if [[ ! -z $(docker images | grep opnfv/yardstick) ]]; then
+if docker images | grep -q opnfv/yardstick; then
echo "Docker images to remove:"
docker images | head -1 && docker images | grep opnfv/yardstick
- image_tags=($(docker images | grep opnfv/yardstick | awk '{print $2}'))
- for tag in "${image_tags[@]}"; do
- echo "Removing docker image opnfv/yardstick:$tag..."
- docker rmi opnfv/yardstick:$tag >$redirect
+ image_ids=($(docker images | awk '/opnfv[/]yardstick/ {print $3}'))
+ for id in "${image_ids[@]}"; do
+ echo "Removing docker image id $id..."
+ docker rmi "${id}" >${redirect}
done
fi
branch: '{stream}'
gs-pathname: ''
docker-tag: 'latest'
- danube: &danube
- stream: danube
+ euphrates: &euphrates
+ stream: euphrates
branch: 'stable/{stream}'
gs-pathname: '{stream}'
docker-tag: 'stable'
auto-trigger-name: 'daily-trigger-disabled'
<<: *master
- virtual:
- slave-label: apex-virtual-danube
+ slave-label: apex-virtual-euphrates
installer: apex
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- baremetal:
- slave-label: apex-baremetal-danube
+ slave-label: apex-baremetal-euphrates
installer: apex
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
# fuel CI PODs
- baremetal:
slave-label: fuel-baremetal
slave-label: fuel-baremetal
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- virtual:
slave-label: fuel-virtual
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
# armband CI PODs
- armband-baremetal:
slave-label: armband-baremetal
slave-label: armband-baremetal
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- armband-virtual:
slave-label: armband-virtual
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
# joid CI PODs
- baremetal:
slave-label: joid-baremetal
slave-label: joid-baremetal
installer: joid
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- virtual:
slave-label: joid-virtual
installer: joid
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
# compass CI PODs
- baremetal:
slave-label: compass-baremetal
slave-label: compass-baremetal
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- virtual:
slave-label: compass-virtual
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
#--------------------------------
# None-CI PODs
#--------------------------------
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- zte-pod2:
slave-label: '{pod}'
installer: fuel
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *danube
+ <<: *euphrates
- orange-pod2:
slave-label: '{pod}'
installer: joid
default: '-i 104.197.68.199:8086'
description: 'Arguments to use in order to choose the backend DB'
- parameter:
- name: 'yardstick-params-apex-virtual-danube'
+ name: 'yardstick-params-apex-virtual-euphrates'
parameters:
- string:
name: YARDSTICK_DB_BACKEND
default: '-i 104.197.68.199:8086'
description: 'Arguments to use in order to choose the backend DB'
- parameter:
- name: 'yardstick-params-apex-baremetal-danube'
+ name: 'yardstick-params-apex-baremetal-euphrates'
parameters:
- string:
name: YARDSTICK_DB_BACKEND
branch: '{stream}'
gs-pathname: ''
disabled: false
- - danube:
+ - euphrates:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
<a href="#" ng-click="showPod = !showPod">{{pod.name}}</a>
<div class="show-pod" ng-class="{ 'hidden': ! showPod }" style="margin-left:24px;">
<p>
+ owner: {{pod.owner}}<br>
role: {{pod.role}}<br>
mode: {{pod.mode}}<br>
create_date: {{pod.creation_date}}<br>
import re
from tornado import gen
-from tornado import web
+from opnfv_testapi.common import constants
from opnfv_testapi.common import message
from opnfv_testapi.common import raises
from opnfv_testapi.db import api as dbapi
-def authenticate(method):
- @web.asynchronous
- @gen.coroutine
+def is_authorized(method):
@functools.wraps(method)
def wrapper(self, *args, **kwargs):
- if self.auth:
+ if self.table in ['pods']:
+ testapi_id = self.get_secure_cookie(constants.TESTAPI_ID)
+ if not testapi_id:
+ raises.Unauthorized(message.not_login())
+ user_info = yield dbapi.db_find_one('users', {'user': testapi_id})
+ if not user_info:
+ raises.Unauthorized(message.not_lfid())
+ kwargs['owner'] = testapi_id
+ ret = yield gen.coroutine(method)(self, *args, **kwargs)
+ raise gen.Return(ret)
+ return wrapper
+
+
+def valid_token(method):
+ @functools.wraps(method)
+ def wrapper(self, *args, **kwargs):
+ if self.auth and self.table == 'results':
try:
token = self.request.headers['X-Auth-Token']
except KeyError:
return 'Invalid Token'
+def not_login():
+ return 'TestAPI id is not provided'
+
+
+def not_lfid():
+ return 'Not a valid Linux Foundation Account'
+
+
def no_update():
return 'Nothing to update'
cls_data = self.table_cls.from_dict(data)
return cls_data.format_http()
- @check.authenticate
+ @web.asynchronous
+ @gen.coroutine
+ @check.is_authorized
+ @check.valid_token
@check.no_body
@check.miss_fields
@check.carriers_exist
def _get_one(self, data, query=None):
self.finish_request(self.format_data(data))
- @check.authenticate
+ @web.asynchronous
+ @gen.coroutine
@check.not_exist
def _delete(self, data, query=None):
yield dbapi.db_delete(self.table, query)
self.finish_request()
- @check.authenticate
+ @web.asynchronous
+ @gen.coroutine
@check.no_body
@check.not_exist
@check.updated_one_not_exist
update_req['_id'] = str(data._id)
self.finish_request(update_req)
- @check.authenticate
+ @web.asynchronous
+ @gen.coroutine
@check.no_body
@check.not_exist
@check.updated_one_not_exist
class Pod(models.ModelBase):
def __init__(self,
name='', mode='', details='',
- role="", _id='', create_date=''):
+ role="", _id='', create_date='', owner=''):
self.name = name
self.mode = mode
self.details = details
self.role = role
self._id = _id
self.creation_date = create_date
+ self.owner = owner
@swagger.model()
import argparse
+import pytest
def test_config_normal(mocker, config_normal):
assert CONF.api_debug is True
assert CONF.api_authenticate is False
assert CONF.ui_url == 'http://localhost:8000'
+
+
+def test_config_file_not_exist(mocker):
+ mocker.patch('os.path.exists', return_value=False)
+ with pytest.raises(Exception) as m_exc:
+ from opnfv_testapi.common import config
+ config.Config()
+ assert 'not found' in str(m_exc.value)
import functools
import httplib
+from concurrent.futures import ThreadPoolExecutor
+import mock
+
+
+O_get_secure_cookie = (
+ 'opnfv_testapi.resources.handlers.GenericApiHandler.get_secure_cookie')
+
+
+def thread_execute(method, *args, **kwargs):
+ with ThreadPoolExecutor(max_workers=2) as executor:
+ result = executor.submit(method, *args, **kwargs)
+ return result
+
+
+def mock_invalid_lfid():
+ def _mock_invalid_lfid(xstep):
+ def wrap(self, *args, **kwargs):
+ with mock.patch(O_get_secure_cookie) as m_cookie:
+ m_cookie.return_value = 'InvalidUser'
+ return xstep(self, *args, **kwargs)
+ return wrap
+ return _mock_invalid_lfid
+
+
+def mock_valid_lfid():
+ def _mock_valid_lfid(xstep):
+ def wrap(self, *args, **kwargs):
+ with mock.patch(O_get_secure_cookie) as m_cookie:
+ m_cookie.return_value = 'ValidUser'
+ return xstep(self, *args, **kwargs)
+ return wrap
+ return _mock_valid_lfid
+
def upload(excepted_status, excepted_response):
def _upload(create_request):
results = MemDb('results')
scenarios = MemDb('scenarios')
tokens = MemDb('tokens')
+users = MemDb('users')
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+from datetime import datetime
import json
from os import path
+from bson.objectid import ObjectId
import mock
from tornado import testing
from opnfv_testapi.resources import models
+from opnfv_testapi.resources import pod_models
from opnfv_testapi.tests.unit import fake_pymongo
self.get_res = None
self.list_res = None
self.update_res = None
+ self.pod_d = pod_models.Pod(name='zte-pod1',
+ mode='virtual',
+ details='zte pod 1',
+ role='community-ci',
+ _id=str(ObjectId()),
+ owner='ValidUser',
+ create_date=str(datetime.now()))
+ self.pod_e = pod_models.Pod(name='zte-pod2',
+ mode='metal',
+ details='zte pod 2',
+ role='production-ci',
+ _id=str(ObjectId()),
+ owner='ValidUser',
+ create_date=str(datetime.now()))
self.req_d = None
self.req_e = None
self.addCleanup(self._clear)
super(TestBase, self).setUp()
+ fake_pymongo.users.insert({"user": "ValidUser",
+ 'email': 'validuser@lf.com',
+ 'fullname': 'Valid User',
+ 'groups': [
+ 'opnfv-testapi-users',
+ 'opnfv-gerrit-functest-submitters',
+ 'opnfv-gerrit-qtip-contributors']
+ })
def tearDown(self):
self.db_patcher.stop()
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 fake_pymongo
from opnfv_testapi.tests.unit.resources import test_base as base
class TestPodBase(base.TestBase):
def setUp(self):
super(TestPodBase, self).setUp()
- self.req_d = pod_models.PodCreateRequest('zte-1', 'virtual',
- 'zte pod 1', 'ci-pod')
- self.req_e = pod_models.PodCreateRequest('zte-2', 'metal', 'zte pod 2')
- self.req_f = pod_models.PodCreateRequest('Zte-1', 'virtual',
- 'zte pod 1', 'ci-pod')
self.get_res = pod_models.Pod
self.list_res = pod_models.Pods
self.basePath = '/api/v1/pods'
+ self.req_d = pod_models.PodCreateRequest(name=self.pod_d.name,
+ mode=self.pod_d.mode,
+ details=self.pod_d.details,
+ role=self.pod_d.role)
+ self.req_e = pod_models.PodCreateRequest(name=self.pod_e.name,
+ mode=self.pod_e.mode,
+ details=self.pod_e.details,
+ role=self.pod_e.role)
def assert_get_body(self, pod, req=None):
if not req:
req = self.req_d
+ self.assertEqual(pod.owner, 'ValidUser')
self.assertEqual(pod.name, req.name)
self.assertEqual(pod.mode, req.mode)
self.assertEqual(pod.details, req.details)
class TestPodCreate(TestPodBase):
+ @executor.create(httplib.BAD_REQUEST, message.not_login())
+ def test_notlogin(self):
+ return self.req_d
+
+ @executor.mock_invalid_lfid()
+ @executor.create(httplib.BAD_REQUEST, message.not_lfid())
+ def test_invalidLfid(self):
+ return self.req_d
+
+ @executor.mock_valid_lfid()
@executor.create(httplib.BAD_REQUEST, message.no_body())
def test_withoutBody(self):
return None
+ @executor.mock_valid_lfid()
@executor.create(httplib.BAD_REQUEST, message.missing('name'))
def test_emptyName(self):
return pod_models.PodCreateRequest('')
+ @executor.mock_valid_lfid()
@executor.create(httplib.BAD_REQUEST, message.missing('name'))
def test_noneName(self):
return pod_models.PodCreateRequest(None)
+ @executor.mock_valid_lfid()
@executor.create(httplib.OK, 'assert_create_body')
def test_success(self):
return self.req_d
+ @executor.mock_valid_lfid()
@executor.create(httplib.FORBIDDEN, message.exist_base)
def test_alreadyExist(self):
- self.create_d()
+ fake_pymongo.pods.insert(self.pod_d.format())
return self.req_d
+ @executor.mock_valid_lfid()
@executor.create(httplib.FORBIDDEN, message.exist_base)
def test_alreadyExistCaseInsensitive(self):
- self.create(self.req_f)
+ fake_pymongo.pods.insert(self.pod_d.format())
+ self.req_d.name = self.req_d.name.upper()
return self.req_d
class TestPodGet(TestPodBase):
def setUp(self):
super(TestPodGet, self).setUp()
- self.create_d()
- self.create_e()
+ fake_pymongo.pods.insert(self.pod_d.format())
+ fake_pymongo.pods.insert(self.pod_e.format())
@executor.get(httplib.NOT_FOUND, message.not_found_base)
def test_notExist(self):
@executor.get(httplib.OK, 'assert_get_body')
def test_getOne(self):
- return self.req_d.name
+ return self.pod_d.name
@executor.get(httplib.OK, '_assert_list')
def test_list(self):
def _assert_list(self, body):
self.assertEqual(len(body.pods), 2)
for pod in body.pods:
- if self.req_d.name == pod.name:
+ if self.pod_d.name == pod.name:
self.assert_get_body(pod)
else:
- self.assert_get_body(pod, self.req_e)
+ self.assert_get_body(pod, self.pod_e)
if __name__ == '__main__':
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
import copy
+from datetime import datetime
+from datetime import timedelta
import httplib
-import unittest
-from datetime import datetime, timedelta
import json
+import unittest
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 executor
+from opnfv_testapi.tests.unit import fake_pymongo
from opnfv_testapi.tests.unit.resources import test_base as base
class TestResultBase(base.TestBase):
def setUp(self):
- self.pod = 'zte-pod1'
+ super(TestResultBase, self).setUp()
+ self.pod = self.pod_d.name
self.project = 'functest'
self.case = 'vPing'
self.installer = 'fuel'
self.stop_date = str(datetime.now() + timedelta(minutes=1))
self.update_date = str(datetime.now() + timedelta(days=1))
self.update_step = -0.05
- super(TestResultBase, self).setUp()
self.details = Details(timestart='0', duration='9s', status='OK')
self.req_d = result_models.ResultCreateRequest(
pod_name=self.pod,
self.list_res = result_models.TestResults
self.update_res = result_models.TestResult
self.basePath = '/api/v1/results'
- self.req_pod = pod_models.PodCreateRequest(
- self.pod,
- 'metal',
- 'zte pod 1')
self.req_project = project_models.ProjectCreateRequest(
self.project,
'vping test')
self.case,
'/cases/vping',
'vping-ssh test')
- self.create_help('/api/v1/pods', self.req_pod)
+ fake_pymongo.pods.insert(self.pod_d.format())
self.create_help('/api/v1/projects', self.req_project)
self.create_help('/api/v1/projects/%s/cases',
self.req_testcase,
from tornado import web
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 fake_pymongo
-from opnfv_testapi.tests.unit.resources import test_base as base
+from opnfv_testapi.tests.unit.resources import test_result
-class TestToken(base.TestBase):
+class TestTokenCreateResult(test_result.TestResultBase):
def get_app(self):
from opnfv_testapi.router import url_mappings
return web.Application(
auth=True
)
-
-class TestTokenCreateProject(TestToken):
def setUp(self):
- super(TestTokenCreateProject, self).setUp()
- self.req_d = project_models.ProjectCreateRequest('vping')
+ super(TestTokenCreateResult, self).setUp()
fake_pymongo.tokens.insert({"access_token": "12345"})
- self.basePath = '/api/v1/projects'
@executor.create(httplib.FORBIDDEN, message.invalid_token())
- def test_projectCreateTokenInvalid(self):
+ def test_resultCreateTokenInvalid(self):
self.headers['X-Auth-Token'] = '1234'
return self.req_d
@executor.create(httplib.UNAUTHORIZED, message.unauthorized())
- def test_projectCreateTokenUnauthorized(self):
+ def test_resultCreateTokenUnauthorized(self):
if 'X-Auth-Token' in self.headers:
self.headers.pop('X-Auth-Token')
return self.req_d
@executor.create(httplib.OK, '_create_success')
- def test_projectCreateTokenSuccess(self):
+ def test_resultCreateTokenSuccess(self):
self.headers['X-Auth-Token'] = '12345'
return self.req_d
self.assertIn('CreateResponse', str(type(body)))
-class TestTokenDeleteProject(TestToken):
- def setUp(self):
- super(TestTokenDeleteProject, self).setUp()
- self.req_d = project_models.ProjectCreateRequest('vping')
- fake_pymongo.tokens.insert({"access_token": "12345"})
- self.basePath = '/api/v1/projects'
- self.headers['X-Auth-Token'] = '12345'
- self.create_d()
-
- @executor.delete(httplib.FORBIDDEN, message.invalid_token())
- def test_projectDeleteTokenIvalid(self):
- self.headers['X-Auth-Token'] = '1234'
- return self.req_d.name
-
- @executor.delete(httplib.UNAUTHORIZED, message.unauthorized())
- def test_projectDeleteTokenUnauthorized(self):
- self.headers.pop('X-Auth-Token')
- return self.req_d.name
-
- @executor.delete(httplib.OK, '_delete_success')
- def test_projectDeleteTokenSuccess(self):
- return self.req_d.name
-
- def _delete_success(self, body):
- self.assertEqual('', body)
-
-
-class TestTokenUpdateProject(TestToken):
- def setUp(self):
- super(TestTokenUpdateProject, self).setUp()
- self.req_d = project_models.ProjectCreateRequest('vping')
- fake_pymongo.tokens.insert({"access_token": "12345"})
- self.basePath = '/api/v1/projects'
- self.headers['X-Auth-Token'] = '12345'
- self.create_d()
-
- @executor.update(httplib.FORBIDDEN, message.invalid_token())
- def test_projectUpdateTokenIvalid(self):
- self.headers['X-Auth-Token'] = '1234'
- req = project_models.ProjectUpdateRequest('newName', 'new description')
- return req, self.req_d.name
-
- @executor.update(httplib.UNAUTHORIZED, message.unauthorized())
- def test_projectUpdateTokenUnauthorized(self):
- self.headers.pop('X-Auth-Token')
- req = project_models.ProjectUpdateRequest('newName', 'new description')
- return req, self.req_d.name
-
- @executor.update(httplib.OK, '_update_success')
- def test_projectUpdateTokenSuccess(self):
- req = project_models.ProjectUpdateRequest('newName', 'new description')
- return req, self.req_d.name
-
- def _update_success(self, request, body):
- self.assertIn(request.name, body)
-
-
if __name__ == '__main__':
unittest.main()