summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xjjb/3rd_party_ci/create-apex-vms.sh6
-rwxr-xr-xjjb/3rd_party_ci/download-netvirt-artifact.sh4
-rwxr-xr-xjjb/3rd_party_ci/install-netvirt.sh7
-rwxr-xr-xjjb/3rd_party_ci/postprocess-netvirt.sh9
-rw-r--r--jjb/armband/armband-ci-jobs.yml104
-rw-r--r--jjb/armband/armband-project-jobs.yml6
-rw-r--r--jjb/armband/armband-verify-jobs.yml2
-rw-r--r--jjb/availability/availability.yml2
-rw-r--r--jjb/barometer/barometer.yml4
-rw-r--r--jjb/bottlenecks/bottlenecks-ci-jobs.yml10
-rw-r--r--jjb/bottlenecks/bottlenecks-project-jobs.yml2
-rw-r--r--jjb/compass4nfv/compass-ci-jobs.yml60
-rw-r--r--jjb/compass4nfv/compass-project-jobs.yml8
-rw-r--r--jjb/compass4nfv/compass-verify-jobs.yml4
-rw-r--r--jjb/conductor/conductor.yml2
-rw-r--r--jjb/copper/copper.yml2
-rw-r--r--jjb/doctor/doctor.yml2
-rw-r--r--jjb/domino/domino.yml2
-rw-r--r--jjb/dpacc/dpacc.yml2
-rw-r--r--jjb/functest/functest-ci-jobs.yml44
-rw-r--r--jjb/functest/functest-project-jobs.yml4
-rwxr-xr-xjjb/infra/bifrost-upload-logs.sh52
-rw-r--r--jjb/infra/bifrost-verify-jobs.yml34
-rw-r--r--jjb/ipv6/ipv6.yml2
-rw-r--r--jjb/joid/joid-daily-jobs.yml66
-rw-r--r--jjb/joid/joid-verify-jobs.yml4
-rw-r--r--jjb/kvmfornfv/kvmfornfv.yml2
-rw-r--r--jjb/multisite/multisite.yml2
-rw-r--r--jjb/octopus/octopus.yml2
-rw-r--r--jjb/onosfw/onosfw.yml4
-rw-r--r--jjb/opnfvdocs/opnfvdocs.yml4
-rw-r--r--jjb/ovsnfv/ovsnfv.yml4
-rw-r--r--jjb/parser/parser.yml2
-rw-r--r--jjb/pharos/pharos.yml2
-rw-r--r--jjb/prediction/prediction.yml2
-rw-r--r--jjb/promise/promise.yml2
-rw-r--r--jjb/releng/opnfv-docker.yml14
-rw-r--r--jjb/releng/opnfv-docs.yml4
-rw-r--r--jjb/releng/opnfv-lint.yml2
-rw-r--r--jjb/releng/testapi-automate.yml2
-rw-r--r--jjb/storperf/storperf.yml8
-rw-r--r--jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml2
-rw-r--r--jjb/vswitchperf/vswitchperf.yml4
-rw-r--r--jjb/yardstick/yardstick-ci-jobs.yml30
-rw-r--r--jjb/yardstick/yardstick-project-jobs.yml2
-rw-r--r--modules/opnfv/utils/constants.py9
-rwxr-xr-xutils/fetch_os_creds.sh11
-rw-r--r--utils/push-test-logs.sh3
-rw-r--r--utils/test/testapi/docker/Dockerfile2
-rw-r--r--utils/test/testapi/htmlize/doc-build.sh9
-rw-r--r--utils/test/testapi/htmlize/finish.sh2
-rw-r--r--utils/test/testapi/htmlize/prepare.sh3
-rw-r--r--utils/test/testapi/htmlize/push-doc-artifact.sh6
-rw-r--r--utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py18
-rw-r--r--utils/test/testapi/opnfv_testapi/resources/scenario_models.py13
-rw-r--r--utils/test/testapi/opnfv_testapi/tests/unit/fake_pymongo.py1
-rw-r--r--utils/test/testapi/opnfv_testapi/tests/unit/scenario-create.json38
-rw-r--r--utils/test/testapi/opnfv_testapi/tests/unit/test_base.py17
-rw-r--r--utils/test/testapi/opnfv_testapi/tests/unit/test_scenario.py55
59 files changed, 495 insertions, 230 deletions
diff --git a/jjb/3rd_party_ci/create-apex-vms.sh b/jjb/3rd_party_ci/create-apex-vms.sh
index a076dd084..3f5dbd1c4 100755
--- a/jjb/3rd_party_ci/create-apex-vms.sh
+++ b/jjb/3rd_party_ci/create-apex-vms.sh
@@ -1,11 +1,15 @@
#!/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
diff --git a/jjb/3rd_party_ci/download-netvirt-artifact.sh b/jjb/3rd_party_ci/download-netvirt-artifact.sh
index 0a48e3aec..be2d4059a 100755
--- a/jjb/3rd_party_ci/download-netvirt-artifact.sh
+++ b/jjb/3rd_party_ci/download-netvirt-artifact.sh
@@ -1,6 +1,10 @@
#!/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/*
diff --git a/jjb/3rd_party_ci/install-netvirt.sh b/jjb/3rd_party_ci/install-netvirt.sh
index 96c4b9634..f111d4847 100755
--- a/jjb/3rd_party_ci/install-netvirt.sh
+++ b/jjb/3rd_party_ci/install-netvirt.sh
@@ -1,5 +1,12 @@
#!/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
diff --git a/jjb/3rd_party_ci/postprocess-netvirt.sh b/jjb/3rd_party_ci/postprocess-netvirt.sh
index 2e99477c5..5baf378a9 100755
--- a/jjb/3rd_party_ci/postprocess-netvirt.sh
+++ b/jjb/3rd_party_ci/postprocess-netvirt.sh
@@ -1,14 +1,15 @@
#!/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
diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml
index 22e1dafba..4e88678b4 100644
--- a/jjb/armband/armband-ci-jobs.yml
+++ b/jjb/armband/armband-ci-jobs.yml
@@ -10,26 +10,28 @@
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
#--------------------------------
@@ -44,16 +46,16 @@
#--------------------------------
# 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
#--------------------------------
@@ -97,6 +99,8 @@
- job-template:
name: '{installer}-{scenario}-{pod}-daily-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: false
properties:
@@ -256,23 +260,23 @@
- 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:
@@ -283,34 +287,34 @@
- 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: ''
#---------------------------------------------------------------
@@ -345,34 +349,34 @@
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: ''
#----------------------------------------------------------
@@ -407,34 +411,34 @@
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: ''
#----------------------------------------------------------
@@ -469,33 +473,33 @@
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: ''
diff --git a/jjb/armband/armband-project-jobs.yml b/jjb/armband/armband-project-jobs.yml
index e3853fa16..981f509c7 100644
--- a/jjb/armband/armband-project-jobs.yml
+++ b/jjb/armband/armband-project-jobs.yml
@@ -16,13 +16,17 @@
- 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:
diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml
index 9bfe4f4fd..d5333eb07 100644
--- a/jjb/armband/armband-verify-jobs.yml
+++ b/jjb/armband/armband-verify-jobs.yml
@@ -12,7 +12,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/availability/availability.yml b/jjb/availability/availability.yml
index ae9f163e6..c3603a65f 100644
--- a/jjb/availability/availability.yml
+++ b/jjb/availability/availability.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: 'false'
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: 'false'
diff --git a/jjb/barometer/barometer.yml b/jjb/barometer/barometer.yml
index 41a80addc..e789b7f7a 100644
--- a/jjb/barometer/barometer.yml
+++ b/jjb/barometer/barometer.yml
@@ -17,10 +17,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
- job-template:
name: 'barometer-verify-{stream}'
diff --git a/jjb/bottlenecks/bottlenecks-ci-jobs.yml b/jjb/bottlenecks/bottlenecks-ci-jobs.yml
index 0054dddaf..92ec2d866 100644
--- a/jjb/bottlenecks/bottlenecks-ci-jobs.yml
+++ b/jjb/bottlenecks/bottlenecks-ci-jobs.yml
@@ -18,8 +18,8 @@
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}'
@@ -48,12 +48,12 @@
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
@@ -62,7 +62,7 @@
# slave-label: '{pod}'
# installer: joid
# auto-trigger-name: 'daily-trigger-disabled'
- # <<: *colorado
+ # <<: *danube
# - orange-pod2:
# slave-label: '{pod}'
# installer: joid
diff --git a/jjb/bottlenecks/bottlenecks-project-jobs.yml b/jjb/bottlenecks/bottlenecks-project-jobs.yml
index a461c6a66..03e40dc0e 100644
--- a/jjb/bottlenecks/bottlenecks-project-jobs.yml
+++ b/jjb/bottlenecks/bottlenecks-project-jobs.yml
@@ -20,7 +20,7 @@
#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}'
diff --git a/jjb/compass4nfv/compass-ci-jobs.yml b/jjb/compass4nfv/compass-ci-jobs.yml
index b4910cfc2..8800a155f 100644
--- a/jjb/compass4nfv/compass-ci-jobs.yml
+++ b/jjb/compass4nfv/compass-ci-jobs.yml
@@ -10,10 +10,12 @@
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
#--------------------------------
@@ -28,14 +30,14 @@
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
#--------------------------------
@@ -80,6 +82,8 @@
- job-template:
name: 'compass-{scenario}-{pod}-daily-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: true
properties:
@@ -309,35 +313,35 @@
- 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: ''
@@ -375,34 +379,34 @@
- 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: ''
diff --git a/jjb/compass4nfv/compass-project-jobs.yml b/jjb/compass4nfv/compass-project-jobs.yml
index 6cf35d631..6b4080384 100644
--- a/jjb/compass4nfv/compass-project-jobs.yml
+++ b/jjb/compass4nfv/compass-project-jobs.yml
@@ -12,9 +12,11 @@
- master:
branch: '{stream}'
gs-pathname: ''
- - colorado:
+ disabled: false
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
+ disabled: true
jobs:
- 'compass-build-iso-{stream}'
@@ -26,6 +28,8 @@
- job-template:
name: 'compass-build-iso-{stream}'
+ disabled: '{obj:disabled}'
+
concurrent: true
properties:
@@ -65,6 +69,8 @@
description: "build ppa(using docker) in huawei lab"
+ disabled: '{obj:disabled}'
+
node: huawei-build
concurrent: true
diff --git a/jjb/compass4nfv/compass-verify-jobs.yml b/jjb/compass4nfv/compass-verify-jobs.yml
index 8feda04e3..6ef5fbb67 100644
--- a/jjb/compass4nfv/compass-verify-jobs.yml
+++ b/jjb/compass4nfv/compass-verify-jobs.yml
@@ -12,10 +12,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
distro:
- 'xenial':
diff --git a/jjb/conductor/conductor.yml b/jjb/conductor/conductor.yml
index f9978804f..fccd53e7f 100644
--- a/jjb/conductor/conductor.yml
+++ b/jjb/conductor/conductor.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/copper/copper.yml b/jjb/copper/copper.yml
index 9c736db7c..24f65a358 100644
--- a/jjb/copper/copper.yml
+++ b/jjb/copper/copper.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/doctor/doctor.yml b/jjb/doctor/doctor.yml
index e225a123f..ab9ef8f6c 100644
--- a/jjb/doctor/doctor.yml
+++ b/jjb/doctor/doctor.yml
@@ -9,7 +9,7 @@
gs-pathname: ''
docker-tag: 'master'
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
docker-tag: 'stable'
diff --git a/jjb/domino/domino.yml b/jjb/domino/domino.yml
index b6533009e..532fce687 100644
--- a/jjb/domino/domino.yml
+++ b/jjb/domino/domino.yml
@@ -11,7 +11,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/dpacc/dpacc.yml b/jjb/dpacc/dpacc.yml
index 3eb581ec1..27e663507 100644
--- a/jjb/dpacc/dpacc.yml
+++ b/jjb/dpacc/dpacc.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml
index f8fdeb811..4920bffea 100644
--- a/jjb/functest/functest-ci-jobs.yml
+++ b/jjb/functest/functest-ci-jobs.yml
@@ -14,8 +14,8 @@
branch: '{stream}'
gs-pathname: ''
docker-tag: 'latest'
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
docker-tag: 'stable'
@@ -40,11 +40,11 @@
- 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
@@ -57,11 +57,11 @@
- 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
@@ -74,11 +74,11 @@
- 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}'
@@ -88,14 +88,14 @@
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
@@ -108,11 +108,11 @@
- 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
@@ -156,7 +156,7 @@
- zte-pod1:
slave-label: '{pod}'
installer: fuel
- <<: *colorado
+ <<: *danube
- zte-pod2:
slave-label: '{pod}'
installer: fuel
@@ -168,15 +168,15 @@
- 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}'
diff --git a/jjb/functest/functest-project-jobs.yml b/jjb/functest/functest-project-jobs.yml
index 11bc364e1..6a0768c9c 100644
--- a/jjb/functest/functest-project-jobs.yml
+++ b/jjb/functest/functest-project-jobs.yml
@@ -15,10 +15,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: true
+ disabled: false
- job-template:
name: 'functest-verify-{stream}'
diff --git a/jjb/infra/bifrost-upload-logs.sh b/jjb/infra/bifrost-upload-logs.sh
new file mode 100755
index 000000000..8e1982dff
--- /dev/null
+++ b/jjb/infra/bifrost-upload-logs.sh
@@ -0,0 +1,52 @@
+#!/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_LOG_URL/http:/gs:}
+BIFROST_COMPRESS_SUFFIX="tar.gz"
+BIFROST_COMPRESSED_LOGS=()
+
+echo "Uploading build logs to ${BIFROST_LOG_URL}"
+
+echo "Uploading console output"
+curl -L ${BIFROST_CONSOLE_LOG} | gsutil cp - ${BIFROST_GS_URL}/build_log.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}.${BIFROST_COMPRESS_SUFFIX} 1>/dev/null
+ BIFROST_COMPRESSED_LOGS+=(${x}.${BIFROST_COMPRESS_SUFFIX})
+done
+popd &> /dev/null
+
+echo "Generating the landing page"
+cat > index.html << EOF
+<html>
+<h1>Build results for <a href=https://$GERRIT_NAME/#/c/$GERRIT_CHANGE_NUMBER>$GERRIT_NAME/$GERRIT_CHANGE_NUMBER</a></h1>
+<h2>Job: $JOB_NAME</h2>
+<ul>
+<li><a href=${BIFROST_LOG_URL}/build_log.txt>build_log.txt</a></li>
+EOF
+
+for x in ${BIFROST_COMPRESSED_LOGS[@]}; do
+ echo "<li><a href=${BIFROST_LOG_URL}/${x}>${x}</a></li>" >> index.html
+done
+
+cat >> index.html << EOF
+</ul>
+</html>
+EOF
+
+gsutil cp index.html ${BIFROST_GS_URL}/index.html
diff --git a/jjb/infra/bifrost-verify-jobs.yml b/jjb/infra/bifrost-verify-jobs.yml
index 422a42274..6232859ee 100644
--- a/jjb/infra/bifrost-verify-jobs.yml
+++ b/jjb/infra/bifrost-verify-jobs.yml
@@ -120,6 +120,9 @@
- 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:
@@ -137,10 +140,9 @@
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:
@@ -161,7 +163,7 @@
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/index.html'
silent-start: true
projects:
- project-compare-type: 'PLAIN'
@@ -190,6 +192,7 @@
comment-contains-value: 'recheck'
- comment-added-contains-event:
comment-contains-value: 'reverify'
+ custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html'
projects:
- project-compare-type: 'ANT'
project-pattern: 'releng'
@@ -202,3 +205,24 @@
- 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
diff --git a/jjb/ipv6/ipv6.yml b/jjb/ipv6/ipv6.yml
index db662aed8..da54c521e 100644
--- a/jjb/ipv6/ipv6.yml
+++ b/jjb/ipv6/ipv6.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/joid/joid-daily-jobs.yml b/jjb/joid/joid-daily-jobs.yml
index 20429f1a4..91fcc8814 100644
--- a/jjb/joid/joid-daily-jobs.yml
+++ b/jjb/joid/joid-daily-jobs.yml
@@ -17,10 +17,10 @@
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
@@ -36,10 +36,10 @@
<<: *master
- baremetal:
slave-label: joid-baremetal
- <<: *colorado
+ <<: *danube
- virtual:
slave-label: joid-virtual
- <<: *colorado
+ <<: *danube
#--------------------------------
# None-CI PODs
#--------------------------------
@@ -226,17 +226,17 @@
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
@@ -252,17 +252,17 @@
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
@@ -278,17 +278,17 @@
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
@@ -304,17 +304,17 @@
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
@@ -330,17 +330,17 @@
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
@@ -356,17 +356,17 @@
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
@@ -382,16 +382,16 @@
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: ''
diff --git a/jjb/joid/joid-verify-jobs.yml b/jjb/joid/joid-verify-jobs.yml
index 516e822a7..6e821a502 100644
--- a/jjb/joid/joid-verify-jobs.yml
+++ b/jjb/joid/joid-verify-jobs.yml
@@ -12,7 +12,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
@@ -54,7 +54,7 @@
use-build-blocker: true
blocking-jobs:
- 'joid-verify-master'
- - 'joid-verify-colorado'
+ - 'joid-verify-danube'
block-level: 'NODE'
scm:
diff --git a/jjb/kvmfornfv/kvmfornfv.yml b/jjb/kvmfornfv/kvmfornfv.yml
index 8ab821c9b..60f8de8c4 100644
--- a/jjb/kvmfornfv/kvmfornfv.yml
+++ b/jjb/kvmfornfv/kvmfornfv.yml
@@ -8,7 +8,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/multisite/multisite.yml b/jjb/multisite/multisite.yml
index cfe9b2d13..6b6406983 100644
--- a/jjb/multisite/multisite.yml
+++ b/jjb/multisite/multisite.yml
@@ -18,7 +18,7 @@
gs-pathname: ''
disabled: false
timed: '@midnight'
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/octopus/octopus.yml b/jjb/octopus/octopus.yml
index 71d6a41fe..b820ecb0e 100644
--- a/jjb/octopus/octopus.yml
+++ b/jjb/octopus/octopus.yml
@@ -14,7 +14,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/onosfw/onosfw.yml b/jjb/onosfw/onosfw.yml
index 07bcdc5f6..d3a845403 100644
--- a/jjb/onosfw/onosfw.yml
+++ b/jjb/onosfw/onosfw.yml
@@ -13,10 +13,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
project: 'onosfw'
diff --git a/jjb/opnfvdocs/opnfvdocs.yml b/jjb/opnfvdocs/opnfvdocs.yml
index d8cfabc05..0d4c46199 100644
--- a/jjb/opnfvdocs/opnfvdocs.yml
+++ b/jjb/opnfvdocs/opnfvdocs.yml
@@ -17,10 +17,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
########################
# job templates
diff --git a/jjb/ovsnfv/ovsnfv.yml b/jjb/ovsnfv/ovsnfv.yml
index a5b8fd812..9b2adf3a8 100644
--- a/jjb/ovsnfv/ovsnfv.yml
+++ b/jjb/ovsnfv/ovsnfv.yml
@@ -13,10 +13,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
- job-template:
name: 'ovsnfv-verify-{stream}'
diff --git a/jjb/parser/parser.yml b/jjb/parser/parser.yml
index 50c7d2585..de5587ed8 100644
--- a/jjb/parser/parser.yml
+++ b/jjb/parser/parser.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/pharos/pharos.yml b/jjb/pharos/pharos.yml
index 1a605d395..dbf1b92a4 100644
--- a/jjb/pharos/pharos.yml
+++ b/jjb/pharos/pharos.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/prediction/prediction.yml b/jjb/prediction/prediction.yml
index c0066bf7f..fba5741ac 100644
--- a/jjb/prediction/prediction.yml
+++ b/jjb/prediction/prediction.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/promise/promise.yml b/jjb/promise/promise.yml
index 38e181476..a0af6f41e 100644
--- a/jjb/promise/promise.yml
+++ b/jjb/promise/promise.yml
@@ -15,7 +15,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml
index be04b15c9..02dfb7560 100644
--- a/jjb/releng/opnfv-docker.yml
+++ b/jjb/releng/opnfv-docker.yml
@@ -10,10 +10,10 @@
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
@@ -33,13 +33,13 @@
<<: *master
# projects with jobs for stable
- 'bottlenecks':
- <<: *colorado
+ <<: *danube
- 'functest':
- <<: *colorado
+ <<: *danube
- 'storperf':
- <<: *colorado
+ <<: *danube
- 'yardstick':
- <<: *colorado
+ <<: *danube
jobs:
- '{project}-docker-build-push-{stream}'
diff --git a/jjb/releng/opnfv-docs.yml b/jjb/releng/opnfv-docs.yml
index cd70a80e4..f6092eee0 100644
--- a/jjb/releng/opnfv-docs.yml
+++ b/jjb/releng/opnfv-docs.yml
@@ -17,11 +17,11 @@
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
diff --git a/jjb/releng/opnfv-lint.yml b/jjb/releng/opnfv-lint.yml
index a96fce6b0..590790f89 100644
--- a/jjb/releng/opnfv-lint.yml
+++ b/jjb/releng/opnfv-lint.yml
@@ -16,7 +16,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/releng/testapi-automate.yml b/jjb/releng/testapi-automate.yml
index 2a2f7b6d4..0566c3fd6 100644
--- a/jjb/releng/testapi-automate.yml
+++ b/jjb/releng/testapi-automate.yml
@@ -52,7 +52,7 @@
name: testapi-doc-build
builders:
- shell: |
- python ./utils/test/testapi/htmlize/htmlize.py -o ${WORKSPACE}/
+ bash ./utils/test/testapi/htmlize/doc-build.sh
- builder:
name: start-testapi-server
diff --git a/jjb/storperf/storperf.yml b/jjb/storperf/storperf.yml
index 1a2eb5e31..902fff999 100644
--- a/jjb/storperf/storperf.yml
+++ b/jjb/storperf/storperf.yml
@@ -13,10 +13,10 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- disabled: false
+ disabled: true
- job-template:
name: 'storperf-verify-{stream}'
@@ -144,9 +144,9 @@
# Required Variables:
# stream: branch with - in place of / (eg. stable)
# branch: branch (eg. stable)
- node: opnfv-build-ubuntu
+ node: storperf-pod
- disabled: true
+ disabled: false
parameters:
- project-parameter:
diff --git a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
index 54e83386b..c129f4937 100644
--- a/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
+++ b/jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
@@ -11,7 +11,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/vswitchperf/vswitchperf.yml b/jjb/vswitchperf/vswitchperf.yml
index fe8ea5381..4cfe5d98f 100644
--- a/jjb/vswitchperf/vswitchperf.yml
+++ b/jjb/vswitchperf/vswitchperf.yml
@@ -15,10 +15,10 @@
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:
diff --git a/jjb/yardstick/yardstick-ci-jobs.yml b/jjb/yardstick/yardstick-ci-jobs.yml
index 1ad5417d4..ed2dccab8 100644
--- a/jjb/yardstick/yardstick-ci-jobs.yml
+++ b/jjb/yardstick/yardstick-ci-jobs.yml
@@ -14,8 +14,8 @@
branch: '{stream}'
gs-pathname: ''
docker-tag: 'latest'
- colorado: &colorado
- stream: colorado
+ danube: &danube
+ stream: danube
branch: 'stable/{stream}'
gs-pathname: '{stream}'
docker-tag: 'stable'
@@ -43,12 +43,12 @@
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
@@ -64,12 +64,12 @@
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
@@ -85,12 +85,12 @@
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:
@@ -107,12 +107,12 @@
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
@@ -128,7 +128,7 @@
slave-label: '{pod}'
installer: apex
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
#--------------------------------
# None-CI PODs
#--------------------------------
@@ -146,7 +146,7 @@
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- zte-pod2:
slave-label: '{pod}'
installer: fuel
@@ -161,7 +161,7 @@
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- arm-pod2:
slave-label: '{pod}'
installer: fuel
@@ -171,7 +171,7 @@
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- arm-pod3:
slave-label: '{pod}'
installer: fuel
@@ -181,7 +181,7 @@
slave-label: '{pod}'
installer: fuel
auto-trigger-name: 'daily-trigger-disabled'
- <<: *colorado
+ <<: *danube
- orange-pod2:
slave-label: '{pod}'
installer: joid
diff --git a/jjb/yardstick/yardstick-project-jobs.yml b/jjb/yardstick/yardstick-project-jobs.yml
index 48c9d9d56..a54750ef7 100644
--- a/jjb/yardstick/yardstick-project-jobs.yml
+++ b/jjb/yardstick/yardstick-project-jobs.yml
@@ -16,7 +16,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - colorado:
+ - danube:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/modules/opnfv/utils/constants.py b/modules/opnfv/utils/constants.py
index a69cedda3..ed83488d4 100644
--- a/modules/opnfv/utils/constants.py
+++ b/modules/opnfv/utils/constants.py
@@ -13,3 +13,12 @@ VERSIONS = ['arno', 'brahmaputra', 'colorado', 'danube']
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
diff --git a/utils/fetch_os_creds.sh b/utils/fetch_os_creds.sh
index 3667dbe6c..856f69a27 100755
--- a/utils/fetch_os_creds.sh
+++ b/utils/fetch_os_creds.sh
@@ -38,6 +38,16 @@ verify_connectivity() {
error "Can not talk to $ip."
}
+
+swap_to_public() {
+ if [ "$1" != "" ]; then
+ info "Exchanging keystone public IP in rc file to $public_ip"
+ sed -i "/OS_AUTH_URL/c\export OS_AUTH_URL=\'$public_ip'" $dest_path
+ sed -i 's/internalURL/publicURL/g' $dest_path
+ fi
+}
+
+
: ${DEPLOY_TYPE:=''}
#Get options
@@ -151,6 +161,7 @@ elif [ "$installer_type" == "compass" ]; then
| grep identity | awk '{print $14}')
fi
info "public_ip: $public_ip"
+ swap_to_public $public_ip
elif [ "$installer_type" == "joid" ]; then
diff --git a/utils/push-test-logs.sh b/utils/push-test-logs.sh
index 913748f03..733ffbcb5 100644
--- a/utils/push-test-logs.sh
+++ b/utils/push-test-logs.sh
@@ -27,7 +27,8 @@ node_list=(\
'ericsson-virtual1' 'ericsson-virtual2' 'ericsson-virtual3' \
'ericsson-virtual4' 'ericsson-virtual5' \
'arm-pod1' 'arm-pod3' \
-'huawei-pod1' 'huawei-pod2' 'huawei-virtual1' 'huawei-virtual2' 'huawei-virtual3' 'huawei-virtual4')
+'huawei-pod1' 'huawei-pod2' 'huawei-pod3' 'huawei-pod4' 'huawei-pod5' \
+'huawei-virtual1' 'huawei-virtual2' 'huawei-virtual3' 'huawei-virtual4')
if [[ ! " ${node_list[@]} " =~ " ${testbed} " ]]; then
diff --git a/utils/test/testapi/docker/Dockerfile b/utils/test/testapi/docker/Dockerfile
index b0272e609..86513e05b 100644
--- a/utils/test/testapi/docker/Dockerfile
+++ b/utils/test/testapi/docker/Dockerfile
@@ -48,5 +48,5 @@ RUN git clone https://gerrit.opnfv.org/gerrit/releng /home/releng
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"]
diff --git a/utils/test/testapi/htmlize/doc-build.sh b/utils/test/testapi/htmlize/doc-build.sh
new file mode 100644
index 000000000..e492c97b5
--- /dev/null
+++ b/utils/test/testapi/htmlize/doc-build.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Create virtual environment
+source $WORKSPACE/testapi_venv/bin/activate
+
+# Install Pre-requistics
+pip install requests
+
+python ./utils/test/testapi/htmlize/htmlize.py -o ${WORKSPACE}/
diff --git a/utils/test/testapi/htmlize/finish.sh b/utils/test/testapi/htmlize/finish.sh
index d24ae056c..dc3aa868b 100644
--- a/utils/test/testapi/htmlize/finish.sh
+++ b/utils/test/testapi/htmlize/finish.sh
@@ -13,5 +13,3 @@ if [ $proc_number -gt 0 ]; then
echo "Kill opnfv-testapi server $procs"
ps -ef | grep opnfv-testapi | grep -v grep | awk '{print $2}' | xargs kill -kill &>/dev/null
fi
-
-deactivate
diff --git a/utils/test/testapi/htmlize/prepare.sh b/utils/test/testapi/htmlize/prepare.sh
index 67158f211..e79ac5693 100644
--- a/utils/test/testapi/htmlize/prepare.sh
+++ b/utils/test/testapi/htmlize/prepare.sh
@@ -9,9 +9,6 @@
virtualenv testapi_venv
source testapi_venv/bin/activate
-# Install Pre-requisites
-pip install requests
-
# Swgger Codegen Tool
url="http://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.2.1/swagger-codegen-cli-2.2.1.jar"
diff --git a/utils/test/testapi/htmlize/push-doc-artifact.sh b/utils/test/testapi/htmlize/push-doc-artifact.sh
index 383565df1..4cf1988b0 100644
--- a/utils/test/testapi/htmlize/push-doc-artifact.sh
+++ b/utils/test/testapi/htmlize/push-doc-artifact.sh
@@ -7,19 +7,21 @@ export PATH=$PATH:/usr/local/bin/
project=$PROJECT
workspace=$WORKSPACE
-artifact_dir="functest/docs"
+artifact_dir="$project/docs"
set +e
gsutil&>/dev/null
if [ $? != 0 ]; then
echo "Not possible to push results to artifact: gsutil not installed"
+ exit 1
else
gsutil ls gs://artifacts.opnfv.org/"$project"/ &>/dev/null
if [ $? != 0 ]; then
echo "Not possible to push results to artifact: gsutil not installed."
+ exit 1
else
echo "Uploading document to artifact $artifact_dir"
gsutil cp "$workspace"/index.html gs://artifacts.opnfv.org/"$artifact_dir"/testapi.html >/dev/null 2>&1
- echo "Document can be found at http://artifacts.opnfv.org/functest/docs/testapi.html"
+ echo "Document can be found at http://artifacts.opnfv.org/releng/docs/testapi.html"
fi
fi
diff --git a/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py b/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py
index 75754d8b9..7bf3d5d53 100644
--- a/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py
+++ b/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py
@@ -1,3 +1,4 @@
+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
@@ -29,10 +30,23 @@ class ScenariosCLHandler(GenericScenarioHandler):
"""
@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):
diff --git a/utils/test/testapi/opnfv_testapi/resources/scenario_models.py b/utils/test/testapi/opnfv_testapi/resources/scenario_models.py
index 0748a3738..b4bb3634b 100644
--- a/utils/test/testapi/opnfv_testapi/resources/scenario_models.py
+++ b/utils/test/testapi/opnfv_testapi/resources/scenario_models.py
@@ -61,6 +61,17 @@ class ScenarioInstaller(models.ModelBase):
@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):
"""
@property installers:
@@ -69,7 +80,7 @@ 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()
diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/fake_pymongo.py b/utils/test/testapi/opnfv_testapi/tests/unit/fake_pymongo.py
index 3dd87e603..d86d8eadf 100644
--- a/utils/test/testapi/opnfv_testapi/tests/unit/fake_pymongo.py
+++ b/utils/test/testapi/opnfv_testapi/tests/unit/fake_pymongo.py
@@ -189,3 +189,4 @@ pods = MemDb()
projects = MemDb()
testcases = MemDb()
results = MemDb()
+scenarios = MemDb()
diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/scenario-create.json b/utils/test/testapi/opnfv_testapi/tests/unit/scenario-create.json
new file mode 100644
index 000000000..eba8b6c0a
--- /dev/null
+++ b/utils/test/testapi/opnfv_testapi/tests/unit/scenario-create.json
@@ -0,0 +1,38 @@
+{
+ "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
diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_base.py b/utils/test/testapi/opnfv_testapi/tests/unit/test_base.py
index ff1a1932c..9343ab2fb 100644
--- a/utils/test/testapi/opnfv_testapi/tests/unit/test_base.py
+++ b/utils/test/testapi/opnfv_testapi/tests/unit/test_base.py
@@ -47,11 +47,11 @@ class TestBase(AsyncHTTPTestCase):
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)
@@ -123,9 +123,17 @@ class TestBase(AsyncHTTPTestCase):
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
@@ -134,3 +142,4 @@ class TestBase(AsyncHTTPTestCase):
fake_pymongo.projects.clear()
fake_pymongo.testcases.clear()
fake_pymongo.results.clear()
+ fake_pymongo.scenarios.clear()
diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/test_scenario.py b/utils/test/testapi/opnfv_testapi/tests/unit/test_scenario.py
new file mode 100644
index 000000000..8e827813c
--- /dev/null
+++ b/utils/test/testapi/opnfv_testapi/tests/unit/test_scenario.py
@@ -0,0 +1,55 @@
+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)