#!/bin/bash
set -e
+if [ -z ${WORKSPACE} ]; then
+ echo "WORKSPACE is unset. Please do so."
+ exit 1
+fi
# wipe the WORKSPACE
/bin/rm -rf $WORKSPACE/*
-
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
+
. $WORKSPACE/sdnvpn/odl-pipeline/odl-pipeline-common.sh
pushd $LIB
./test_environment.sh --env-number $APEX_ENV_NUMBER --cloner-info $CLONER_INFO --snapshot-disks $SNAPSHOT_DISKS --vjump-hosts $VIRTUAL_JUMPHOSTS
#!/bin/bash
set -e
+if [ -z ${WORKSPACE} ]; then
+ echo "WORKSPACE is unset. Please do so."
+ exit 1
+fi
# wipe the WORKSPACE
/bin/rm -rf $WORKSPACE/*
#!/bin/bash
set -e
+
+if [ -z ${WORKSPACE} ]; then
+ echo "WORKSPACE is unset. Please do so."
+ exit 1
+fi
+# wipe the WORKSPACE
+/bin/rm -rf $WORKSPACE/*
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
. $WORKSPACE/sdnvpn/odl-pipeline/odl-pipeline-common.sh
#!/bin/bash
set -e
+if [ -z ${WORKSPACE} ]; then
+ echo "WORKSPACE is unset. Please do so."
+ exit 1
+fi
# wipe the WORKSPACE
-if [ -z ${WORKSPACE} ]; then echo "WORKSPACE is unset"; else echo "WORKSPACE is set to \"$WORKSPACE\""; fi
-WORKSPACE=${WORKSPACE:-$PWD}
/bin/rm -rf $WORKSPACE/*
-set -e
# clone opnfv sdnvpn repo
git clone https://gerrit.opnfv.org/gerrit/p/sdnvpn.git $WORKSPACE/sdnvpn
. $WORKSPACE/sdnvpn/odl-pipeline/odl-pipeline-common.sh
pushd $LIB
./post_process.sh
-popd
\ No newline at end of file
+popd
stream: master
branch: '{stream}'
gs-pathname: ''
- colorado: &colorado
- stream: colorado
+ disabled: false
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
+ disabled: true
#--------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
#--------------------------------
# CI POD's
#--------------------------------
-# colorado
+# danube
#--------------------------------
pod:
- armband-baremetal:
slave-label: armband-baremetal
installer: fuel
- <<: *colorado
+ <<: *danube
- armband-virtual:
slave-label: armband-virtual
installer: fuel
- <<: *colorado
+ <<: *danube
#--------------------------------
# master
#--------------------------------
#--------------------------------
# NONE-CI POD's
#--------------------------------
-# colorado
+# danube
#--------------------------------
- arm-pod2:
slave-label: arm-pod2
installer: fuel
- <<: *colorado
+ <<: *danube
- arm-pod3:
slave-label: arm-pod3
installer: fuel
- <<: *colorado
+ <<: *danube
#--------------------------------
# master
#--------------------------------
- job-template:
name: '{installer}-{scenario}-{pod}-daily-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: false
properties:
- trigger:
name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 0 * * 1'
+ - timed: '0 8 * * 1,3,5,7'
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 0 * * 2'
+ - timed: '0 16 * * 2,7'
- trigger:
name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 0 * * 3'
+ - timed: '0 16 * * 1,4,6'
- trigger:
name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 0 * * 4'
+ - timed: '0 8 * * 2,4,6'
- trigger:
name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 0 * * 5'
+ - timed: '0 16 * * 3,5'
- trigger:
name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-master-trigger'
triggers:
- timed: '0 0 * * 7'
#----------------------------------------------------------------------
-# Enea Armband CI Baremetal Triggers running against colorado branch
+# Enea Armband CI Baremetal Triggers running against danube branch
#----------------------------------------------------------------------
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-danube-trigger'
triggers:
- - timed: '0 8 * * 1,3,5,7'
+ - timed: '0 0 * * 1'
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-danube-trigger'
triggers:
- - timed: '0 16 * * 2,7'
+ - timed: '0 0 * * 2'
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-danube-trigger'
triggers:
- - timed: '0 8 * * 2,4,6'
+ - timed: '0 0 * * 4'
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-danube-trigger'
triggers:
- - timed: '0 16 * * 1,4,6'
+ - timed: '0 0 * * 3'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-danube-trigger'
triggers:
- - timed: '0 16 * * 3,5'
+ - timed: '0 0 * * 5'
- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-danube-trigger'
triggers:
- timed: ''
#---------------------------------------------------------------
triggers:
- timed: '0 2 * * 7'
#--------------------------------------------------------------------
-# Enea Armband CI Virtual Triggers running against colorado branch
+# Enea Armband CI Virtual Triggers running against danube branch
#--------------------------------------------------------------------
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-danube-trigger'
triggers:
- timed: ''
#----------------------------------------------------------
triggers:
- timed: ''
#---------------------------------------------------------------
-# Enea Armband POD 2 Triggers running against colorado branch
+# Enea Armband POD 2 Triggers running against danube branch
#---------------------------------------------------------------
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-danube-trigger'
triggers:
- timed: ''
#----------------------------------------------------------
triggers:
- timed: ''
#---------------------------------------------------------------
-# Enea Armband POD 3 Triggers running against colorado branch
+# Enea Armband POD 3 Triggers running against danube branch
#---------------------------------------------------------------
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-colorado-trigger'
+ name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-danube-trigger'
triggers:
- timed: ''
- master:
branch: '{stream}'
gs-pathname: ''
- - colorado:
+ disabled: false
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
+ disabled: true
- job-template:
name: 'armband-{installer}-build-daily-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: false
properties:
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: 'false'
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: 'false'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
- job-template:
name: 'barometer-verify-{stream}'
gs-packagepath: '/{suite}'
#docker tag used for version control
docker-tag: 'latest'
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
gs-packagepath: '/{stream}/{suite}'
slave-label: compass-baremetal
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: compass-virtual
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
#--------------------------------
# None-CI PODs
# slave-label: '{pod}'
# installer: joid
# auto-trigger-name: 'daily-trigger-disabled'
- # <<: *colorado
+ # <<: *danube
# - orange-pod2:
# slave-label: '{pod}'
# installer: joid
#This is used for different test suite dependent packages storage
gs-packagepath: '/{suite}'
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
gs-packagepath: '/{stream}/{suite}'
stream: master
branch: '{stream}'
gs-pathname: ''
-# colorado: &colorado
-# stream: colorado
-# branch: 'stable/{stream}'
-# gs-pathname: '/{stream}'
+ disabled: false
+ danube: &danube
+ stream: danube
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: true
#--------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
#--------------------------------
slave-label: compass-virtual
os-version: 'xenial'
<<: *master
-# - baremetal:
-# slave-label: compass-baremetal
-# os-version: 'trusty'
-# <<: *colorado
-# - virtual:
-# slave-label: compass-virtual
-# os-version: 'trusty'
-# <<: *colorado
+ - baremetal:
+ slave-label: compass-baremetal
+ os-version: 'trusty'
+ <<: *danube
+ - virtual:
+ slave-label: compass-virtual
+ os-version: 'trusty'
+ <<: *danube
#--------------------------------
# master
#--------------------------------
- job-template:
name: 'compass-{scenario}-{pod}-daily-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: true
properties:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-baremetal-colorado-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-nofeature-ha-baremetal-colorado-trigger'
+ name: 'compass-os-odl_l2-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-baremetal-colorado-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-nofeature-ha-baremetal-colorado-trigger'
+ name: 'compass-os-onos-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-ocl-nofeature-ha-baremetal-colorado-trigger'
+ name: 'compass-os-ocl-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-sfc-ha-baremetal-colorado-trigger'
+ name: 'compass-os-onos-sfc-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-moon-ha-baremetal-colorado-trigger'
+ name: 'compass-os-odl_l2-moon-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-kvm-ha-baremetal-colorado-trigger'
+ name: 'compass-os-nosdn-kvm-ha-baremetal-danube-trigger'
triggers:
- timed: ''
- timed: ''
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-virtual-colorado-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: '0 21 * * *'
- trigger:
- name: 'compass-os-odl_l2-nofeature-ha-virtual-colorado-trigger'
+ name: 'compass-os-odl_l2-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: '0 20 * * *'
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-virtual-colorado-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: '0 19 * * *'
- trigger:
- name: 'compass-os-onos-nofeature-ha-virtual-colorado-trigger'
+ name: 'compass-os-onos-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: '0 18 * * *'
- trigger:
- name: 'compass-os-ocl-nofeature-ha-virtual-colorado-trigger'
+ name: 'compass-os-ocl-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-sfc-ha-virtual-colorado-trigger'
+ name: 'compass-os-onos-sfc-ha-virtual-danube-trigger'
triggers:
- timed: '0 15 * * *'
- trigger:
- name: 'compass-os-odl_l2-moon-ha-virtual-colorado-trigger'
+ name: 'compass-os-odl_l2-moon-ha-virtual-danube-trigger'
triggers:
- timed: '0 14 * * *'
- trigger:
- name: 'compass-os-nosdn-kvm-ha-virtual-colorado-trigger'
+ name: 'compass-os-nosdn-kvm-ha-virtual-danube-trigger'
triggers:
- timed: ''
- master:
branch: '{stream}'
gs-pathname: ''
- - colorado:
+ disabled: false
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
+ disabled: true
jobs:
- 'compass-build-iso-{stream}'
- job-template:
name: 'compass-build-iso-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: true
properties:
description: "build ppa(using docker) in huawei lab"
+ disabled: '{obj:disabled}'
+
node: huawei-build
concurrent: true
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
distro:
- 'xenial':
node-parameters: true
kill-phase-on: FAILURE
abort-all-job: true
-# - multijob:
-# name: smoke-test
-# condition: SUCCESSFUL
-# projects:
-# - name: 'functest-compass-virtual-suite-{stream}'
-# current-parameters: true
-# predefined-parameters:
-# FUNCTEST_SUITE_NAME=healthcheck
-# node-parameters: true
-# kill-phase-on: NEVER
-# abort-all-job: true
+ - multijob:
+ name: smoke-test
+ condition: SUCCESSFUL
+ projects:
+ - name: 'functest-compass-virtual-suite-{stream}'
+ current-parameters: true
+ predefined-parameters:
+ FUNCTEST_SUITE_NAME=healthcheck
+ node-parameters: true
+ kill-phase-on: NEVER
+ abort-all-job: true
+ - name: 'functest-compass-virtual-suite-{stream}'
+ current-parameters: true
+ predefined-parameters:
+ FUNCTEST_SUITE_NAME=vping_ssh
+ node-parameters: true
+ kill-phase-on: NEVER
+ abort-all-job: true
- job-template:
name: 'compass-verify-{phase}-{distro}-{stream}'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
gs-pathname: ''
docker-tag: 'master'
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
docker-tag: 'stable'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
docker-tag: 'latest'
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
docker-tag: 'stable'
- baremetal:
slave-label: fuel-baremetal
installer: fuel
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: fuel-virtual
installer: fuel
- <<: *colorado
+ <<: *danube
# joid CI PODs
- baremetal:
slave-label: joid-baremetal
- baremetal:
slave-label: joid-baremetal
installer: joid
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: joid-virtual
installer: joid
- <<: *colorado
+ <<: *danube
# compass CI PODs
- baremetal:
slave-label: compass-baremetal
- baremetal:
slave-label: compass-baremetal
installer: compass
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: compass-virtual
installer: compass
- <<: *colorado
+ <<: *danube
# apex CI PODs
- apex-verify-master:
slave-label: '{pod}'
slave-label: '{pod}'
installer: apex
<<: *master
- - apex-verify-colorado:
- slave-label: '{pod}'
- installer: apex
- <<: *colorado
- - apex-daily-colorado:
- slave-label: '{pod}'
- installer: apex
- <<: *colorado
+# - apex-verify-danube:
+# slave-label: '{pod}'
+# installer: apex
+# <<: *danube
+# - apex-daily-danube:
+# slave-label: '{pod}'
+# installer: apex
+# <<: *danube
# armband CI PODs
- armband-baremetal:
slave-label: armband-baremetal
- armband-baremetal:
slave-label: armband-baremetal
installer: fuel
- <<: *colorado
+ <<: *danube
- armband-virtual:
slave-label: armband-virtual
installer: fuel
- <<: *colorado
+ <<: *danube
# netvirt 3rd party ci
- virtual:
slave-label: odl-netvirt-virtual
- zte-pod1:
slave-label: '{pod}'
installer: fuel
- <<: *colorado
+ <<: *danube
- zte-pod2:
slave-label: '{pod}'
installer: fuel
- zte-pod3:
slave-label: '{pod}'
installer: fuel
- <<: *colorado
+ <<: *danube
- arm-pod2:
slave-label: '{pod}'
installer: fuel
- <<: *colorado
+ <<: *danube
- arm-pod3:
slave-label: '{pod}'
installer: fuel
- <<: *colorado
+ <<: *danube
# PODs for verify jobs triggered by each patch upload
- ool-virtual1:
slave-label: '{pod}'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
- job-template:
name: 'functest-verify-{stream}'
fi
container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1)
docker exec $container_id $cmd
+
+ret_value=$?
+
+exit $ret_value
--- /dev/null
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 SUSE.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+set -eu
+set -o pipefail
+
+BIFROST_CONSOLE_LOG="${BUILD_URL}/consoleText"
+BIFROST_GS_URL=${BIFROST_GS_STORAGE/http:/gs:}
+
+echo "Uploading build logs to ${BIFROST_LOG_URL}"
+
+echo "Uploading console output"
+curl -L ${BIFROST_CONSOLE_LOG} | gsutil cp - ${BIFROST_GS_URL}/console.txt
+
+[[ ! -d ${WORKSPACE}/logs ]] && exit 0
+
+pushd ${WORKSPACE}/logs/ &> /dev/null
+for x in *.log; do
+ echo "Compressing and uploading $x"
+ tar -czf - $x | gsutil cp - ${BIFROST_GS_URL}/$x.tar.gz
+done
+popd ${WORKSPACE}/logs &> /dev/null
- label:
name: SLAVE_LABEL
default: 'infra-{type}-{distro}'
+ - string:
+ name: BIFROST_LOG_URL
+ default: 'http://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER/$JOB_NAME'
scm:
- git:
branch: '{branch}'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - shell:
- !include-raw-escape: ./bifrost-verify.sh
+ - bifrost-set-name
+ - bifrost-build
+ - bifrost-artifacts-upload
publishers:
- email:
exclude-no-code-change: 'false'
- comment-added-contains-event:
comment-contains-value: 'recheck'
- custom-url: '* $JOB_NAME $BUILD_URL'
+ custom-url: '* $JOB_NAME $BIFROST_LOG_URL'
silent-start: true
projects:
- project-compare-type: 'PLAIN'
comment-contains-value: 'recheck'
- comment-added-contains-event:
comment-contains-value: 'reverify'
+ custom-url: '* $JOB_NAME $BIFROST_LOG_URL'
projects:
- project-compare-type: 'ANT'
project-pattern: 'releng'
- compare-type: ANT
pattern: 'jjb/infra/**'
readable-message: true
+
+#---------------------------
+# builder macros
+#---------------------------
+- builder:
+ name: bifrost-set-name
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+
+- builder:
+ name: bifrost-build
+ builders:
+ - shell:
+ !include-raw: ./bifrost-verify.sh
+
+- builder:
+ name: bifrost-artifacts-upload
+ builders:
+ - shell:
+ !include-raw: ./bifrost-upload-logs.sh
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
disabled: false
gs-pathname: ''
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
- disabled: false
+ disabled: true
gs-pathname: '/{stream}'
#--------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
<<: *master
- baremetal:
slave-label: joid-baremetal
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: joid-virtual
- <<: *colorado
+ <<: *danube
#--------------------------------
# None-CI PODs
#--------------------------------
name: 'joid-os-nosdn-nofeature-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-nosdn-nofeature-ha trigger - branch: colorado
+# os-nosdn-nofeature-ha trigger - branch: danube
- trigger:
- name: 'joid-os-nosdn-nofeature-ha-baremetal-colorado-trigger'
+ name: 'joid-os-nosdn-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: '0 2 * * *'
- trigger:
- name: 'joid-os-nosdn-nofeature-ha-virtual-colorado-trigger'
+ name: 'joid-os-nosdn-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-nosdn-nofeature-ha-orange-pod1-colorado-trigger'
+ name: 'joid-os-nosdn-nofeature-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
# os-odl_l2-nofeature-ha trigger - branch: master
name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-odl_l2-nofeature-ha trigger - branch: colorado
+# os-odl_l2-nofeature-ha trigger - branch: danube
- trigger:
- name: 'joid-os-odl_l2-nofeature-ha-baremetal-colorado-trigger'
+ name: 'joid-os-odl_l2-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: '0 7 * * *'
- trigger:
- name: 'joid-os-odl_l2-nofeature-ha-virtual-colorado-trigger'
+ name: 'joid-os-odl_l2-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-colorado-trigger'
+ name: 'joid-os-odl_l2-nofeature-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
# os-onos-nofeature-ha trigger - branch: master
name: 'joid-os-onos-nofeature-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-onos-nofeature-ha trigger - branch: colorado
+# os-onos-nofeature-ha trigger - branch: danube
- trigger:
- name: 'joid-os-onos-nofeature-ha-baremetal-colorado-trigger'
+ name: 'joid-os-onos-nofeature-ha-baremetal-danube-trigger'
triggers:
- timed: '0 12 * * *'
- trigger:
- name: 'joid-os-onos-nofeature-ha-virtual-colorado-trigger'
+ name: 'joid-os-onos-nofeature-ha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-onos-nofeature-ha-orange-pod1-colorado-trigger'
+ name: 'joid-os-onos-nofeature-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
# os-onos-sfc-ha trigger - branch: master
name: 'joid-os-onos-sfc-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-onos-sfc-ha trigger - branch: colorado
+# os-onos-sfc-ha trigger - branch: danube
- trigger:
- name: 'joid-os-onos-sfc-ha-baremetal-colorado-trigger'
+ name: 'joid-os-onos-sfc-ha-baremetal-danube-trigger'
triggers:
- timed: '0 17 * * *'
- trigger:
- name: 'joid-os-onos-sfc-ha-virtual-colorado-trigger'
+ name: 'joid-os-onos-sfc-ha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-onos-sfc-ha-orange-pod1-colorado-trigger'
+ name: 'joid-os-onos-sfc-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
# os-nosdn-lxd-noha trigger - branch: master
name: 'joid-os-nosdn-lxd-noha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-nosdn-lxd-noha trigger - branch: colorado
+# os-nosdn-lxd-noha trigger - branch: danube
- trigger:
- name: 'joid-os-nosdn-lxd-noha-baremetal-colorado-trigger'
+ name: 'joid-os-nosdn-lxd-noha-baremetal-danube-trigger'
triggers:
- timed: '0 22 * * *'
- trigger:
- name: 'joid-os-nosdn-lxd-noha-virtual-colorado-trigger'
+ name: 'joid-os-nosdn-lxd-noha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-nosdn-lxd-noha-orange-pod1-colorado-trigger'
+ name: 'joid-os-nosdn-lxd-noha-orange-pod1-danube-trigger'
triggers:
- timed: ''
# os-nosdn-lxd-ha trigger - branch: master
name: 'joid-os-nosdn-lxd-ha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-nosdn-lxd-ha trigger - branch: colorado
+# os-nosdn-lxd-ha trigger - branch: danube
- trigger:
- name: 'joid-os-nosdn-lxd-ha-baremetal-colorado-trigger'
+ name: 'joid-os-nosdn-lxd-ha-baremetal-danube-trigger'
triggers:
- timed: '0 10 * * *'
- trigger:
- name: 'joid-os-nosdn-lxd-ha-virtual-colorado-trigger'
+ name: 'joid-os-nosdn-lxd-ha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-nosdn-lxd-ha-orange-pod1-colorado-trigger'
+ name: 'joid-os-nosdn-lxd-ha-orange-pod1-danube-trigger'
triggers:
- timed: ''
# os-nosdn-nofeature-noha trigger - branch: master
name: 'joid-os-nosdn-nofeature-noha-orange-pod1-master-trigger'
triggers:
- timed: ''
-# os-nosdn-nofeature-noha trigger - branch: colorado
+# os-nosdn-nofeature-noha trigger - branch: danube
- trigger:
- name: 'joid-os-nosdn-nofeature-noha-baremetal-colorado-trigger'
+ name: 'joid-os-nosdn-nofeature-noha-baremetal-danube-trigger'
triggers:
- timed: '0 4 * * *'
- trigger:
- name: 'joid-os-nosdn-nofeature-noha-virtual-colorado-trigger'
+ name: 'joid-os-nosdn-nofeature-noha-virtual-danube-trigger'
triggers:
- timed: ''
- trigger:
- name: 'joid-os-nosdn-nofeature-noha-orange-pod1-colorado-trigger'
+ name: 'joid-os-nosdn-nofeature-noha-orange-pod1-danube-trigger'
triggers:
- timed: ''
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
use-build-blocker: true
blocking-jobs:
- 'joid-verify-master'
- - 'joid-verify-colorado'
+ - 'joid-verify-danube'
block-level: 'NODE'
scm:
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
gs-pathname: ''
disabled: false
timed: '@midnight'
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
project: 'onosfw'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
########################
# job templates
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
- job-template:
name: 'ovsnfv-verify-{stream}'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
stream: master
branch: '{stream}'
disabled: false
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
- disabled: false
+ disabled: true
project:
# projects with jobs for master
<<: *master
# projects with jobs for stable
- 'bottlenecks':
- <<: *colorado
+ <<: *danube
- 'functest':
- <<: *colorado
+ <<: *danube
- 'storperf':
- <<: *colorado
+ <<: *danube
- 'yardstick':
- <<: *colorado
+ <<: *danube
jobs:
- '{project}-docker-build-push-{stream}'
doc-version: ''
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
doc-version: '3.0'
gs-pathname: '/{stream}/{doc-version}'
- disabled: false
+ disabled: true
########################
# job templates
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
- job-template:
name: 'storperf-verify-{stream}'
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
gs-pathname: ''
disabled: false
slave-label: 'opnfv-build-ubuntu'
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
slave-label: 'intel-pod3'
- job-template:
branch: '{stream}'
gs-pathname: ''
docker-tag: 'latest'
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
gs-pathname: '{stream}'
docker-tag: 'stable'
slave-label: fuel-baremetal
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: fuel-virtual
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
# armband CI PODs
- armband-baremetal:
slave-label: armband-baremetal
slave-label: armband-baremetal
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- armband-virtual:
slave-label: armband-virtual
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
# joid CI PODs
- baremetal:
slave-label: joid-baremetal
slave-label: joid-baremetal
installer: joid
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: joid-virtual
installer: joid
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
# compass CI PODs
- baremetal:
slave-label: compass-baremetal
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: compass-virtual
installer: compass
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
#--------------------------------
# Installers not using labels
# CI PODs
slave-label: '{pod}'
installer: apex
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
#--------------------------------
# None-CI PODs
#--------------------------------
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- zte-pod2:
slave-label: '{pod}'
installer: fuel
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- arm-pod2:
slave-label: '{pod}'
installer: fuel
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- arm-pod3:
slave-label: '{pod}'
installer: fuel
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- orange-pod2:
slave-label: '{pod}'
installer: joid
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
EXIT_OK = 0
EXIT_RUN_ERROR = -1
EXIT_PUSH_TO_TEST_DB_ERROR = -2
+
+class Constants(object):
+ INSTALLERS = ['apex', 'fuel', 'compass', 'joid', "daisy"]
+ VERSIONS = ['arno', 'brahmaputra', 'colorado', 'danube']
+
+ EX_OK = 0
+ EX_RUN_ERROR = -1
+ EX_TEST_FAIL = -2
+ EX_PUSH_RESULT_FAIL = -3
WORKDIR /home/releng/utils/test/testapi/
RUN pip install -r requirements.txt
-RUN python setup.py install
+RUN bash install.sh
CMD ["bash", "docker/start-server.sh"]
+from opnfv_testapi.common.constants import HTTP_FORBIDDEN
from opnfv_testapi.resources.handlers import GenericApiHandler
from opnfv_testapi.resources.scenario_models import Scenario
from opnfv_testapi.tornado_swagger import swagger
"""
@description: create a new scenario by name
@param body: scenario to be created
- @type body: L{string}
+ @type body: L{ScenarioCreateRequest}
+ @in body: body
@rtype: L{CreateResponse}
+ @return 200: scenario is created.
+ @raise 403: scenario already exists
+ @raise 400: body or name not provided
"""
- pass
+ def query(data):
+ return {'name': data.name}
+
+ def error(data):
+ message = '{} already exists as a scenario'.format(data.name)
+ return HTTP_FORBIDDEN, message
+
+ miss_checks = ['name']
+ db_checks = [(self.table, False, query, error)]
+ self._create(miss_checks=miss_checks, db_checks=db_checks)
class ScenarioGURHandler(GenericScenarioHandler):
self.versions = versions if versions else list()
+@swagger.model()
+class ScenarioCreateRequest(models.ModelBase):
+ """
+ @property installers:
+ @ptype installers: C{list} of L{ScenarioInstaller}
+ """
+ def __init__(self, name='', installers=None):
+ self.name = name
+ self.installers = installers if installers else list()
+
+
@swagger.model()
class Scenario(models.ModelBase):
"""
def __init__(self, name='', create_date='', _id='', installers=None):
self.name = name
self._id = _id
- self.create_date = create_date
+ self.creation_date = create_date
self.installers = installers if installers else list()
projects = MemDb()
testcases = MemDb()
results = MemDb()
+scenarios = MemDb()
--- /dev/null
+{
+ "name": "nosdn-nofeature-ha",
+ "installers":
+ [
+ {
+ "installer": "apex",
+ "versions":
+ [
+ {
+ "owner": "Luke",
+ "version": "master",
+ "projects":
+ [
+ {
+ "project": "functest",
+ "customs": [ "healthcheck", "vping_ssh"],
+ "scores":
+ [
+ {
+ "date": "2017-01-08 22:46:44",
+ "score": "12/14"
+ }
+
+ ],
+ "trust_indicators": []
+ },
+ {
+ "project": "yardstick",
+ "customs": [],
+ "scores": [],
+ "trust_indicators": []
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
return self.create_help(self.basePath, req, *args)
def create_help(self, uri, req, *args):
- if req:
- req = req.format()
+ if req and not isinstance(req, str):
+ req = json.dumps(req.format())
res = self.fetch(self._update_uri(uri, *args),
method='POST',
- body=json.dumps(req),
+ body=req if req else json.dumps(None),
headers=self.headers)
return self._get_return(res, self.create_res)
self.assertIn(self.basePath, body.href)
def assert_create_body(self, body, req=None, *args):
+ import inspect
if not req:
req = self.req_d
- new_args = args + tuple([req.name])
+ resource_name = ''
+ if inspect.isclass(req):
+ resource_name = req.name
+ elif isinstance(req, dict):
+ resource_name = req['name']
+ elif isinstance(req, str):
+ resource_name = json.loads(req)['name']
+ new_args = args + tuple([resource_name])
self.assertIn(self._get_uri(*new_args), body.href)
@staticmethod
fake_pymongo.projects.clear()
fake_pymongo.testcases.clear()
fake_pymongo.results.clear()
+ fake_pymongo.scenarios.clear()
--- /dev/null
+import json
+import os
+
+from opnfv_testapi.common.constants import HTTP_BAD_REQUEST
+from opnfv_testapi.common.constants import HTTP_FORBIDDEN
+from opnfv_testapi.common.constants import HTTP_OK
+from opnfv_testapi.resources.scenario_models import ScenarioCreateRequest
+from test_testcase import TestBase
+
+
+class TestScenarioBase(TestBase):
+ def setUp(self):
+ super(TestScenarioBase, self).setUp()
+ self.basePath = '/api/v1/scenarios'
+ self.load_request('scenario-create.json')
+
+ def tearDown(self):
+ pass
+
+ def assert_body(self, project, req=None):
+ pass
+
+ def load_request(self, f_req):
+ with open(os.path.join(os.path.dirname(__file__), f_req), 'r') as f:
+ self.req_d = json.dumps(json.load(f))
+ f.close()
+
+
+class TestScenarioCreate(TestScenarioBase):
+ def test_withoutBody(self):
+ (code, body) = self.create()
+ self.assertEqual(code, HTTP_BAD_REQUEST)
+
+ def test_emptyName(self):
+ req_empty = ScenarioCreateRequest('')
+ (code, body) = self.create(req_empty)
+ self.assertEqual(code, HTTP_BAD_REQUEST)
+ self.assertIn('name missing', body)
+
+ def test_noneName(self):
+ req_none = ScenarioCreateRequest(None)
+ (code, body) = self.create(req_none)
+ self.assertEqual(code, HTTP_BAD_REQUEST)
+ self.assertIn('name missing', body)
+
+ def test_success(self):
+ (code, body) = self.create_d()
+ self.assertEqual(code, HTTP_OK)
+ self.assert_create_body(body)
+
+ def test_alreadyExist(self):
+ self.create_d()
+ (code, body) = self.create_d()
+ self.assertEqual(code, HTTP_FORBIDDEN)
+ self.assertIn('already exists', body)