summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules2
m---------global-jjb0
-rw-r--r--jjb/3rd_party_ci/odl-netvirt.yaml4
-rwxr-xr-xjjb/apex/apex-build.sh10
-rwxr-xr-xjjb/apex/apex-deploy.sh9
-rwxr-xr-xjjb/apex/apex-download-artifact.sh6
-rwxr-xr-xjjb/apex/apex-iso-verify.sh4
-rw-r--r--jjb/apex/apex-project-jobs.yaml7
-rwxr-xr-xjjb/apex/apex-upload-artifact.sh10
-rw-r--r--jjb/apex/apex-verify-jobs.yaml9
-rw-r--r--jjb/apex/apex.yaml328
-rw-r--r--jjb/apex/apex.yaml.j2121
-rw-r--r--jjb/apex/scenarios.yaml.hidden32
-rw-r--r--jjb/armband/armband-ci-jobs.yaml191
-rw-r--r--jjb/armband/armband-verify-jobs.yaml114
-rw-r--r--jjb/auto/auto.yaml2
-rw-r--r--jjb/barometer/barometer.yaml6
-rw-r--r--jjb/ci_gate_security/opnfv-ci-gate-security.yaml2
-rw-r--r--jjb/clover/clover-project.yaml8
-rw-r--r--jjb/compass4nfv/compass-ci-jobs.yaml114
-rw-r--r--jjb/compass4nfv/compass-dovetail-jobs.yaml4
-rw-r--r--jjb/compass4nfv/compass-project-jobs.yaml2
-rw-r--r--jjb/compass4nfv/compass-verify-jobs.yaml12
-rw-r--r--jjb/container4nfv/container4nfv-arm64.yaml12
-rw-r--r--jjb/container4nfv/container4nfv-project.yaml2
-rw-r--r--jjb/cperf/cperf-ci-jobs.yaml11
-rwxr-xr-xjjb/cperf/cperf-robot-netvirt-csit.sh5
-rw-r--r--jjb/daisy4nfv/daisy-daily-jobs.yaml4
-rw-r--r--jjb/daisy4nfv/daisy-project-jobs.yaml6
-rw-r--r--jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml4
-rw-r--r--jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml4
-rw-r--r--jjb/doctor/doctor.yaml89
-rw-r--r--jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml9
-rw-r--r--jjb/dovetail/dovetail-ci-jobs.yaml4
-rwxr-xr-xjjb/dovetail/dovetail-run.sh155
-rw-r--r--jjb/fuel/fuel-daily-jobs.yaml401
-rwxr-xr-xjjb/fuel/fuel-deploy.sh84
-rw-r--r--jjb/fuel/fuel-docker-jobs.yaml8
-rwxr-xr-xjjb/fuel/fuel-download-artifact.sh63
-rwxr-xr-xjjb/fuel/fuel-lab-reconfig.sh80
-rw-r--r--jjb/fuel/fuel-project-jobs.yaml60
-rwxr-xr-xjjb/fuel/fuel-set-scenario.sh54
-rw-r--r--jjb/fuel/fuel-verify-jobs.yaml173
-rw-r--r--jjb/fuel/fuel-weekly-jobs.yaml189
-rwxr-xr-xjjb/functest/functest-alpine.sh25
-rw-r--r--jjb/functest/functest-daily-jobs.yaml34
-rw-r--r--jjb/functest/functest-docker.yaml14
-rw-r--r--jjb/functest/functest-kubernetes-docker.yaml10
-rw-r--r--jjb/functest/functest-kubernetes-project-jobs.yaml8
-rw-r--r--jjb/functest/functest-project-jobs.yaml8
-rw-r--r--jjb/functest/xtesting-docker.yaml10
-rw-r--r--jjb/functest/xtesting-project-jobs.yaml8
m---------jjb/global-jjb0
l---------jjb/global-jjb/jjb1
l---------jjb/global-jjb/shell1
-rw-r--r--jjb/global/basic-jobs.yaml2
-rw-r--r--jjb/global/releng-defaults.yaml2
-rw-r--r--jjb/global/releng-macros.yaml4
-rw-r--r--jjb/global/slave-params.yaml159
-rw-r--r--jjb/joid/joid-daily-jobs.yaml4
-rw-r--r--jjb/joid/joid-verify-jobs.yaml4
-rwxr-xr-xjjb/openci/create-ane.sh26
-rwxr-xr-xjjb/openci/create-ape.sh47
-rwxr-xr-xjjb/openci/create-cde.sh36
-rwxr-xr-xjjb/openci/create-clme.sh37
-rw-r--r--jjb/openci/openci-odl-daily-jobs.yaml24
-rw-r--r--jjb/openci/openci-onap-daily-jobs.yaml24
-rw-r--r--jjb/openci/openci-opnfv-daily-jobs.yaml70
-rw-r--r--jjb/opnfvdocs/docs-rtd.yaml14
-rw-r--r--jjb/ovn4nfv/ovn4nfv-project-jobs.yaml6
-rw-r--r--jjb/ovn4nfv/ovn4nfv-rtd-jobs.yaml12
-rw-r--r--jjb/releng/compass4nfv-docker.yaml2
-rw-r--r--jjb/releng/opnfv-docker-arm.yaml6
-rw-r--r--jjb/releng/opnfv-docker.yaml41
-rw-r--r--jjb/releng/opnfv-utils.yaml3
-rw-r--r--jjb/releng/releng-release-create-branch.sh15
-rw-r--r--jjb/releng/releng-release-create-venv.sh2
-rw-r--r--jjb/releng/releng-release-jobs.yaml4
-rw-r--r--jjb/releng/testresults-automate.yaml2
-rw-r--r--jjb/sfc/sfc-project-jobs.yaml6
-rw-r--r--jjb/stor4nfv/stor4nfv-jobs.yaml12
-rw-r--r--jjb/vswitchperf/vswitchperf.yaml6
-rw-r--r--jjb/xci/bifrost-periodic-jobs.yaml4
-rw-r--r--jjb/xci/bifrost-verify-jobs.yaml4
-rw-r--r--jjb/xci/osa-periodic-jobs.yaml6
-rw-r--r--jjb/xci/xci-daily-jobs.yaml37
-rw-r--r--jjb/xci/xci-merge-jobs.yaml16
-rwxr-xr-xjjb/xci/xci-run-functest.sh4
-rw-r--r--jjb/xci/xci-verify-jobs.yaml22
-rw-r--r--jjb/yardstick/yardstick-daily-jobs.yaml19
-rwxr-xr-xjjb/yardstick/yardstick-daily.sh4
-rw-r--r--jjb/yardstick/yardstick-project-jobs.yaml10
-rw-r--r--modules/opnfv/deployment/example.py10
-rw-r--r--modules/opnfv/deployment/factory.py2
-rw-r--r--modules/opnfv/deployment/fuel/adapter.py230
-rw-r--r--modules/opnfv/deployment/manager.py6
-rw-r--r--modules/opnfv/utils/Credentials.py11
-rw-r--r--modules/opnfv/utils/ssh_utils.py3
-rw-r--r--modules/requirements.txt1
-rw-r--r--releases/gambia/apex.yaml18
-rw-r--r--releases/gambia/armband.yaml17
-rw-r--r--releases/gambia/auto.yaml9
-rw-r--r--releases/gambia/barometer.yaml9
-rw-r--r--releases/gambia/clover.yaml9
-rw-r--r--releases/gambia/compass4nfv.yaml12
-rw-r--r--releases/gambia/doctor.yaml22
-rw-r--r--releases/gambia/fuel.yaml17
-rw-r--r--releases/gambia/functest.yaml15
-rw-r--r--releases/gambia/ipv6.yaml17
-rw-r--r--releases/gambia/ovn4nfv.yaml9
-rw-r--r--releases/gambia/samplevnf.yaml9
-rw-r--r--releases/gambia/sandbox.yaml9
-rw-r--r--releases/gambia/sdnvpn.yaml9
-rw-r--r--releases/gambia/sfc.yaml9
-rw-r--r--releases/gambia/stor4nfv.yaml9
-rw-r--r--releases/gambia/yardstick.yaml9
-rw-r--r--releases/hunter/functest.yaml15
-rw-r--r--releases/scripts/create_branch.py143
-rw-r--r--releases/scripts/repos.py31
-rw-r--r--tox.ini2
120 files changed, 2165 insertions, 1726 deletions
diff --git a/.gitmodules b/.gitmodules
index 07b28be4b..9f7b77825 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
[submodule "jjb/global-jjb"]
- path = jjb/global-jjb
+ path = global-jjb
url = https://github.com/lfit/releng-global-jjb
diff --git a/global-jjb b/global-jjb
new file mode 160000
+Subproject 18bb0a40f9ba00fd8417b32fbde9593b6d968c5
diff --git a/jjb/3rd_party_ci/odl-netvirt.yaml b/jjb/3rd_party_ci/odl-netvirt.yaml
index b810a2998..15d28486f 100644
--- a/jjb/3rd_party_ci/odl-netvirt.yaml
+++ b/jjb/3rd_party_ci/odl-netvirt.yaml
@@ -63,7 +63,7 @@
- 'odl-netvirt-verify-virtual-install-netvirt-.*'
- 'functest-netvirt-virtual-suite-.*'
- 'odl-netvirt-verify-virtual-postprocess-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git:
url: https://gerrit.opnfv.org/gerrit/apex
@@ -224,7 +224,7 @@
- 'odl-netvirt-verify-virtual-install-netvirt-.*'
- 'functest-netvirt-virtual-suite-.*'
- 'odl-netvirt-verify-virtual-postprocess-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- ssh-agent-wrapper
diff --git a/jjb/apex/apex-build.sh b/jjb/apex/apex-build.sh
index 09aa716be..618d18110 100755
--- a/jjb/apex/apex-build.sh
+++ b/jjb/apex/apex-build.sh
@@ -12,7 +12,7 @@ echo
if echo $ARTIFACT_VERSION | grep "dev" 1> /dev/null; then
GERRIT_PATCHSET_NUMBER=$(echo $GERRIT_REFSPEC | grep -Eo '[0-9]+$')
export OPNFV_ARTIFACT_VERSION="dev${GERRIT_CHANGE_NUMBER}_${GERRIT_PATCHSET_NUMBER}"
- if [ "$BRANCH" == 'master' ]; then
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
# build rpm
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --rpms"
else
@@ -23,14 +23,14 @@ elif echo $BUILD_TAG | grep "csit" 1> /dev/null; then
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
elif [ "$ARTIFACT_VERSION" == "daily" ]; then
export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
- if [ "$BRANCH" == 'master' ]; then
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --rpms"
else
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --iso"
fi
else
export OPNFV_ARTIFACT_VERSION=${ARTIFACT_VERSION}
- if [ "$BRANCH" == 'master' ]; then
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --rpms"
else
export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --iso"
@@ -59,7 +59,7 @@ echo "Cache Directory Contents:"
echo "-------------------------"
ls -al $CACHE_DIRECTORY
-if [[ "$BUILD_ARGS" =~ '--iso' && "$BRANCH" != 'master' ]]; then
+if [[ "$BUILD_ARGS" =~ '--iso' && "$BRANCH" == 'stable/fraser' ]]; then
mkdir -p /tmp/apex-iso/
rm -f /tmp/apex-iso/*.iso
cp -f $BUILD_DIRECTORY/../.build/release/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso /tmp/apex-iso/
@@ -67,7 +67,7 @@ fi
if ! echo $ARTIFACT_VERSION | grep "dev" 1> /dev/null; then
echo "Writing opnfv.properties file"
- if [ "$BRANCH" != master ]; then
+ if [ "$BRANCH" == 'stable/fraser' ]; then
# save information regarding artifact into file
(
echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
diff --git a/jjb/apex/apex-deploy.sh b/jjb/apex/apex-deploy.sh
index 441bf9059..1bc727d32 100755
--- a/jjb/apex/apex-deploy.sh
+++ b/jjb/apex/apex-deploy.sh
@@ -29,7 +29,7 @@ if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
# we want to use that built in mechanism to avoid re-downloading every job
# so we use a dedicated folder to hold the upstream cache
UPSTREAM_CACHE=$HOME/upstream_cache
- if [ "$BRANCH" == 'master' ]; then
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
mkdir -p ${UPSTREAM_CACHE}
RESOURCES=$UPSTREAM_CACHE
else
@@ -55,7 +55,7 @@ else
# set to use different directory here because upon RPM removal this
# directory will be wiped in daily
UPSTREAM_CACHE=$HOME/upstream_cache
- if [ "$BRANCH" == 'master' ]; then
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
mkdir -p ${UPSTREAM_CACHE}
RESOURCES=$UPSTREAM_CACHE
else
@@ -161,11 +161,6 @@ else
DEPLOY_CMD="${DEPLOY_CMD} -i ${INVENTORY_FILE}"
fi
-if [[ "$BRANCH" == "master" ]]; then
- echo "Upstream deployment detected"
- DEPLOY_CMD="${DEPLOY_CMD} --upstream"
-fi
-
if [ "$IPV6_FLAG" == "True" ]; then
NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_v6.yaml"
elif [[ "$PROMOTE" == "True" ]]; then
diff --git a/jjb/apex/apex-download-artifact.sh b/jjb/apex/apex-download-artifact.sh
index e1e51b3b6..bc3311d68 100755
--- a/jjb/apex/apex-download-artifact.sh
+++ b/jjb/apex/apex-download-artifact.sh
@@ -18,8 +18,8 @@ else
fi
if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
- if [ "$BRANCH" == 'master' ]; then
- echo "Skipping download of artifacts for master branch"
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
+ echo "Skipping download of artifacts for master/gambia branch"
else
# dev build
GERRIT_PATCHSET_NUMBER=$(echo $GERRIT_REFSPEC | grep -Eo '[0-9]+$')
@@ -47,7 +47,7 @@ else
RPM_LIST=$(basename $OPNFV_RPM_URL)
# find version of RPM
VERSION_EXTENSION=$(echo $(basename $RPM_LIST) | grep -Eo '[0-9]+\.[0-9]+-([0-9]{8}|[a-z]+-[0-9]\.[0-9]+)')
- if [ "$BRANCH" != 'master' ]; then
+ if [ "$BRANCH" == 'stable/fraser' ]; then
# build RPM List which already includes base Apex RPM
RPM_LIST+=" opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm"
RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm"
diff --git a/jjb/apex/apex-iso-verify.sh b/jjb/apex/apex-iso-verify.sh
index f34937619..c29d7cb32 100755
--- a/jjb/apex/apex-iso-verify.sh
+++ b/jjb/apex/apex-iso-verify.sh
@@ -8,8 +8,8 @@ echo "Starting the Apex iso verify."
echo "--------------------------------------------------------"
echo
-if [ "$BRANCH" == 'master' ]; then
- echo "Skipping Apex iso verify for master branch"
+if [ "$BRANCH" != 'stable/fraser' ]; then
+ echo "Skipping Apex iso verify for ${BRANCH} branch"
exit 0
fi
diff --git a/jjb/apex/apex-project-jobs.yaml b/jjb/apex/apex-project-jobs.yaml
index 700ff60e8..42567ea1b 100644
--- a/jjb/apex/apex-project-jobs.yaml
+++ b/jjb/apex/apex-project-jobs.yaml
@@ -9,6 +9,11 @@
gs-pathname: ''
concurrent-builds: 3
disabled: false
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ concurrent-builds: 3
+ disabled: false
- fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
@@ -68,7 +73,7 @@
option: 'project'
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify-iso-{stream}'
diff --git a/jjb/apex/apex-upload-artifact.sh b/jjb/apex/apex-upload-artifact.sh
index 5c777a824..07198b188 100755
--- a/jjb/apex/apex-upload-artifact.sh
+++ b/jjb/apex/apex-upload-artifact.sh
@@ -114,8 +114,8 @@ fi
if [ "$ARTIFACT_TYPE" == 'snapshot' ]; then
uploadsnap
elif [ "$ARTIFACT_TYPE" == 'iso' ]; then
- if [[ "$ARTIFACT_VERSION" =~ dev || "$BRANCH" == 'master' ]]; then
- echo "Skipping ISO artifact upload for ${ARTIFACT_TYPE} due to dev/master build"
+ if [[ "$ARTIFACT_VERSION" =~ dev || "$BRANCH" != 'stable/fraser' ]]; then
+ echo "Skipping ISO artifact upload for ${ARTIFACT_TYPE} due to dev/${BRANCH} build"
exit 0
fi
if [[ -n "$SIGN_ARTIFACT" && "$SIGN_ARTIFACT" == "true" ]]; then
@@ -124,8 +124,8 @@ elif [ "$ARTIFACT_TYPE" == 'iso' ]; then
uploadiso
elif [ "$ARTIFACT_TYPE" == 'rpm' ]; then
if [[ "$ARTIFACT_VERSION" =~ dev ]]; then
- if [ "$BRANCH" == 'master' ]; then
- echo "will not upload artifacts, master uses upstream"
+ if [[ "$BRANCH" != 'stable/fraser' ]]; then
+ echo "will not upload artifacts, ${BRANCH} uses upstream"
ARTIFACT_TYPE=none
else
echo "dev build detected, will upload image tarball"
@@ -138,7 +138,7 @@ elif [ "$ARTIFACT_TYPE" == 'rpm' ]; then
RPM_LIST=$RPM_INSTALL_PATH/$(basename $OPNFV_RPM_URL)
SRPM_INSTALL_PATH=$BUILD_DIRECTORY
SRPM_LIST=$SRPM_INSTALL_PATH/$(basename $OPNFV_SRPM_URL)
- if [ "$BRANCH" != 'master' ]; then
+ if [[ "$BRANCH" == 'stable/fraser' ]]; then
VERSION_EXTENSION=$(echo $(basename $OPNFV_RPM_URL) | sed 's/opnfv-apex-//')
RPM_LIST+=" ${RPM_INSTALL_PATH}/opnfv-apex-undercloud-${VERSION_EXTENSION}"
RPM_LIST+=" ${RPM_INSTALL_PATH}/python34-opnfv-apex-${VERSION_EXTENSION}"
diff --git a/jjb/apex/apex-verify-jobs.yaml b/jjb/apex/apex-verify-jobs.yaml
index f0f99fc78..854aefc7f 100644
--- a/jjb/apex/apex-verify-jobs.yaml
+++ b/jjb/apex/apex-verify-jobs.yaml
@@ -12,6 +12,11 @@
gs-pathname: ''
verify-scenario: 'os-nosdn-nofeature-noha'
disabled: false
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ verify-scenario: 'os-nosdn-nofeature-ha'
+ disabled: false
- fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
@@ -196,7 +201,7 @@
option: 'project'
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-.*-promote.*'
builders:
@@ -311,7 +316,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-virtual.*'
diff --git a/jjb/apex/apex.yaml b/jjb/apex/apex.yaml
index 82f766e20..0d555c551 100644
--- a/jjb/apex/apex.yaml
+++ b/jjb/apex/apex.yaml
@@ -30,6 +30,16 @@
scenario_stream: 'master'
disable_daily: false
disable_promote: false
+ - gambia: &gambia
+ branch: 'stable/gambia'
+ gs-pathname: '/gambia'
+ build-slave: 'apex-build-master'
+ virtual-slave: 'apex-virtual-master'
+ baremetal-slave: 'apex-baremetal-master'
+ verify-scenario: 'os-nosdn-nofeature-ha'
+ scenario_stream: 'gambia'
+ disable_daily: false
+ disable_promote: false
- fraser: &fraser
branch: 'stable/fraser'
gs-pathname: '/fraser'
@@ -68,6 +78,30 @@
- 'os-odl-bgpvpn-ha':
<<: *fraser
- 'os-nosdn-nofeature-noha':
+ <<: *gambia
+ - 'os-nosdn-nofeature-ha':
+ <<: *gambia
+ - 'os-nosdn-nofeature-ha-ipv6':
+ <<: *gambia
+ - 'os-odl-nofeature-noha':
+ <<: *gambia
+ - 'os-odl-nofeature-ha':
+ <<: *gambia
+ - 'k8s-nosdn-nofeature-noha':
+ <<: *gambia
+ - 'os-odl-bgpvpn-ha':
+ <<: *gambia
+ - 'os-odl-bgpvpn-noha':
+ <<: *gambia
+ - 'os-odl-sfc-ha':
+ <<: *gambia
+ - 'os-odl-sfc-noha':
+ <<: *gambia
+ - 'os-nosdn-calipso-noha':
+ <<: *gambia
+ - 'os-ovn-nofeature-ha':
+ <<: *gambia
+ - 'os-nosdn-nofeature-noha':
<<: *danube
- 'os-nosdn-nofeature-ha':
<<: *danube
@@ -129,15 +163,15 @@
<<: *master
- 'os-odl-nofeature-ha':
<<: *master
- - 'os-nosdn-queens-noha':
+ - 'os-nosdn-rocky-noha':
<<: *master
- - 'os-nosdn-queens-ha':
+ - 'os-nosdn-rocky-ha':
<<: *master
- - 'os-nosdn-queens-ha-ipv6':
+ - 'os-nosdn-rocky-ha-ipv6':
<<: *master
- - 'os-odl-queens-noha':
+ - 'os-odl-rocky-noha':
<<: *master
- - 'os-odl-queens-ha':
+ - 'os-odl-rocky-ha':
<<: *master
- 'k8s-nosdn-nofeature-noha':
<<: *master
@@ -153,9 +187,17 @@
<<: *master
- 'os-odl-sfc-noha':
<<: *master
- - 'os-odl-sfc_queens-ha':
+ - 'os-odl-sfc_rocky-ha':
+ <<: *master
+ - 'os-odl-sfc_rocky-noha':
+ <<: *master
+ - 'os-nosdn-calipso-noha':
+ <<: *master
+ - 'os-nosdn-calipso_rocky-noha':
+ <<: *master
+ - 'os-ovn-nofeature-ha':
<<: *master
- - 'os-odl-sfc_queens-noha':
+ - 'os-ovn-rocky-ha':
<<: *master
- 'os-nosdn-nofeature-noha':
<<: *euphrates
@@ -191,23 +233,21 @@
<<: *euphrates
- 'os-odl-sfc-ha':
<<: *euphrates
- - 'os-nosdn-calipso-noha':
- <<: *euphrates
platform:
- 'baremetal'
- 'virtual'
os_version:
- - 'pike':
- os_scenario: 'pike'
- odl_branch: 'stable/carbon'
- 'queens':
os_scenario: 'queens'
odl_branch: 'stable/oxygen'
+ - 'rocky':
+ os_scenario: 'rocky'
+ odl_branch: 'stable/oxygen'
- 'master':
os_scenario: 'nofeature'
- odl_branch: 'stable/oxygen'
+ odl_branch: 'stable/fluorine'
topology:
- 'noha'
@@ -267,7 +307,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: false
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-deploy.*'
- throttle:
@@ -344,7 +384,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-deploy.*'
- 'functest.*'
@@ -400,7 +440,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-runner.*'
- 'apex-run.*'
@@ -504,7 +544,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -616,7 +656,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -731,7 +771,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-daily.*'
@@ -858,7 +898,7 @@
properties:
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -871,7 +911,7 @@
option: 'project'
triggers:
- - timed: '0 12 * * 0'
+ - '{stream}-{os_version}'
builders:
- multijob:
@@ -986,7 +1026,7 @@
properties:
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-deploy.*'
@@ -1092,7 +1132,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -1161,7 +1201,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -1272,6 +1312,111 @@
abort-all-job: true
git-revision: false
+# gambia Builder
+- builder:
+ name: apex-builder-gambia
+ builders:
+ - multijob:
+ name: Baremetal Deploy and Test Phase
+ condition: SUCCESSFUL
+ projects:
+ - name: 'apex-os-nosdn-nofeature-noha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-nofeature-ha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-nofeature-ha-ipv6-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-nofeature-noha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-nofeature-ha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-k8s-nosdn-nofeature-noha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-bgpvpn-ha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-bgpvpn-noha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-sfc-ha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-sfc-noha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-calipso-noha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-ovn-nofeature-ha-baremetal-gambia'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+
# danube Builder
- builder:
name: apex-builder-danube
@@ -1537,7 +1682,7 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-nosdn-queens-noha-baremetal-master'
+ - name: 'apex-os-nosdn-rocky-noha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1545,7 +1690,7 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-nosdn-queens-ha-baremetal-master'
+ - name: 'apex-os-nosdn-rocky-ha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1553,7 +1698,7 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-nosdn-queens-ha-ipv6-baremetal-master'
+ - name: 'apex-os-nosdn-rocky-ha-ipv6-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1561,7 +1706,7 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-queens-noha-baremetal-master'
+ - name: 'apex-os-odl-rocky-noha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1569,7 +1714,7 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-queens-ha-baremetal-master'
+ - name: 'apex-os-odl-rocky-ha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1633,7 +1778,31 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-sfc_queens-ha-baremetal-master'
+ - name: 'apex-os-odl-sfc_rocky-ha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-odl-sfc_rocky-noha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-calipso-noha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-nosdn-calipso_rocky-noha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1641,7 +1810,15 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-odl-sfc_queens-noha-baremetal-master'
+ - name: 'apex-os-ovn-nofeature-ha-baremetal-master'
+ node-parameters: false
+ current-parameters: false
+ predefined-parameters: |
+ OPNFV_CLEAN=yes
+ kill-phase-on: NEVER
+ abort-all-job: true
+ git-revision: false
+ - name: 'apex-os-ovn-rocky-ha-baremetal-master'
node-parameters: false
current-parameters: false
predefined-parameters: |
@@ -1794,14 +1971,6 @@
kill-phase-on: NEVER
abort-all-job: true
git-revision: false
- - name: 'apex-os-nosdn-calipso-noha-baremetal-euphrates'
- node-parameters: false
- current-parameters: false
- predefined-parameters: |
- OPNFV_CLEAN=yes
- kill-phase-on: NEVER
- abort-all-job: true
- git-revision: false
- builder:
name: 'apex-upload-artifact'
builders:
@@ -1828,6 +1997,7 @@
#######################
# trigger macros
+# timed is in format: 'min hour daymonth month dayweek'
########################
- trigger:
name: 'apex-master'
@@ -1835,6 +2005,11 @@
- timed: '0 0 1-31/2 * *'
- trigger:
+ name: 'apex-gambia'
+ triggers:
+ - timed: '0 4 2-30/2 * *'
+
+- trigger:
name: 'apex-fraser'
triggers:
- timed: '0 0 2-30/2 * *'
@@ -1848,3 +2023,78 @@
name: 'apex-danube'
triggers:
- timed: '0 3 1 1 7'
+
+- trigger:
+ name: 'master-master'
+ triggers:
+ - timed: '0 12 * * *'
+
+- trigger:
+ name: 'master-rocky'
+ triggers:
+ - timed: '0 12 * * *'
+
+- trigger:
+ name: 'master-queens'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'gambia-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'gambia-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'gambia-queens'
+ triggers:
+ - timed: '0 12 * * *'
+
+- trigger:
+ name: 'fraser-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'fraser-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'fraser-queens'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'euphrates-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'euphrates-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'euphrates-queens'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'danube-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'danube-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'danube-queens'
+ triggers:
+ - timed: ''
diff --git a/jjb/apex/apex.yaml.j2 b/jjb/apex/apex.yaml.j2
index 31e3bd8f3..5f024965c 100644
--- a/jjb/apex/apex.yaml.j2
+++ b/jjb/apex/apex.yaml.j2
@@ -30,6 +30,16 @@
scenario_stream: 'master'
disable_daily: false
disable_promote: false
+ - gambia: &gambia
+ branch: 'stable/gambia'
+ gs-pathname: '/gambia'
+ build-slave: 'apex-build-master'
+ virtual-slave: 'apex-virtual-master'
+ baremetal-slave: 'apex-baremetal-master'
+ verify-scenario: 'os-nosdn-nofeature-ha'
+ scenario_stream: 'gambia'
+ disable_daily: false
+ disable_promote: false
- fraser: &fraser
branch: 'stable/fraser'
gs-pathname: '/fraser'
@@ -75,15 +85,15 @@
- 'virtual'
os_version:
- - 'pike':
- os_scenario: 'pike'
- odl_branch: 'stable/carbon'
- 'queens':
os_scenario: 'queens'
odl_branch: 'stable/oxygen'
+ - 'rocky':
+ os_scenario: 'rocky'
+ odl_branch: 'stable/oxygen'
- 'master':
os_scenario: 'nofeature'
- odl_branch: 'stable/oxygen'
+ odl_branch: 'stable/fluorine'
topology:
- 'noha'
@@ -143,7 +153,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: false
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-deploy.*'
- throttle:
@@ -220,7 +230,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-deploy.*'
- 'functest.*'
@@ -276,7 +286,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-runner.*'
- 'apex-run.*'
@@ -380,7 +390,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -492,7 +502,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -607,7 +617,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-daily.*'
@@ -734,7 +744,7 @@
properties:
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -747,7 +757,7 @@
option: 'project'
triggers:
- - timed: '0 12 * * 0'
+ - '{stream}-{os_version}'
builders:
- multijob:
@@ -862,7 +872,7 @@
properties:
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-deploy.*'
@@ -968,7 +978,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -1037,7 +1047,7 @@
- logrotate-default
- build-blocker:
use-build-blocker: true
- block-level: 'NODE'
+ blocking-level: 'NODE'
blocking-jobs:
- 'apex-verify.*'
- 'apex-runner.*'
@@ -1169,6 +1179,7 @@
#######################
# trigger macros
+# timed is in format: 'min hour daymonth month dayweek'
########################
- trigger:
name: 'apex-master'
@@ -1176,6 +1187,11 @@
- timed: '0 0 1-31/2 * *'
- trigger:
+ name: 'apex-gambia'
+ triggers:
+ - timed: '0 4 2-30/2 * *'
+
+- trigger:
name: 'apex-fraser'
triggers:
- timed: '0 0 2-30/2 * *'
@@ -1189,3 +1205,78 @@
name: 'apex-danube'
triggers:
- timed: '0 3 1 1 7'
+
+- trigger:
+ name: 'master-master'
+ triggers:
+ - timed: '0 12 * * *'
+
+- trigger:
+ name: 'master-rocky'
+ triggers:
+ - timed: '0 12 * * *'
+
+- trigger:
+ name: 'master-queens'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'gambia-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'gambia-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'gambia-queens'
+ triggers:
+ - timed: '0 12 * * *'
+
+- trigger:
+ name: 'fraser-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'fraser-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'fraser-queens'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'euphrates-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'euphrates-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'euphrates-queens'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'danube-master'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'danube-rocky'
+ triggers:
+ - timed: ''
+
+- trigger:
+ name: 'danube-queens'
+ triggers:
+ - timed: ''
diff --git a/jjb/apex/scenarios.yaml.hidden b/jjb/apex/scenarios.yaml.hidden
index b032613a3..a221699f1 100644
--- a/jjb/apex/scenarios.yaml.hidden
+++ b/jjb/apex/scenarios.yaml.hidden
@@ -4,11 +4,11 @@ master:
- 'os-nosdn-nofeature-ha-ipv6'
- 'os-odl-nofeature-noha'
- 'os-odl-nofeature-ha'
- - 'os-nosdn-queens-noha'
- - 'os-nosdn-queens-ha'
- - 'os-nosdn-queens-ha-ipv6'
- - 'os-odl-queens-noha'
- - 'os-odl-queens-ha'
+ - 'os-nosdn-rocky-noha'
+ - 'os-nosdn-rocky-ha'
+ - 'os-nosdn-rocky-ha-ipv6'
+ - 'os-odl-rocky-noha'
+ - 'os-odl-rocky-ha'
- 'k8s-nosdn-nofeature-noha'
- 'os-odl-bgpvpn-ha'
- 'os-odl-bgpvpn-noha'
@@ -16,8 +16,25 @@ master:
- 'os-odl-bgpvpn_queens-noha'
- 'os-odl-sfc-ha'
- 'os-odl-sfc-noha'
- - 'os-odl-sfc_queens-ha'
- - 'os-odl-sfc_queens-noha'
+ - 'os-odl-sfc_rocky-ha'
+ - 'os-odl-sfc_rocky-noha'
+ - 'os-nosdn-calipso-noha'
+ - 'os-nosdn-calipso_rocky-noha'
+ - 'os-ovn-nofeature-ha'
+ - 'os-ovn-rocky-ha'
+gambia:
+ - 'os-nosdn-nofeature-noha'
+ - 'os-nosdn-nofeature-ha'
+ - 'os-nosdn-nofeature-ha-ipv6'
+ - 'os-odl-nofeature-noha'
+ - 'os-odl-nofeature-ha'
+ - 'k8s-nosdn-nofeature-noha'
+ - 'os-odl-bgpvpn-ha'
+ - 'os-odl-bgpvpn-noha'
+ - 'os-odl-sfc-ha'
+ - 'os-odl-sfc-noha'
+ - 'os-nosdn-calipso-noha'
+ - 'os-ovn-nofeature-ha'
fraser:
- 'os-nosdn-nofeature-ha'
- 'os-odl-bgpvpn-ha'
@@ -39,7 +56,6 @@ euphrates:
- 'os-nosdn-kvm_ovs_dpdk-ha'
- 'os-odl-sfc-noha'
- 'os-odl-sfc-ha'
- - 'os-nosdn-calipso-noha'
danube:
- 'os-nosdn-nofeature-noha'
- 'os-nosdn-nofeature-ha'
diff --git a/jjb/armband/armband-ci-jobs.yaml b/jjb/armband/armband-ci-jobs.yaml
index 959115ac2..2ab1a6d53 100644
--- a/jjb/armband/armband-ci-jobs.yaml
+++ b/jjb/armband/armband-ci-jobs.yaml
@@ -15,6 +15,11 @@
fraser: &fraser
stream: fraser
branch: 'stable/{stream}'
+ disabled: false
+ gs-pathname: '/{stream}'
+ gambia: &gambia
+ stream: gambia
+ branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
# -------------------------------
@@ -33,16 +38,23 @@
# -------------------------------
# CI POD's
# -------------------------------
- # fraser
- # -------------------------------
+ # yamllint disable rule:key-duplicates
pod:
- # yamllint disable rule:key-duplicates
+ # -------------------------------
+ # fraser
+ # -------------------------------
- armband-baremetal:
<<: *baremetal
<<: *fraser
+ # -------------------------------
+ # gambia
+ # -------------------------------
+ - armband-baremetal:
+ <<: *baremetal
+ <<: *gambia
- armband-virtual:
<<: *virtual
- <<: *fraser
+ <<: *gambia
# -------------------------------
# master
# -------------------------------
@@ -74,6 +86,11 @@
auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
exclude:
+ # Dovetail (and only it) should run against Fraser HA baremetal scenarios
+ - scenario: os-nosdn-nofeature-noha
+ stream: fraser
+ - scenario: os-ovn-nofeature-ha
+ stream: fraser
- scenario: os-nosdn-vpp-ha
stream: fraser
@@ -103,7 +120,7 @@
blocking-jobs:
- '{installer}-os-.*?-{pod}-daily-.*'
- 'armband-verify-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
@@ -132,28 +149,42 @@
DEPLOY_SCENARIO={scenario}
same-node: true
block: true
- - trigger-builds:
- - project: 'functest-{installer}-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- same-node: true
- block: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- - trigger-builds:
- - project: 'yardstick-{installer}-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
+ - conditional-step:
+ condition-kind: not
+ condition-operand:
+ condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
+ steps:
+ - trigger-builds:
+ - project: 'functest-{installer}-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ same-node: true
+ block: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - conditional-step:
+ condition-kind: not
+ condition-operand:
+ condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
+ steps:
+ - trigger-builds:
+ - project: 'yardstick-{installer}-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
# 1.here the stream means the SUT stream, dovetail stream is defined in its own job
# 2.testsuite proposed_tests here is for new test cases planning to add into OVP
# 3.run proposed_tests on Monday, Wednesday and Friday against ha scenario
@@ -167,11 +198,9 @@
- condition-kind: regex-match
regex: '.*-ha'
label: '{scenario}'
- - condition-kind: day-of-week
- day-selector: select-days
- days:
- SAT: true
- use-build-time: true
+ - condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
steps:
- trigger-builds:
- project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
@@ -190,11 +219,9 @@
- condition-kind: regex-match
regex: '.*-ha'
label: '{scenario}'
- - condition-kind: day-of-week
- day-selector: select-days
- days:
- SUN: true
- use-build-time: true
+ - condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
steps:
- trigger-builds:
- project: 'dovetail-{installer}-{pod}-default-{stream}'
@@ -208,24 +235,17 @@
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
# Armband uses Fuel's log collection project job, no need to duplicate
- - conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: regex-match
- regex: 'danube'
- label: '{stream}'
- steps:
- - trigger-builds:
- - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
- job-template:
name: '{installer}-deploy-{pod}-daily-{stream}'
@@ -244,7 +264,7 @@
blocking-jobs:
- '{installer}-deploy-{pod}-daily-{stream}'
- '{installer}-deploy-generic-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
@@ -290,7 +310,7 @@
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '10 1 * * 2,4,6,7'
+ - timed: '0 1 * * 2,7'
- trigger:
name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
triggers:
@@ -298,42 +318,61 @@
- trigger:
name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 1 * * 2,4,6,7'
+ - timed: '0 1 * * 4,6'
- trigger:
name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '10 1 * * 1,3,5'
+ - timed: '0 1 * * 1'
- trigger:
name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 1 * * 1,3,5'
+ - timed: '0 1 * * 3,5'
- trigger:
name: 'fuel-os-nosdn-vpp-ha-armband-baremetal-master-trigger'
triggers:
- timed: ''
# ---------------------------------------------------------------------
-# Enea Armband CI Baremetal Triggers running against fraser branch
+# Enea Armband CI Baremetal Triggers running against gambia branch
# ---------------------------------------------------------------------
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-gambia-trigger'
triggers:
- - timed: ''
+ - timed: '10 1 * * 1,3'
- trigger:
- name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl-nofeature-ha-armband-baremetal-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-baremetal-gambia-trigger'
triggers:
- - timed: ''
+ - timed: '10 1 * * 5,7'
+- trigger:
+ name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-gambia-trigger'
+ triggers:
+ - timed: '10 1 * * 2'
- trigger:
- name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-gambia-trigger'
+ triggers:
+ - timed: '10 1 * * 4,6'
+- trigger:
+ name: 'fuel-os-nosdn-vpp-ha-armband-baremetal-gambia-trigger'
triggers:
- timed: ''
+# -------------------------------------------------------------------
+# Enea Armband CI Baremetal Triggers running against fraser branch (for Dovetail)
+# -------------------------------------------------------------------
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-fraser-trigger'
+ triggers:
+ - timed: '5 13 * * 6,7'
+- trigger:
+ name: 'fuel-os-odl-nofeature-ha-armband-baremetal-fraser-trigger'
+ triggers:
+ - timed: '0 13 * * 6'
- trigger:
name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-fraser-trigger'
triggers:
- - timed: ''
+ - timed: '0 13 * * 7'
# --------------------------------------------------------------
# Enea Armband CI Virtual Triggers running against master branch
# --------------------------------------------------------------
@@ -362,25 +401,29 @@
triggers:
- timed: ''
# -------------------------------------------------------------------
-# Enea Armband CI Virtual Triggers running against fraser branch
+# Enea Armband CI Virtual Triggers running against gambia branch
# -------------------------------------------------------------------
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-gambia-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl-nofeature-ha-armband-virtual-fraser-trigger'
+ name: 'fuel-os-ovn-nofeature-ha-armband-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-ovn-nofeature-ha-armband-virtual-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-armband-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-ovs-ha-armband-virtual-fraser-trigger'
+ name: 'fuel-os-nosdn-vpp-ha-armband-virtual-gambia-trigger'
triggers:
- timed: ''
diff --git a/jjb/armband/armband-verify-jobs.yaml b/jjb/armband/armband-verify-jobs.yaml
index 6add90704..57d80aeac 100644
--- a/jjb/armband/armband-verify-jobs.yaml
+++ b/jjb/armband/armband-verify-jobs.yaml
@@ -4,7 +4,6 @@
project: 'armband'
- installer: 'fuel'
#####################################
# branch definitions
#####################################
@@ -13,30 +12,22 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser:
+ - gambia:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
#####################################
- # patch verification phases
- #####################################
- phase:
- - 'deploy-virtual':
- slave-label: 'armband-virtual'
- #####################################
# jobs
#####################################
jobs:
- 'armband-verify-{stream}'
- - 'armband-verify-{phase}-{stream}'
+
#####################################
# job templates
#####################################
- job-template:
name: 'armband-verify-{stream}'
- project-type: multijob
-
disabled: '{obj:disabled}'
concurrent: true
@@ -45,14 +36,8 @@
- logrotate-default
- throttle:
enabled: true
- max-total: 4
+ max-total: 2
option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'fuel-os-.*?-virtual-daily-.*'
- - 'armband-verify-.*'
- block-level: 'NODE'
scm:
- git-scm-gerrit
@@ -97,100 +82,19 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'armband-virtual-defaults':
- installer: '{installer}'
- - '{installer}-defaults':
- gs-pathname: '{gs-pathname}'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-ha'
+ - 'opnfv-build-ubuntu-arm-defaults'
builders:
- description-setter:
description: "Built on $NODE_NAME"
- - multijob:
- name: deploy-virtual
- condition: SUCCESSFUL
- projects:
- - name: 'armband-verify-deploy-virtual-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: true
- kill-phase-on: FAILURE
- abort-all-job: true
-
- - multijob:
- name: smoke-test
- condition: SUCCESSFUL
- projects:
- # Use Functest job definition from jjb/functest/functest-daily-jobs
- - name: 'functest-fuel-armband-virtual-suite-{stream}'
- current-parameters: false
- predefined-parameters: |
- FUNCTEST_MODE=tier
- FUNCTEST_TIER=healthcheck
- # Should be in sync with fuel-deploy.sh default scenario
- DEPLOY_SCENARIO=$DEPLOY_SCENARIO
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: true
- kill-phase-on: NEVER
- abort-all-job: true
-
-- job-template:
- name: 'armband-verify-{phase}-{stream}'
-
- disabled: '{obj:disabled}'
-
- concurrent: true
-
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 2
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'armband-verify-deploy-.*'
- block-level: 'NODE'
-
- scm:
- - git-scm-gerrit
+ - 'armband-verify-builder-macro'
- wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 360
- fail: true
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{slave-label}-defaults'
- - 'armband-virtual-defaults':
- installer: '{installer}'
- - '{installer}-defaults':
- gs-pathname: '{gs-pathname}'
-
- builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - '{project}-verify-{phase}-macro'
#####################################
# builder macros
#####################################
- builder:
- name: 'armband-verify-deploy-virtual-macro'
+ name: 'armband-verify-builder-macro'
builders:
- - shell:
- !include-raw: ../fuel/fuel-deploy.sh
+ - shell: |
+ #!/bin/bash
+ make fuel-patches-import
diff --git a/jjb/auto/auto.yaml b/jjb/auto/auto.yaml
index 62f6ec29d..58838d6f4 100644
--- a/jjb/auto/auto.yaml
+++ b/jjb/auto/auto.yaml
@@ -65,7 +65,7 @@
use-build-blocker: true
blocking-jobs:
- '{installer}-os-.*?-{pod}-auto-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
diff --git a/jjb/barometer/barometer.yaml b/jjb/barometer/barometer.yaml
index 92176207f..972848f3d 100644
--- a/jjb/barometer/barometer.yaml
+++ b/jjb/barometer/barometer.yaml
@@ -18,7 +18,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser: &fraser
+ - gambia: &gambia
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
@@ -32,7 +32,7 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - 'ericsson-build4-defaults'
scm:
- git-scm-gerrit
@@ -89,7 +89,7 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - 'ericsson-build4-defaults'
scm:
- git-scm
diff --git a/jjb/ci_gate_security/opnfv-ci-gate-security.yaml b/jjb/ci_gate_security/opnfv-ci-gate-security.yaml
index 2e500befb..365afdd30 100644
--- a/jjb/ci_gate_security/opnfv-ci-gate-security.yaml
+++ b/jjb/ci_gate_security/opnfv-ci-gate-security.yaml
@@ -126,6 +126,8 @@
name: SLAVE_LABEL
default: 'opnfv-build'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- project-parameter:
project: $GERRIT_PROJECT
branch: '{branch}'
diff --git a/jjb/clover/clover-project.yaml b/jjb/clover/clover-project.yaml
index 31eed8f14..4abbc0865 100644
--- a/jjb/clover/clover-project.yaml
+++ b/jjb/clover/clover-project.yaml
@@ -18,7 +18,11 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser: &fraser
+ - gambia:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ - fraser:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
@@ -122,7 +126,7 @@
blocking-jobs:
- 'clover-daily-deploy-.*?'
- 'container4nfv-daily-deploy-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- timeout:
diff --git a/jjb/compass4nfv/compass-ci-jobs.yaml b/jjb/compass4nfv/compass-ci-jobs.yaml
index e5775b2d5..9dc80748d 100644
--- a/jjb/compass4nfv/compass-ci-jobs.yaml
+++ b/jjb/compass4nfv/compass-ci-jobs.yaml
@@ -13,14 +13,14 @@
gs-pathname: ''
ppa-pathname: '/{stream}'
disabled: false
- openstack-version: pike
- fraser: &fraser
- stream: fraser
+ openstack-version: queens
+ gambia: &gambia
+ stream: gambia
branch: 'stable/{stream}'
disabled: false
gs-pathname: '/{stream}'
ppa-pathname: '/{stream}'
- openstack-version: pike
+ openstack-version: queens
danube: &danube
stream: danube
branch: 'stable/{stream}'
@@ -45,11 +45,11 @@
- baremetal:
slave-label: compass-baremetal-branch
os-version: 'xenial'
- <<: *fraser
+ <<: *gambia
- virtual:
slave-label: compass-virtual-branch
os-version: 'xenial'
- <<: *fraser
+ <<: *gambia
# -------------------------------
# master
# -------------------------------
@@ -162,7 +162,7 @@
- 'compass-os-.*?-baremetal-daily-.*?'
- 'compass-k8-.*?-baremetal-daily-.*?'
- 'compass-verify-[^-]*-[^-]*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- fix-workspace-permissions
@@ -351,7 +351,7 @@
blocking-jobs:
- 'compass-deploy-{pod}-daily-.*?'
- 'compass-verify-deploy-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
@@ -389,7 +389,7 @@
!include-raw-escape: ./compass-deploy.sh
- conditional-step:
condition-kind: regex-match
- regex: (danube|fraser)
+ regex: (danube|gambia)
label: '{stream}'
steps:
- shell:
@@ -767,98 +767,98 @@
- timed: ''
# -------------------
-# ha-baremetal-fraser
+# ha-baremetal-gambia
# -------------------
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 1 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-openo-ha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-openo-ha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-baremetal-fraser-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 21 2-30/2 * *'
- trigger:
- name: 'compass-os-onos-nofeature-ha-baremetal-fraser-trigger'
+ name: 'compass-os-onos-nofeature-ha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-ocl-nofeature-ha-baremetal-fraser-trigger'
+ name: 'compass-os-ocl-nofeature-ha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-sfc-ha-baremetal-fraser-trigger'
+ name: 'compass-os-onos-sfc-ha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-moon-ha-baremetal-fraser-trigger'
+ name: 'compass-os-odl_l2-moon-ha-baremetal-gambia-trigger'
triggers:
- timed: '' # '0 5 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-kvm-ha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-kvm-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 13 2-30/2 * *'
- trigger:
- name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 9 1-29/2 * *'
- trigger:
- name: 'compass-k8-nosdn-nofeature-ha-baremetal-fraser-trigger'
+ name: 'compass-k8-nosdn-nofeature-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 5 1-29/2 * *'
- trigger:
- name: 'compass-os-odl-sfc-ha-baremetal-fraser-trigger'
+ name: 'compass-os-odl-sfc-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 17 2-30/2 * *'
- trigger:
- name: 'compass-os-nosdn-bar-ha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-bar-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 21 1-29/2 * *'
- trigger:
- name: 'compass-k8-nosdn-stor4nfv-ha-baremetal-fraser-trigger'
+ name: 'compass-k8-nosdn-stor4nfv-ha-baremetal-gambia-trigger'
triggers:
- timed: '0 7 2-30/2 * *'
- trigger:
- name: 'compass-os-nosdn-stor4nfv-ha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-stor4nfv-ha-baremetal-gambia-trigger'
triggers:
- timed: ''
# ---------------------
-# noha-baremetal-fraser
+# noha-baremetal-gambia
# ---------------------
- trigger:
- name: 'compass-os-nosdn-kvm-noha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-kvm-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-nofeature-noha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-nofeature-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l3-nofeature-noha-baremetal-fraser-trigger'
+ name: 'compass-os-odl_l3-nofeature-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-moon-noha-baremetal-fraser-trigger'
+ name: 'compass-os-odl_l2-moon-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl-sfc-noha-baremetal-fraser-trigger'
+ name: 'compass-os-odl-sfc-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-nosdn-bar-noha-baremetal-fraser-trigger'
+ name: 'compass-os-nosdn-bar-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-k8-nosdn-stor4nfv-noha-baremetal-fraser-trigger'
+ name: 'compass-k8-nosdn-stor4nfv-noha-baremetal-gambia-trigger'
triggers:
- timed: ''
@@ -959,97 +959,97 @@
- timed: '0 10 2-30/2 * *'
# -----------------
-# ha-virtual-fraser
+# ha-virtual-gambia
# -----------------
- trigger:
- name: 'compass-os-nosdn-nofeature-ha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-nofeature-ha-virtual-gambia-trigger'
triggers:
- timed: '0 23 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-openo-ha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-openo-ha-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l3-nofeature-ha-virtual-fraser-trigger'
+ name: 'compass-os-odl_l3-nofeature-ha-virtual-gambia-trigger'
triggers:
- timed: '0 22 2-30/2 * *'
- trigger:
- name: 'compass-os-onos-nofeature-ha-virtual-fraser-trigger'
+ name: 'compass-os-onos-nofeature-ha-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-ocl-nofeature-ha-virtual-fraser-trigger'
+ name: 'compass-os-ocl-nofeature-ha-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-onos-sfc-ha-virtual-fraser-trigger'
+ name: 'compass-os-onos-sfc-ha-virtual-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'compass-os-odl_l2-moon-ha-virtual-fraser-trigger'
+ name: 'compass-os-odl_l2-moon-ha-virtual-gambia-trigger'
triggers:
- timed: '0 20 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-kvm-ha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-kvm-ha-virtual-gambia-trigger'
triggers:
- timed: '0 16 2-30/2 * *'
- trigger:
- name: 'compass-os-nosdn-ovs_dpdk-ha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-ha-virtual-gambia-trigger'
triggers:
- timed: '0 14 1-29/2 * *'
- trigger:
- name: 'compass-os-odl-sfc-ha-virtual-fraser-trigger'
+ name: 'compass-os-odl-sfc-ha-virtual-gambia-trigger'
triggers:
- timed: '0 18 2-30/2 * *'
- trigger:
- name: 'compass-k8-nosdn-nofeature-ha-virtual-fraser-trigger'
+ name: 'compass-k8-nosdn-nofeature-ha-virtual-gambia-trigger'
triggers:
- timed: '5 1 2-30/2 * *'
- trigger:
- name: 'compass-os-nosdn-bar-ha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-bar-ha-virtual-gambia-trigger'
triggers:
- timed: '0 19 1-29/2 * *'
- trigger:
- name: 'compass-k8-nosdn-stor4nfv-ha-virtual-fraser-trigger'
+ name: 'compass-k8-nosdn-stor4nfv-ha-virtual-gambia-trigger'
triggers:
- timed: '0 15 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-stor4nfv-ha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-stor4nfv-ha-virtual-gambia-trigger'
triggers:
- timed: ''
# -------------------
-# noha-virtual-fraser
+# noha-virtual-gambia
# -------------------
- trigger:
- name: 'compass-os-nosdn-kvm-noha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-kvm-noha-virtual-gambia-trigger'
triggers:
- timed: '0 15 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-nofeature-noha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-nofeature-noha-virtual-gambia-trigger'
triggers:
- timed: '0 17 2-30/2 * *'
- trigger:
- name: 'compass-os-odl_l3-nofeature-noha-virtual-fraser-trigger'
+ name: 'compass-os-odl_l3-nofeature-noha-virtual-gambia-trigger'
triggers:
- timed: '0 23 1-29/2 * *'
- trigger:
- name: 'compass-os-odl_l2-moon-noha-virtual-fraser-trigger'
+ name: 'compass-os-odl_l2-moon-noha-virtual-gambia-trigger'
triggers:
- timed: '0 21 2-30/2 * *'
- trigger:
- name: 'compass-os-odl-sfc-noha-virtual-fraser-trigger'
+ name: 'compass-os-odl-sfc-noha-virtual-gambia-trigger'
triggers:
- timed: '0 19 1-29/2 * *'
- trigger:
- name: 'compass-os-nosdn-ovs_dpdk-noha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-ovs_dpdk-noha-virtual-gambia-trigger'
triggers:
- timed: '0 12 2-30/2 * *'
- trigger:
- name: 'compass-os-nosdn-bar-noha-virtual-fraser-trigger'
+ name: 'compass-os-nosdn-bar-noha-virtual-gambia-trigger'
triggers:
- timed: '0 12 1-29/2 * *'
- trigger:
- name: 'compass-k8-nosdn-stor4nfv-noha-virtual-fraser-trigger'
+ name: 'compass-k8-nosdn-stor4nfv-noha-virtual-gambia-trigger'
triggers:
- timed: '0 13 2-30/2 * *'
diff --git a/jjb/compass4nfv/compass-dovetail-jobs.yaml b/jjb/compass4nfv/compass-dovetail-jobs.yaml
index c09086348..ec62da3b7 100644
--- a/jjb/compass4nfv/compass-dovetail-jobs.yaml
+++ b/jjb/compass4nfv/compass-dovetail-jobs.yaml
@@ -51,7 +51,7 @@
blocking-jobs:
- 'compass-os-.*?-{pod}-daily-.*?'
- 'compass-os-.*?-{pod}-weekly-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
@@ -128,7 +128,7 @@
- 'compass-deploy-{pod}-daily-.*?'
- 'compass-deploy-{pod}-weekly-.*'
- 'compass-verify-deploy-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
diff --git a/jjb/compass4nfv/compass-project-jobs.yaml b/jjb/compass4nfv/compass-project-jobs.yaml
index b85773405..17745a29e 100644
--- a/jjb/compass4nfv/compass-project-jobs.yaml
+++ b/jjb/compass4nfv/compass-project-jobs.yaml
@@ -20,7 +20,7 @@
gs-pathname: '/{stream}'
ppa-pathname: '/{stream}'
disabled: false
- - fraser:
+ - gambia:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
ppa-pathname: '/{stream}'
diff --git a/jjb/compass4nfv/compass-verify-jobs.yaml b/jjb/compass4nfv/compass-verify-jobs.yaml
index f0cda8273..daedff797 100644
--- a/jjb/compass4nfv/compass-verify-jobs.yaml
+++ b/jjb/compass4nfv/compass-verify-jobs.yaml
@@ -14,14 +14,14 @@
gs-pathname: ''
ppa-pathname: '/{stream}'
disabled: false
- openstack-version: 'pike'
+ openstack-version: 'queens'
branch-type: 'master'
- - fraser:
+ - gambia:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
ppa-pathname: '/{stream}'
disabled: false
- openstack-version: 'pike'
+ openstack-version: 'queens'
branch-type: 'master'
distro:
@@ -71,7 +71,7 @@
- 'compass-verify-[^-]*-[^-]*'
- 'compass-os-.*?-virtual-daily-.*?'
- 'compass-k8-.*?-virtual-daily-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- ssh-agent-wrapper
@@ -184,7 +184,7 @@
blocking-jobs:
- 'compass-verify-[^-]*-[^-]*'
- 'compass-os-.*?-virtual-daily-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- ssh-agent-wrapper
@@ -279,7 +279,7 @@
- 'compass-os-.*?-virtual-daily-.*?'
- 'compass-verify-deploy-.*'
- 'functest-compass-virtual.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- ssh-agent-wrapper
diff --git a/jjb/container4nfv/container4nfv-arm64.yaml b/jjb/container4nfv/container4nfv-arm64.yaml
index b66667471..5425ae034 100644
--- a/jjb/container4nfv/container4nfv-arm64.yaml
+++ b/jjb/container4nfv/container4nfv-arm64.yaml
@@ -33,7 +33,7 @@
wrappers:
- timeout:
- timeout: 210
+ timeout: 300
fail: true
scm:
@@ -61,6 +61,16 @@
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'Failure'
+ - project: functest-compass-arm-virtual-daily-master
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO='k8-nosdn-nofeature-ha'
+ same-node: true
+ block: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'Failure'
- project: container4nfv-k8-multus-nofeature-noha-{pod}-daily-{stream}
current-parameters: true
same-node: true
diff --git a/jjb/container4nfv/container4nfv-project.yaml b/jjb/container4nfv/container4nfv-project.yaml
index 194a1a989..ae9b4369b 100644
--- a/jjb/container4nfv/container4nfv-project.yaml
+++ b/jjb/container4nfv/container4nfv-project.yaml
@@ -119,7 +119,7 @@
blocking-jobs:
- 'clover-daily-deploy-.*?'
- 'container4nfv-daily-deploy-.*?'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- timeout:
diff --git a/jjb/cperf/cperf-ci-jobs.yaml b/jjb/cperf/cperf-ci-jobs.yaml
index efcf51faa..61bdebd34 100644
--- a/jjb/cperf/cperf-ci-jobs.yaml
+++ b/jjb/cperf/cperf-ci-jobs.yaml
@@ -204,17 +204,6 @@
docker ps -a | grep opnfv/cperf | awk '{print $1}' | xargs docker rm -f >${redirect}
fi
- # Remove existing images if exist
- if [[ ! -z $(docker images | grep opnfv/cperf) ]]; then
- echo "Docker images to remove:"
- docker images | head -1 && docker images | grep opnfv/cperf >${redirect}
- image_tags=($(docker images | grep opnfv/cperf | awk '{print $2}'))
- for tag in "${image_tags[@]}"; do
- echo "Removing docker image opnfv/cperf:$tag..."
- docker rmi opnfv/cperf:$tag >/dev/null
- done
- fi
-
- builder:
name: cperf-upload-logs-csit
builders:
diff --git a/jjb/cperf/cperf-robot-netvirt-csit.sh b/jjb/cperf/cperf-robot-netvirt-csit.sh
index 4fdcd102b..a5bb6e784 100755
--- a/jjb/cperf/cperf-robot-netvirt-csit.sh
+++ b/jjb/cperf/cperf-robot-netvirt-csit.sh
@@ -144,6 +144,10 @@ SUITE_HOME='/home/opnfv/repos/odl_test/csit/suites'
# Live migration will not work unless we use a shared storage backend like
# Ceph which we do not currently use with CSIT images
#
+# ${SUITE_HOME}/netvirt/vpnservice/vpn_basic_ipv6.robot
+# This suite fails with an error indicating the connection was closed
+# to the overcloud control node:
+# https://build.opnfv.org/ci/job/cperf-apex-csit-master/104/consoleFull
suites="${SUITE_HOME}/openstack/connectivity/l2.robot \
${SUITE_HOME}/openstack/connectivity/l3.robot \
@@ -152,7 +156,6 @@ suites="${SUITE_HOME}/openstack/connectivity/l2.robot \
${SUITE_HOME}/openstack/securitygroup/neutron_security_group.robot \
${SUITE_HOME}/openstack/securitygroup/security_group_l3bcast.robot \
${SUITE_HOME}/netvirt/vpnservice/vpn_basic.robot \
- ${SUITE_HOME}/netvirt/vpnservice/vpn_basic_ipv6.robot \
${SUITE_HOME}/netvirt/elan/elan.robot \
${SUITE_HOME}/netvirt/vpnservice/arp_learning.robot \
${SUITE_HOME}/netvirt/l2l3_gatewaymac_arp.robot \
diff --git a/jjb/daisy4nfv/daisy-daily-jobs.yaml b/jjb/daisy4nfv/daisy-daily-jobs.yaml
index ba03bc3f2..4a7e6e908 100644
--- a/jjb/daisy4nfv/daisy-daily-jobs.yaml
+++ b/jjb/daisy4nfv/daisy-daily-jobs.yaml
@@ -105,7 +105,7 @@
- 'daisy-os-.*?-{pod}-daily-.*?'
- 'daisy-daily-.*'
- 'daisy-kolla-build-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
@@ -191,7 +191,7 @@
- '{installer}-(build|deploy|test)-daily-(fraser|master)'
- '{installer}-deploy-(baremetal|virtual|zte-pod3|zte-pod9)-daily-(fraser|master)'
- '(functest|yardstick)-{installer}-(baremetal|virtual|zte-pod3|zte-pod9)-daily-(fraser|master)'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
diff --git a/jjb/daisy4nfv/daisy-project-jobs.yaml b/jjb/daisy4nfv/daisy-project-jobs.yaml
index ec5ba71f2..791454820 100644
--- a/jjb/daisy4nfv/daisy-project-jobs.yaml
+++ b/jjb/daisy4nfv/daisy-project-jobs.yaml
@@ -60,7 +60,7 @@
- '{installer}-kolla-build-.*'
- 'daisy-deploy-.*'
- 'daisy-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm
@@ -129,7 +129,7 @@
- '{installer}-kolla-build-.*'
- 'daisy4nfv-merge-build-.*'
- 'daisy4nfv-verify-build-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm
@@ -221,7 +221,7 @@
- '{installer}-daily-(build|deploy|test)-(fraser|master)'
- '{installer}-.*-(baremetal|virtual|zte-pod3|zte-pod9)-daily-(fraser|master)'
- '(functest|yardstick)-{installer}-(baremetal|virtual|zte-pod3|zte-pod9)-daily-(fraser|master)'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm
diff --git a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml
index 7e03fabaf..c261c23bc 100644
--- a/jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml
+++ b/jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml
@@ -61,7 +61,7 @@
use-build-blocker: true
blocking-jobs:
- '{alias}-merge-(master|fraser)'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm
@@ -158,7 +158,7 @@
blocking-jobs:
- '{alias}-merge-{phase}-.*'
- '{installer}-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm
diff --git a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml
index 033beeb6d..c8c1db096 100644
--- a/jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml
+++ b/jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml
@@ -55,7 +55,7 @@
use-build-blocker: true
blocking-jobs:
- '{alias}-merge-build-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm-gerrit
@@ -158,7 +158,7 @@
- '{alias}-merge-build-.*'
- '{alias}-verify-build-.*'
- '{installer}-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm-gerrit
diff --git a/jjb/doctor/doctor.yaml b/jjb/doctor/doctor.yaml
index 469023037..c79210e15 100644
--- a/jjb/doctor/doctor.yaml
+++ b/jjb/doctor/doctor.yaml
@@ -3,6 +3,11 @@
name: doctor
project: '{name}'
+ project-name: '{name}'
+ project-pattern: '{project}'
+
+ rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-doctor/47214/'
+ rtd-token: '13264f62c1a044e39e9aed22a0dc1853d5a0b196'
stream:
- master:
@@ -39,7 +44,10 @@
jobs:
- 'doctor-verify-{stream}'
- - 'doctor-verify-{installer}-{inspector}-{arch}-{stream}'
+ - 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}'
+ - 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}'
+ - 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}'
+ - '{project-name}-rtd-jobs'
- job-template:
name: 'doctor-verify-{stream}'
@@ -68,7 +76,16 @@
name: 'doctor-verify-sample'
execution-type: PARALLEL
projects:
- - name: 'doctor-verify-apex-sample-x86_64-{stream}'
+ - name: 'doctor-verify-fault_management-apex-sample-x86_64-{stream}'
+ predefined-parameters: |
+ PROJECT=$PROJECT
+ GERRIT_BRANCH=$GERRIT_BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ kill-phase-on: FAILURE
+ git-revision: true
+ - name: 'doctor-verify-fault_management-daisy-sample-x86_64-{stream}'
predefined-parameters: |
PROJECT=$PROJECT
GERRIT_BRANCH=$GERRIT_BRANCH
@@ -77,7 +94,7 @@
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
kill-phase-on: FAILURE
git-revision: true
- - name: 'doctor-verify-daisy-sample-x86_64-{stream}'
+ - name: 'doctor-verify-maintenance-apex-sample-x86_64-{stream}'
predefined-parameters: |
PROJECT=$PROJECT
GERRIT_BRANCH=$GERRIT_BRANCH
@@ -90,7 +107,7 @@
name: 'doctor-verify-congress'
execution-type: PARALLEL
projects:
- - name: 'doctor-verify-apex-congress-x86_64-{stream}'
+ - name: 'doctor-verify-fault_management-apex-congress-x86_64-{stream}'
predefined-parameters: |
PROJECT=$PROJECT
GERRIT_BRANCH=$GERRIT_BRANCH
@@ -99,9 +116,17 @@
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
kill-phase-on: FAILURE
git-revision: true
+ - multijob:
+ name: 'doctor-verify-sample-all'
+ execution-type: PARALLEL
+ # This would be for running all test cases with sample inspector
+ - multijob:
+ name: 'doctor-verify-congress-all'
+ execution-type: PARALLEL
+ # This would be for running all test cases with congress inspector
- job-template:
- name: 'doctor-verify-{installer}-{inspector}-{arch}-{stream}'
+ name: 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}'
disabled: '{obj:disabled}'
node: 'doctor-{installer}-{arch}'
wrappers:
@@ -116,6 +141,55 @@
- 'doctor-slave-parameter'
- 'doctor-parameter':
inspector: '{inspector}'
+ test_case: 'fault_management'
+ scm:
+ - git-scm-gerrit
+ builders:
+ - 'doctor-verify-installer-inspector-builders-macro'
+ publishers:
+ - 'doctor-verify-publishers-macro'
+
+- job-template:
+ name: 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}'
+ disabled: '{obj:disabled}'
+ node: 'nokia-pod1'
+ wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 40
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - 'doctor-slave-parameter'
+ - 'doctor-parameter':
+ inspector: '{inspector}'
+ test_case: 'maintenance'
+ scm:
+ - git-scm-gerrit
+ builders:
+ - 'doctor-verify-installer-inspector-builders-macro'
+ publishers:
+ - 'doctor-verify-publishers-macro'
+
+- job-template:
+ name: 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}'
+ disabled: '{obj:disabled}'
+ node: 'nokia-pod1'
+ wrappers:
+ - ssh-agent-wrapper
+ - build-timeout:
+ timeout: 50
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - 'doctor-slave-parameter'
+ - 'doctor-parameter':
+ inspector: '{inspector}'
+ test_case: 'all'
scm:
- git-scm-gerrit
builders:
@@ -134,6 +208,11 @@
name: INSPECTOR_TYPE
default: '{inspector}'
description: 'inspector component'
+ - string:
+ name: TEST_CASE
+ default: '{test_case}'
+ description: 'test case: all, fault_management or maintenance'
+
# -------------------------------
# builder macros
diff --git a/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml b/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml
index f7d3213c4..a579af6d6 100644
--- a/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml
+++ b/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml
@@ -55,7 +55,7 @@
- branch-compare-type: 'ANT'
branch-pattern: '**/{branch}'
builders:
- - dovetail-webportal-hello-world
+ - dovetail-webportal-unit-tests
- job-template:
name: 'dovetail-webportal-merge-{stream}'
@@ -86,16 +86,17 @@
branch-pattern: '**/{branch}'
builders:
- - dovetail-webportal-hello-world
+ - dovetail-webportal-unit-tests
################################
# builders for dovetail project
###############################
- builder:
- name: dovetail-webportal-hello-world
+ name: dovetail-webportal-unit-tests
builders:
- shell: |
#!/bin/bash
set -o errexit
+ set -o pipefail
- echo "hello world"
+ tox
diff --git a/jjb/dovetail/dovetail-ci-jobs.yaml b/jjb/dovetail/dovetail-ci-jobs.yaml
index 8d47616d8..e3b87c7cb 100644
--- a/jjb/dovetail/dovetail-ci-jobs.yaml
+++ b/jjb/dovetail/dovetail-ci-jobs.yaml
@@ -23,9 +23,9 @@
fraser: &fraser
stream: fraser
branch: 'stable/{stream}'
- dovetail-branch: master
+ dovetail-branch: 'stable/{stream}'
gs-pathname: '/{stream}'
- docker-tag: 'latest'
+ docker-tag: 'ovp-2.0.0'
# ----------------------------------
# POD, PLATFORM, AND BRANCH MAPPING
diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh
index 739da9eac..5fe3d36bb 100755
--- a/jjb/dovetail/dovetail-run.sh
+++ b/jjb/dovetail/dovetail-run.sh
@@ -16,7 +16,7 @@ set -e
DEPLOY_TYPE=baremetal
[[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt
-DOVETAIL_HOME=${WORKSPACE}/cvp
+DOVETAIL_HOME=${WORKSPACE}/ovp
[ -d ${DOVETAIL_HOME} ] && sudo rm -rf ${DOVETAIL_HOME}
mkdir -p ${DOVETAIL_HOME}
@@ -27,13 +27,43 @@ mkdir -p ${DOVETAIL_CONFIG}
DOVETAIL_IMAGES=${DOVETAIL_HOME}/images
mkdir -p ${DOVETAIL_IMAGES}
+OPENRC=${DOVETAIL_CONFIG}/env_config.sh
+CACERT=${DOVETAIL_CONFIG}/os_cacert
+
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
sshkey=""
-# The path of openrc.sh is defined in fetch_os_creds.sh
-OPENRC=${DOVETAIL_CONFIG}/env_config.sh
-CACERT=${DOVETAIL_CONFIG}/os_cacert
-if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+
+check_file_exists() {
+ if [[ -f $1 ]]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+get_cred_file_with_scripts() {
+ echo "INFO: clone releng repo..."
+ releng_repo=${WORKSPACE}/releng
+ [ -d ${releng_repo} ] && sudo rm -rf ${releng_repo}
+ git clone https://gerrit.opnfv.org/gerrit/releng ${releng_repo} >/dev/null
+
+ echo "INFO: clone pharos repo..."
+ pharos_repo=${WORKSPACE}/pharos
+ [ -d ${pharos_repo} ] && sudo rm -rf ${pharos_repo}
+ git clone https://git.opnfv.org/pharos ${pharos_repo} >/dev/null
+
+ echo "INFO: SUT branch is $SUT_BRANCH"
+ echo "INFO: dovetail branch is $BRANCH"
+ BRANCH_BACKUP=$BRANCH
+ export BRANCH=$SUT_BRANCH
+ cmd="${releng_repo}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${CACERT} >${redirect}"
+ echo "INFO: cmd is ${cmd}"
+ ${cmd}
+ export BRANCH=$BRANCH_BACKUP
+}
+
+get_apex_cred_file() {
instack_mac=$(sudo virsh domiflist undercloud | grep default | \
grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+")
INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'})
@@ -43,59 +73,79 @@ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
fi
-elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
- # If production lab then creds may be retrieved dynamically
- # creds are on the jumphost, always in the same folder
- sudo cp $LAB_CONFIG/admin-openrc $OPENRC
- # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
- # replace the default one by the customized one provided by jenkins config
-fi
+ get_cred_file_with_scripts
+}
-# Set iptables rule to allow forwarding return traffic for container
-if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
- sudo iptables -I FORWARD -j RETURN
-fi
+get_compass_cred_file() {
+ get_cred_file_with_scripts
+}
-releng_repo=${WORKSPACE}/releng
-[ -d ${releng_repo} ] && sudo rm -rf ${releng_repo}
-git clone https://gerrit.opnfv.org/gerrit/releng ${releng_repo} >/dev/null
+get_fuel_cred_file() {
+ get_cred_file_with_scripts
+}
-pharos_repo=${WORKSPACE}/pharos
-[ -d ${pharos_repo} ] && sudo rm -rf ${pharos_repo}
-git clone https://git.opnfv.org/pharos ${pharos_repo} >/dev/null
-
-if [[ ${INSTALLER_TYPE} != 'joid' ]]; then
- echo "SUT branch is $SUT_BRANCH"
- echo "dovetail branch is $BRANCH"
- BRANCH_BACKUP=$BRANCH
- export BRANCH=$SUT_BRANCH
- ${releng_repo}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${CACERT} >${redirect}
- export BRANCH=$BRANCH_BACKUP
-fi
+get_joid_cred_file() {
+ # If production lab then creds may be retrieved dynamically
+ # creds are on the jumphost, always in the same folder
+ sudo cp $LAB_CONFIG/admin-openrc $OPENRC
+}
-if [[ -f $OPENRC ]]; then
- echo "INFO: openstack credentials path is $OPENRC"
- if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == "compass" ]]; then
- if [[ -f ${CACERT} ]]; then
- echo "INFO: ${INSTALLER_TYPE} openstack cacert file is ${CACERT}"
+change_cred_file_cacert_path() {
+ check_file_exists ${CACERT}
+ if [[ $? == 0 ]]; then
+ echo "INFO: set ${INSTALLER_TYPE} openstack cacert file to be ${CACERT}"
+ if [[ ${INSTALLER_TYPE} == "compass" ]]; then
echo "export OS_CACERT=${CACERT}" >> ${OPENRC}
- else
- echo "ERROR: Can't find ${INSTALLER_TYPE} openstack cacert file. Please check if it is existing."
- sudo ls -al ${DOVETAIL_CONFIG}
- exit 1
+ elif [[ ${INSTALLER_TYPE} == "fuel" ]]; then
+ sed -i "s#/etc/ssl/certs/mcp_os_cacert#${CACERT}#g" ${OPENRC}
fi
+ else
+ echo "ERROR: cannot find file $OPENRC. Please check if it is existing."
+ sudo ls -al ${DOVETAIL_CONFIG}
+ exit 1
fi
- echo "export EXTERNAL_NETWORK=${EXTERNAL_NETWORK}" >> ${OPENRC}
-else
- echo "ERROR: cannot find file $OPENRC. Please check if it is existing."
- sudo ls -al ${DOVETAIL_CONFIG}
- exit 1
-fi
+}
-if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == "fuel" ]]; then
- sed -i "s#/etc/ssl/certs/mcp_os_cacert#${CACERT}#g" ${OPENRC}
-fi
-cat $OPENRC
+change_cred_file_ext_net() {
+ check_file_exists ${OPENRC}
+ if [[ $? == 0 ]]; then
+ echo "export EXTERNAL_NETWORK=${EXTERNAL_NETWORK}" >> ${OPENRC}
+ else
+ echo "ERROR: cannot find file $OPENRC. Please check if it is existing."
+ sudo ls -al ${DOVETAIL_CONFIG}
+ exit 1
+ fi
+}
+
+get_cred_file() {
+ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+ get_apex_cred_file
+ elif [[ ${INSTALLER_TYPE} == 'compass' ]]; then
+ get_compass_cred_file
+ elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then
+ get_fuel_cred_file
+ elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
+ get_joid_cred_file
+ fi
+
+ check_file_exists ${OPENRC}
+ if [[ $? == 0 ]]; then
+ echo "INFO: original openstack credentials file is"
+ cat $OPENRC
+ echo "INFO: change cacert file path in credentials file"
+ change_cred_file_cacert_path
+ echo "INFO: set external network in credentials file"
+ change_cred_file_ext_net
+ echo "INFO: final openstack credentials file is"
+ cat $OPENRC
+ else
+ echo "ERROR: cannot find file $OPENRC. Please check if it is existing."
+ sudo ls -al ${DOVETAIL_CONFIG}
+ exit 1
+ fi
+}
+
+get_cred_file
# These packages are used for parsing yaml files and decrypting ipmi user and password.
sudo pip install shyaml
@@ -218,6 +268,11 @@ process_info:
- {testcase_name: yardstick.ha.neutron_l3_agent, attack_process: neutron-l3-agent, attack_host: cmp01}
- {testcase_name: yardstick.ha.database, attack_process: mysqld, attack_host: dbs01}
EOF
+ elif [ "$INSTALLER_TYPE" == "compass" ]; then
+ cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml
+process_info:
+- {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq}
+EOF
fi
echo "file ${DOVETAIL_CONFIG}/pod.yaml:"
diff --git a/jjb/fuel/fuel-daily-jobs.yaml b/jjb/fuel/fuel-daily-jobs.yaml
index 07cdb7345..936187ccb 100644
--- a/jjb/fuel/fuel-daily-jobs.yaml
+++ b/jjb/fuel/fuel-daily-jobs.yaml
@@ -21,8 +21,8 @@
branch: 'stable/{stream}'
disabled: false
gs-pathname: '/{stream}'
- danube: &danube
- stream: danube
+ gambia: &gambia
+ stream: gambia
branch: 'stable/{stream}'
disabled: false
gs-pathname: '/{stream}'
@@ -40,9 +40,12 @@
<<: *master
- baremetal:
slave-label: fuel-baremetal
- <<: *fraser
+ <<: *gambia
- virtual:
slave-label: fuel-virtual
+ <<: *gambia
+ - baremetal:
+ slave-label: fuel-baremetal
<<: *fraser
# -------------------------------
# None-CI PODs
@@ -59,22 +62,10 @@
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-odl-nofeature-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-onos-sfc-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-onos-nofeature-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-ovn-nofeature-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-nosdn-kvm-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-ovs-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-nosdn-kvm_ovs-ha':
- auto-trigger-name: 'daily-trigger-disabled'
- - 'os-nosdn-kvm_ovs_dpdk-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-nosdn-kvm_ovs_dpdk_bar-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-vpp-ha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
# NOHA scenarios
@@ -82,47 +73,37 @@
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-odl-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-onos-sfc-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-onos-nofeature-noha':
+ - 'os-odl-sfc-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-ovn-nofeature-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-odl-ovs-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-nosdn-kvm-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-ovs-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-nosdn-kvm_ovs_dpdk-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- - 'os-nosdn-kvm_ovs_dpdk_bar-noha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- 'os-nosdn-vpp-noha':
auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
- # danube scenario for Dovetail only
- - 'os-odl_l2-bgpvpn-ha':
- auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
exclude:
- - scenario: os-odl_l2-bgpvpn-ha
- stream: master
- - scenario: os-odl_l2-bgpvpn-ha
+ # Dovetail (and only it) should run against Fraser HA baremetal scenarios
+ - scenario: os-nosdn-nofeature-noha
+ stream: fraser
+ - scenario: os-odl-nofeature-noha
+ stream: fraser
+ - scenario: os-odl-sfc-noha
stream: fraser
- - scenario: os-ovn-nofeature-noha
- stream: danube
- - scenario: os-ovn-nofeature-ha
- stream: danube
- scenario: os-odl-ovs-noha
stream: fraser
- - scenario: os-nosdn-vpp-ha
+ - scenario: os-ovn-nofeature-noha
+ stream: fraser
+ - scenario: os-nosdn-ovs-noha
stream: fraser
- scenario: os-nosdn-vpp-noha
stream: fraser
+ - scenario: os-ovn-nofeature-ha
+ stream: fraser
- scenario: os-nosdn-vpp-ha
- stream: danube
- - scenario: os-nosdn-vpp-noha
- stream: danube
+ stream: fraser
jobs:
- 'fuel-{scenario}-{pod}-daily-{stream}'
@@ -150,9 +131,8 @@
use-build-blocker: true
blocking-jobs:
- 'fuel-os-.*?-{pod}-daily-.*'
- - 'fuel-os-.*?-{pod}-weekly-.*'
- 'fuel-verify-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
@@ -183,42 +163,33 @@
DEPLOY_SCENARIO={scenario}
same-node: true
block: true
- - trigger-builds:
- - project: 'functest-fuel-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- same-node: true
- block: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- - trigger-builds:
- - project: 'yardstick-fuel-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- # 1.here the stream means the SUT stream, dovetail stream is defined in its own job
- # 2.testsuite default here is for the test cases already added into OVP
- # 3.run default testsuite mandatory test cases against ha scenario
- # 4.run default testsuite optional test cases against ha scenario
- # 5.not used for release criteria or compliance, only to debug the dovetail tool bugs
- conditional-step:
- condition-kind: and
- condition-operands:
- - condition-kind: regex-match
- regex: '.*-ha'
- label: '{scenario}'
+ condition-kind: not
+ condition-operand:
+ condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
steps:
- trigger-builds:
- - project: 'dovetail-fuel-{pod}-default-mandatory-{stream}'
+ - project: 'functest-fuel-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ same-node: true
+ block: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - conditional-step:
+ condition-kind: not
+ condition-operand:
+ condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
+ steps:
+ - trigger-builds:
+ - project: 'yardstick-fuel-{pod}-daily-{stream}'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
@@ -228,15 +199,23 @@
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
+ # 1.here the stream means the SUT stream, dovetail stream is defined in its own job
+ # 2.testsuite default here is for the test cases already added into OVP
+ # 3.run default testsuite mandatory test cases against ha scenario
+ # 4.run default testsuite optional test cases against ha scenario
+ # 5.not used for release criteria or compliance, only to debug the dovetail tool bugs
- conditional-step:
condition-kind: and
condition-operands:
- condition-kind: regex-match
regex: '.*-ha'
label: '{scenario}'
+ - condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
steps:
- trigger-builds:
- - project: 'dovetail-fuel-{pod}-default-optional-{stream}'
+ - project: 'dovetail-fuel-{pod}-default-mandatory-{stream}'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
@@ -247,14 +226,17 @@
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
- conditional-step:
- condition-kind: not
- condition-operand:
- condition-kind: regex-match
- regex: 'danube'
- label: '{stream}'
+ condition-kind: and
+ condition-operands:
+ - condition-kind: regex-match
+ regex: '.*-ha'
+ label: '{scenario}'
+ - condition-kind: regex-match
+ regex: 'fraser'
+ label: '{stream}'
steps:
- trigger-builds:
- - project: 'fuel-collect-logs-{pod}-daily-{stream}'
+ - project: 'dovetail-fuel-{pod}-default-optional-{stream}'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
@@ -264,6 +246,17 @@
build-step-failure-threshold: 'never'
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'fuel-collect-logs-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
publishers:
- email-fuel-ptl
@@ -287,10 +280,7 @@
use-build-blocker: true
blocking-jobs:
- 'fuel-deploy-{pod}-daily-.*'
- - 'fuel-deploy-generic-daily-.*'
- - 'fuel-deploy-{pod}-weekly-.*'
- - 'fuel-deploy-generic-weekly-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
@@ -317,8 +307,6 @@
description: "Built on $NODE_NAME"
- track-begin-timestamp
- shell:
- !include-raw-escape: ./fuel-download-artifact.sh
- - shell:
!include-raw-escape: ./fuel-deploy.sh
publishers:
@@ -384,30 +372,10 @@
triggers:
- timed: '5 5 * * *'
- trigger:
- name: 'fuel-os-onos-sfc-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '5 5 * * *'
-- trigger:
- name: 'fuel-os-onos-nofeature-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '5 8 * * *'
-- trigger:
name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '5 17 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '30 12 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-master-trigger'
- triggers:
- - timed: '' # '30 8 * * *'
-- trigger:
name: 'fuel-os-nosdn-vpp-ha-baremetal-daily-master-trigger'
triggers:
- timed: ''
@@ -422,11 +390,7 @@
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-sfc-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-onos-nofeature-noha-baremetal-daily-master-trigger'
+ name: 'fuel-os-odl-sfc-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
- trigger:
@@ -438,100 +402,64 @@
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-vpp-noha-baremetal-daily-master-trigger'
triggers:
- timed: ''
# ----------------------------------------------
-# Triggers for job running on fuel-baremetal against fraser branch
+# Triggers for job running on fuel-baremetal against gambia branch
# ----------------------------------------------
# HA Scenarios
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger'
- triggers:
- - timed: '0 20 * * 1,3,7'
-- trigger:
- name: 'fuel-os-odl-nofeature-ha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-gambia-trigger'
triggers:
- - timed: '' # '0 2 * * *'
+ - timed: '0 20 * * *'
- trigger:
- name: 'fuel-os-onos-sfc-ha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-ha-baremetal-daily-gambia-trigger'
triggers:
- - timed: '' # '0 5 * * *'
+ - timed: '0 2 * * *'
- trigger:
- name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-nofeature-ha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-gambia-trigger'
triggers:
- - timed: '' # '0 8 * * *'
+ - timed: '0 5 * * *'
- trigger:
- name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-fraser-trigger'
- triggers:
- - timed: '' # '0 17 * * *'
-- trigger:
- name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-fraser-trigger'
- triggers:
- - timed: '' # '0 20 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-fraser-trigger'
- triggers:
- - timed: '' # '0 12 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-baremetal-daily-fraser-trigger'
- triggers:
- - timed: '' # '0 8 * * *'
-# NOHA Scenarios
-- trigger:
- name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl-nofeature-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-vpp-ha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
+# NOHA Scenarios
- trigger:
- name: 'fuel-os-onos-sfc-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-nofeature-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-odl-sfc-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-odl-ovs-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-baremetal-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-vpp-noha-baremetal-daily-gambia-trigger'
triggers:
- timed: ''
# ----------------------------------------------
@@ -546,34 +474,14 @@
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-sfc-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-onos-nofeature-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-ovn-nofeature-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-ovs-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-vpp-ha-virtual-daily-master-trigger'
triggers:
- timed: ''
@@ -587,13 +495,9 @@
triggers:
- timed: '5 18 * * *'
- trigger:
- name: 'fuel-os-onos-sfc-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '' # '35 20 * * *'
-- trigger:
- name: 'fuel-os-onos-nofeature-noha-virtual-daily-master-trigger'
+ name: 'fuel-os-odl-sfc-noha-virtual-daily-master-trigger'
triggers:
- - timed: '' # '5 23 * * *'
+ - timed: '5 4 * * *'
- trigger:
name: 'fuel-os-ovn-nofeature-noha-virtual-daily-master-trigger'
triggers:
@@ -603,101 +507,80 @@
triggers:
- timed: '5 2 * * *'
- trigger:
- name: 'fuel-os-nosdn-kvm-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '' # '35 6 * * *'
-- trigger:
name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger'
triggers:
- timed: '5 9 * * *'
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '' # '30 16 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-master-trigger'
- triggers:
- - timed: '' # '30 20 * * *'
-- trigger:
name: 'fuel-os-nosdn-vpp-noha-virtual-daily-master-trigger'
triggers:
- timed: ''
# ----------------------------------------------
-# Triggers for job running on fuel-virtual against fraser branch
+# Triggers for job running on fuel-baremetal against fraser branch (for Dovetail)
# ----------------------------------------------
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-fraser-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl-nofeature-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger'
triggers:
- - timed: ''
+ - timed: '5 13 * * 6,7'
- trigger:
- name: 'fuel-os-onos-sfc-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-ha-baremetal-daily-fraser-trigger'
triggers:
- - timed: ''
+ - timed: '0 13 * * 6'
- trigger:
- name: 'fuel-os-onos-nofeature-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-fraser-trigger'
triggers:
- - timed: ''
+ - timed: '0 13 * * 7'
+# ----------------------------------------------
+# Triggers for job running on fuel-virtual against gambia branch
+# ----------------------------------------------
- trigger:
- name: 'fuel-os-ovn-nofeature-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-ha-virtual-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-ovs-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-ovn-nofeature-ha-virtual-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-virtual-daily-gambia-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-vpp-ha-virtual-daily-gambia-trigger'
triggers:
- timed: ''
# NOHA Scenarios
- trigger:
- name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '' # '0 13 * * *'
+ - timed: '0 13 * * *'
- trigger:
- name: 'fuel-os-odl-nofeature-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-odl-nofeature-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '' # '0 18 * * *'
+ - timed: '0 18 * * *'
- trigger:
- name: 'fuel-os-ovn-nofeature-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-odl-sfc-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '5 23 * * *'
+ - timed: '0 4 * * *'
- trigger:
- name: 'fuel-os-onos-sfc-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-ovn-nofeature-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '' # '30 20 * * *'
+ - timed: '0 23 * * *'
- trigger:
- name: 'fuel-os-onos-nofeature-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-odl-ovs-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '' # '0 23 * * *'
+ - timed: '0 2 * * *'
- trigger:
- name: 'fuel-os-nosdn-kvm-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-ovs-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '' # '30 6 * * *'
+ - timed: '0 9 * * *'
- trigger:
- name: 'fuel-os-nosdn-ovs-noha-virtual-daily-fraser-trigger'
+ name: 'fuel-os-nosdn-vpp-noha-virtual-daily-gambia-trigger'
triggers:
- - timed: '' # '0 9 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-virtual-daily-fraser-trigger'
- triggers:
- - timed: '' # '0 16 * * *'
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-virtual-daily-fraser-trigger'
- triggers:
- - timed: '' # '0 20 * * *'
+ - timed: ''
# ----------------------------------------------
# ZTE POD1 Triggers running against master branch
# ----------------------------------------------
@@ -710,34 +593,14 @@
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-sfc-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-ovn-nofeature-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-ha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-vpp-ha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
@@ -751,11 +614,7 @@
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-sfc-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-master-trigger'
+ name: 'fuel-os-odl-sfc-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
- trigger:
@@ -767,22 +626,10 @@
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-kvm_ovs_dpdk_bar-noha-zte-pod1-daily-master-trigger'
- triggers:
- - timed: ''
-- trigger:
name: 'fuel-os-nosdn-vpp-noha-zte-pod1-daily-master-trigger'
triggers:
- timed: ''
diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh
index a4b40f44f..c0cdc3dc2 100755
--- a/jjb/fuel/fuel-deploy.sh
+++ b/jjb/fuel/fuel-deploy.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# SPDX-license-identifier: Apache-2.0
##############################################################################
-# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others.
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea Software AB and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
@@ -12,83 +12,37 @@ set -o pipefail
export TERM="vt220"
-if [[ "$BRANCH" =~ 'danube' ]]; then
- # source the file so we get OPNFV vars
- # shellcheck disable=SC1091
- source latest.properties
-
- # echo the info about artifact that is used during the deployment
- echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment"
-
- # for Danube deployments (no artifact for current master or newer branches)
- # checkout the commit that was used for building the downloaded artifact
- # to make sure the ISO and deployment mechanism uses same versions
- echo "Checking out ${OPNFV_GIT_SHA1}"
- git checkout "${OPNFV_GIT_SHA1}" --quiet
-
- # releng wants us to use nothing else but opnfv.iso for now. We comply.
- ISO_FILE_ARG="-i file://${WORKSPACE}/opnfv.iso"
-fi
-
-# shellcheck disable=SC2153
-if [[ "${JOB_NAME}" =~ 'verify' ]]; then
- # set simplest scenario for virtual deploys to run for verify
- DEPLOY_SCENARIO="os-nosdn-nofeature-noha"
-fi
-
# set deployment parameters
export TMPDIR=${HOME}/tmpdir
# shellcheck disable=SC2153
LAB_NAME=${NODE_NAME/-*}
# shellcheck disable=SC2153
POD_NAME=${NODE_NAME/*-}
-# Armband might override LAB_CONFIG_URL, all others use the default
-LAB_CONFIG_URL=${LAB_CONFIG_URL:-'ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab'}
-
-# Fuel requires deploy script to be ran with sudo, Armband does not
-SUDO='sudo -E'
-if [ "${PROJECT}" = 'fuel' ]; then
- # Fuel currently supports ericsson, intel, lf and zte labs
- if [[ ! "${LAB_NAME}" =~ (ericsson|intel|lf|zte) ]]; then
- echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!"
- exit 1
- fi
-else
- SUDO=
- # Armband currently supports arm, enea, unh labs
- if [[ ! "${LAB_NAME}" =~ (arm|enea|unh) ]]; then
- echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!"
- exit 1
- fi
+
+# Fuel currently supports arm, enea, ericsson, intel, lf, unh and zte labs
+if [[ ! "${LAB_NAME}" =~ (arm|enea|ericsson|intel|lf|unh|zte) ]]; then
+ echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!"
+ exit 1
fi
echo "Using configuration for ${LAB_NAME}"
# create TMPDIR if it doesn't exist, change permissions
mkdir -p "${TMPDIR}"
-chmod a+x "${HOME}" "${TMPDIR}"
+sudo chmod a+x "${HOME}" "${TMPDIR}"
cd "${WORKSPACE}" || exit 1
-if [[ "$BRANCH" =~ (danube|euphrates) ]]; then
- if [[ "${LAB_CONFIG_URL}" =~ ^(git|ssh):// ]]; then
- echo "Cloning securedlab repo ${BRANCH}"
- LOCAL_CFG="${TMPDIR}/securedlab"
- rm -rf "${LOCAL_CFG}"
- git clone --quiet --branch "${BRANCH}" "${LAB_CONFIG_URL}" "${LOCAL_CFG}"
- LAB_CONFIG_ARG="-b file://${LOCAL_CFG}"
- BRIDGE_ARG="-B ${BRIDGE:-pxebr}"
- else
- LAB_CONFIG_ARG="-b ${LAB_CONFIG_URL}"
- fi
-fi
# log file name
FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
+# Limited scope for vPOD verify jobs running on armband-virtual
+[[ ! "${JOB_NAME}" =~ verify-deploy-virtual-arm64 ]] || EXTRA_ARGS='-e'
+
# construct the command
-DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh ${LAB_CONFIG_ARG:-} \
- -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} ${ISO_FILE_ARG:-} \
- -S ${TMPDIR} ${BRIDGE_ARG:-} \
+DEPLOY_COMMAND="${WORKSPACE}/ci/deploy.sh \
+ -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} \
+ -S ${TMPDIR} ${EXTRA_ARGS:-} \
-L ${WORKSPACE}/${FUEL_LOG_FILENAME}"
# log info to console
@@ -97,7 +51,6 @@ echo "--------------------------------------------------------"
echo "Scenario: ${DEPLOY_SCENARIO}"
echo "Lab: ${LAB_NAME}"
echo "POD: ${POD_NAME}"
-[[ "${BRANCH}" =~ 'danube' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}"
echo
echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..."
echo "--------------------------------------------------------"
@@ -111,22 +64,13 @@ echo
${DEPLOY_COMMAND}
exit_code=$?
-# Temporary workaround for ericsson-virtual* PODs functest integration
-# See https://jira.opnfv.org/browse/FUNCTEST-985
-# Set iptables rule to allow forwarding return traffic for container
-redirect=/dev/stdout
-if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || \
- ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
- sudo iptables -I FORWARD -j RETURN
-fi
-
echo
echo "--------------------------------------------------------"
echo "Deployment is done!"
# upload logs for baremetal deployments
# work with virtual deployments is still going on, so skip that for now
-if [[ "${JOB_NAME}" =~ (baremetal-daily|baremetal-weekly) ]]; then
+if [[ "${JOB_NAME}" =~ baremetal-daily ]]; then
echo "Uploading deployment logs"
gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \
"gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1
diff --git a/jjb/fuel/fuel-docker-jobs.yaml b/jjb/fuel/fuel-docker-jobs.yaml
index 98ed66da7..c06848e56 100644
--- a/jjb/fuel/fuel-docker-jobs.yaml
+++ b/jjb/fuel/fuel-docker-jobs.yaml
@@ -14,7 +14,7 @@
disabled: false
- gambia:
branch: 'stable/{stream}'
- disabled: true
+ disabled: false
arch_tag:
- 'amd64':
@@ -119,7 +119,7 @@
*)
tag="{stream}" ;;
esac
- sudo ./ci/build.sh $tag
+ ./ci/build.sh $tag
- job-template:
name: 'fuel-docker-manifest-{stream}'
@@ -132,6 +132,8 @@
name: SLAVE_LABEL
default: 'opnfv-build-ubuntu'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: PROJECT
default: "{project}"
@@ -174,6 +176,8 @@
name: SLAVE_LABEL
default: '{slave_label}'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh
deleted file mode 100755
index 02ca10305..000000000
--- a/jjb/fuel/fuel-download-artifact.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o errexit
-set -o pipefail
-
-# disable Fuel ISO download for master branch
-[[ ! "$BRANCH" =~ (danube) ]] && exit 0
-
-# use proxy url to replace the normal URL, or googleusercontent.com will be blocked randomly
-[[ "$NODE_NAME" =~ (zte) ]] && GS_URL=${GS_BASE_PROXY%%/*}/$GS_URL
-
-# get the latest.properties file in order to get info regarding latest artifact
-echo "Downloading http://$GS_URL/latest.properties"
-curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
-
-# check if we got the file
-[[ -f $WORKSPACE/latest.properties ]] || exit 1
-
-# source the file so we get artifact metadata
-source $WORKSPACE/latest.properties
-
-# echo the info about artifact that is used during the deployment
-OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/}
-echo "Using $OPNFV_ARTIFACT for deployment"
-
-# check if we already have the ISO to avoid redownload
-ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
-if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
- echo "ISO exists locally. Skipping the download and using the file from ISO store"
- ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
- echo "--------------------------------------------------------"
- echo
- ls -al $WORKSPACE/opnfv.iso
- echo
- echo "--------------------------------------------------------"
- echo "Done!"
- exit 0
-fi
-
-[[ "$NODE_NAME" =~ (zte) ]] && OPNFV_ARTIFACT_URL=${GS_BASE_PROXY%%/*}/$OPNFV_ARTIFACT_URL
-
-# log info to console
-echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL"
-echo "This could take some time..."
-echo "--------------------------------------------------------"
-echo
-
-# download the file
-curl -L -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1
-
-# list the file
-ls -al $WORKSPACE/opnfv.iso
-
-echo
-echo "--------------------------------------------------------"
-echo "Done!"
diff --git a/jjb/fuel/fuel-lab-reconfig.sh b/jjb/fuel/fuel-lab-reconfig.sh
deleted file mode 100755
index 4b42a396e..000000000
--- a/jjb/fuel/fuel-lab-reconfig.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o errexit
-set -o nounset
-set -o pipefail
-
-# check to see if ucs login info file exists
-if [ -e ~/.ssh/ucs_creds ];then
- source ~/.ssh/ucs_creds
-else
- echo "Unable to find UCS credentials for LF lab reconfiguration...Exiting"
- exit 1
-fi
-
-# clone releng
-echo "Cloning releng repo..."
-if ! GIT_SSL_NO_VERIFY=true git clone https://gerrit.opnfv.org/gerrit/releng; then
- echo "Unable to clone releng repo...Exiting"
- exit 1
-fi
-
-# log info to console
-echo "Starting the lab reconfiguration for $INSTALLER_TYPE..."
-echo "--------------------------------------------------------"
-echo
-
-# create venv
-$WORKSPACE/releng/utils/lab-reconfiguration/create_venv.sh
-
-# disable nounset because 'activate' script contains unbound variable(s)
-set +o nounset
-# enter venv
-source $WORKSPACE/releng/utils/lab-reconfiguration/venv/bin/activate
-# set nounset back again
-set -o nounset
-
-# verify we are in venv
-if [[ ! $(which python | grep venv) ]]; then
- echo "Unable to activate venv...Exiting"
- exit 1
-fi
-
-python $WORKSPACE/releng/utils/lab-reconfiguration/reconfigUcsNet.py -i $ucs_host -u $ucs_user -p $ucs_password -f $WORKSPACE/releng/utils/lab-reconfiguration/fuel.yaml
-
-# while undergoing reboot
-sleep 30
-
-# check to see if slave is back up
-ping_counter=0
-ping_flag=0
-while [ "$ping_counter" -lt 20 ]; do
- if [[ $(ping -c 5 172.30.10.72) ]]; then
- ping_flag=1
- break
- fi
- ((ping_counter++))
- sleep 10
-done
-
-if [ "$ping_flag" -eq 1 ]; then
- echo "Slave is pingable, now wait 180 seconds for services to start"
- sleep 180
-else
- echo "Slave did not come back up after reboot: please check lf-pod2"
- exit 1
-fi
-
-set +o nounset
-deactivate
-
-echo
-echo "--------------------------------------------------------"
-echo "Done!"
diff --git a/jjb/fuel/fuel-project-jobs.yaml b/jjb/fuel/fuel-project-jobs.yaml
index 40ba6e696..400b1552c 100644
--- a/jjb/fuel/fuel-project-jobs.yaml
+++ b/jjb/fuel/fuel-project-jobs.yaml
@@ -14,7 +14,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser:
+ - gambia:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
@@ -25,62 +25,4 @@
rtd-token: 38f40bf6c08fd4bccb930871bc29b08404cf98b0
jobs:
- - 'fuel-deploy-generic-daily-{stream}'
- '{project-name}-rtd-jobs'
-
-########################
-# job templates
-########################
-- job-template:
- name: 'fuel-deploy-generic-daily-{stream}'
-
- concurrent: true
-
- disabled: '{obj:disabled}'
-
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'fuel-os-.*?-daily-.*'
- - 'fuel-deploy-generic-daily-.*'
- block-level: 'NODE'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults':
- gs-pathname: '{gs-pathname}'
- - string:
- name: GIT_BASE
- default: https://gerrit.opnfv.org/gerrit/$PROJECT
- description: 'Git URL to use on this Jenkins Slave'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-odl-nofeature-ha'
- - node:
- name: SLAVE_NAME
- description: 'Slave name on Jenkins'
- allowed-slaves:
- - ericsson-pod2
- - lf-pod2
- - ericsson-pod1
- default-slaves:
- - ericsson-pod2
-
- scm:
- - git-scm
-
- wrappers:
- - build-name:
- name: '$BUILD_NUMBER - POD: $NODE_NAME Scenario: $DEPLOY_SCENARIO'
-
- builders:
- - shell:
- !include-raw-escape: ./fuel-deploy.sh
diff --git a/jjb/fuel/fuel-set-scenario.sh b/jjb/fuel/fuel-set-scenario.sh
new file mode 100755
index 000000000..4c8ed7334
--- /dev/null
+++ b/jjb/fuel/fuel-set-scenario.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 SUSE, Mirantis Inc., Enea Software AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o pipefail
+set -x
+
+#----------------------------------------------------------------------
+# This script is used by CI and executed by Jenkins jobs.
+# You are not supposed to use this script manually if you don't know
+# what you are doing.
+#----------------------------------------------------------------------
+
+# This function allows developers to specify the impacted scenario by
+# requesting a RE-check via a gerrit change comment under a specific format.
+#
+# Patterns to be searched in change comment:
+# recheck: <scenario-name>
+# reverify: <scenario-name>
+# Examples:
+# recheck: os-odl-ovs-noha
+# reverify: os-nosdn-nofeature-ha
+
+function set_scenario() {
+ # process gerrit event comment text (if present)
+ DEPLOY_SCENARIO=$(echo "${GERRIT_EVENT_COMMENT_TEXT}" | \
+ grep -Po '(?!:(recheck|reverify):\s*)([-\w]+ha)')
+ if [ -z "${DEPLOY_SCENARIO}" ]; then
+ if [[ "$JOB_NAME" =~ baremetal ]]; then
+ DEPLOY_SCENARIO='os-nosdn-nofeature-ha'
+ else
+ DEPLOY_SCENARIO='os-nosdn-nofeature-noha'
+ fi
+ fi
+ # save the scenario names into java properties file
+ # so they can be injected to downstream jobs via envInject
+ echo "Recording the scenario '${DEPLOY_SCENARIO}' for downstream jobs"
+ echo "DEPLOY_SCENARIO=${DEPLOY_SCENARIO}" > "$WORK_DIRECTORY/scenario.properties"
+}
+
+# ensure GERRIT vars are set
+[ -n "${GERRIT_CHANGE_NUMBER}" ] || exit 1
+GERRIT_EVENT_COMMENT_TEXT="${GERRIT_EVENT_COMMENT_TEXT:-''}"
+
+# this directory is where the temporary properties file will be stored
+WORK_DIRECTORY=/tmp/$GERRIT_CHANGE_NUMBER
+/bin/rm -rf "$WORK_DIRECTORY" && mkdir -p "$WORK_DIRECTORY"
+
+set_scenario
diff --git a/jjb/fuel/fuel-verify-jobs.yaml b/jjb/fuel/fuel-verify-jobs.yaml
index 8eb5ab0cd..5695ef8a0 100644
--- a/jjb/fuel/fuel-verify-jobs.yaml
+++ b/jjb/fuel/fuel-verify-jobs.yaml
@@ -13,27 +13,43 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser:
+ - gambia:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
#####################################
+ # cluster architectures
+ #####################################
+ arch_tag:
+ - 'amd64':
+ slave-label: 'fuel'
+ functest-suite-label: 'fuel'
+ - 'arm64':
+ slave-label: 'armband'
+ functest-suite-label: 'fuel-armband'
+ #####################################
+ # cluster types
+ #####################################
+ type:
+ - 'virtual'
+ - 'baremetal'
+ #####################################
# patch verification phases
#####################################
phase:
- - 'deploy-virtual':
- slave-label: 'fuel-virtual'
+ - 'docker-build'
+ - 'deploy'
#####################################
# jobs
#####################################
jobs:
- - 'fuel-verify-{stream}'
- - 'fuel-verify-{phase}-{stream}'
+ - 'fuel-verify-{type}-{arch_tag}-{stream}'
+ - 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}'
#####################################
# job templates
#####################################
- job-template:
- name: 'fuel-verify-{stream}'
+ name: 'fuel-verify-{type}-{arch_tag}-{stream}'
project-type: multijob
@@ -50,9 +66,9 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'fuel-os-.*?-virtual-daily-.*'
+ - 'fuel-os-.*?-daily-.*'
- 'fuel-verify-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm-gerrit
@@ -64,57 +80,49 @@
fail: true
triggers:
- - gerrit:
- server-name: 'gerrit.opnfv.org'
- trigger-on:
- - patchset-created-event:
- exclude-drafts: 'false'
- exclude-trivial-rebase: 'false'
- exclude-no-code-change: 'false'
- - draft-published-event
- - comment-added-contains-event:
- comment-contains-value: 'recheck'
- - comment-added-contains-event:
- comment-contains-value: 'reverify'
- projects:
- - project-compare-type: 'ANT'
- project-pattern: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'mcp/**'
- disable-strict-forbidden-file-verification: 'true'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**'
- readable-message: true
+ - 'fuel-verify-{type}-{arch_tag}-trigger':
+ project: '{project}'
+ branch: '{branch}'
parameters:
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'fuel-virtual-defaults':
+ - '{slave-label}-{type}-defaults':
installer: '{installer}'
- '{installer}-defaults':
gs-pathname: '{gs-pathname}'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-ha'
builders:
+ - 'fuel-verify-set-scenario-macro'
+ - inject:
+ properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/scenario.properties"
- description-setter:
- description: "Built on $NODE_NAME"
+ description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
+ - multijob:
+ name: docker-build
+ condition: SUCCESSFUL
+ projects:
+ - name: 'fuel-verify-docker-build-{type}-{arch_tag}-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: true
+ kill-phase-on: FAILURE
+ abort-all-job: true
+
- multijob:
- name: deploy-virtual
+ name: deploy
condition: SUCCESSFUL
projects:
- - name: 'fuel-verify-deploy-virtual-{stream}'
+ - name: 'fuel-verify-deploy-{type}-{arch_tag}-{stream}'
current-parameters: false
predefined-parameters: |
+ MCP_DOCKER_TAG={arch_tag}-verify
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
BRANCH=$BRANCH
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
@@ -128,7 +136,7 @@
condition: SUCCESSFUL
projects:
# Use Functest job definition from jjb/functest/functest-daily-jobs
- - name: 'functest-fuel-virtual-suite-{stream}'
+ - name: 'functest-{functest-suite-label}-{type}-suite-{stream}'
current-parameters: false
predefined-parameters: |
FUNCTEST_MODE=tier
@@ -139,11 +147,12 @@
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
node-parameters: true
+ enable-condition: "def m = ! ('$NODE_LABELS' =~ /armband-virtual/)"
kill-phase-on: NEVER
abort-all-job: true
- job-template:
- name: 'fuel-verify-{phase}-{stream}'
+ name: 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}'
disabled: '{obj:disabled}'
@@ -159,8 +168,9 @@
- build-blocker:
use-build-blocker: true
blocking-jobs:
+ - 'fuel-verify-docker-build-.*'
- 'fuel-verify-deploy-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm-gerrit
@@ -175,8 +185,7 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
- - '{slave-label}-defaults'
- - 'fuel-virtual-defaults':
+ - '{slave-label}-{type}-defaults':
installer: '{installer}'
- '{installer}-defaults':
gs-pathname: '{gs-pathname}'
@@ -185,11 +194,77 @@
- description-setter:
description: "Built on $NODE_NAME"
- '{project}-verify-{phase}-macro'
+########################
+# trigger macros
+########################
+- trigger:
+ name: 'fuel-verify-virtual-amd64-trigger'
+ triggers:
+ - gerrit: &fuel_verify_virtual_amd64_trigger
+ server-name: 'gerrit.opnfv.org'
+ trigger-on:
+ - patchset-created-event:
+ exclude-drafts: 'false'
+ exclude-trivial-rebase: 'false'
+ exclude-no-code-change: 'false'
+ - draft-published-event
+ - comment-added-contains-event:
+ comment-contains-value: '(recheck|reverify)(\s|$|:\s*[-\w]+-noha)'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: 'ci/**'
+ - compare-type: ANT
+ pattern: 'mcp/**'
+ disable-strict-forbidden-file-verification: 'true'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
+ readable-message: true
+- trigger:
+ name: 'fuel-verify-virtual-arm64-trigger'
+ triggers:
+ - gerrit:
+ <<: *fuel_verify_virtual_amd64_trigger
+- trigger:
+ name: 'fuel-verify-baremetal-amd64-trigger'
+ triggers:
+ - gerrit: &fuel_verify_baremetal_amd64_trigger
+ <<: *fuel_verify_virtual_amd64_trigger
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: '(recheck|reverify):\s*[-\w]+-ha'
+- trigger:
+ name: 'fuel-verify-baremetal-arm64-trigger'
+ triggers:
+ - gerrit:
+ <<: *fuel_verify_baremetal_amd64_trigger
+ skip-vote:
+ successful: true
+ failed: true
+ unstable: true
+ notbuilt: true
#####################################
# builder macros
#####################################
- builder:
- name: 'fuel-verify-deploy-virtual-macro'
+ name: 'fuel-verify-set-scenario-macro'
+ builders:
+ - shell:
+ !include-raw: ./fuel-set-scenario.sh
+- builder:
+ name: 'fuel-verify-deploy-macro'
builders:
- shell:
!include-raw: ./fuel-deploy.sh
+- builder:
+ name: 'fuel-verify-docker-build-macro'
+ builders:
+ - shell: |
+ #!/bin/bash -ex
+ sudo -E ./ci/build.sh 'verify' ''
diff --git a/jjb/fuel/fuel-weekly-jobs.yaml b/jjb/fuel/fuel-weekly-jobs.yaml
deleted file mode 100644
index c6b921729..000000000
--- a/jjb/fuel/fuel-weekly-jobs.yaml
+++ /dev/null
@@ -1,189 +0,0 @@
----
-# jenkins job templates for Fuel
-- project:
-
- name: fuel-weekly
-
- project: fuel
-
- installer: fuel
-
- # -------------------------------
- # BRANCH ANCHORS
- # -------------------------------
- master: &master
- stream: master
- branch: '{stream}'
- disabled: false
- gs-pathname: ''
- fraser: &fraser
- stream: fraser
- branch: 'stable/{stream}'
- disabled: false
- gs-pathname: '/{stream}'
- # -------------------------------
- # POD, INSTALLER, AND BRANCH MAPPING
- # -------------------------------
- # CI PODs
- # -------------------------------
- pod:
- - baremetal:
- slave-label: fuel-baremetal
- <<: *master
- - virtual:
- slave-label: fuel-virtual
- <<: *master
- - baremetal:
- slave-label: fuel-baremetal
- <<: *fraser
- - virtual:
- slave-label: fuel-virtual
- <<: *fraser
- # -------------------------------
- # scenarios
- # -------------------------------
- scenario:
- # HA scenarios
- - 'os-nosdn-nofeature-ha':
- auto-trigger-name: 'weekly-trigger-disabled'
-
- jobs:
- - 'fuel-{scenario}-{pod}-weekly-{stream}'
- - 'fuel-deploy-{pod}-weekly-{stream}'
-
-########################
-# job templates
-########################
-- job-template:
- name: 'fuel-{scenario}-{pod}-weekly-{stream}'
-
- disabled: '{obj:disabled}'
-
- concurrent: false
-
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 4
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'fuel-os-.*?-{pod}-daily-.*'
- - 'fuel-os-.*?-{pod}-weekly-.*'
- - 'fuel-verify-.*'
- block-level: 'NODE'
-
- wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
-
- triggers:
- - '{auto-trigger-name}'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults':
- gs-pathname: '{gs-pathname}'
- - '{slave-label}-defaults':
- installer: '{installer}'
- - string:
- name: DEPLOY_SCENARIO
- default: '{scenario}'
-
- builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - trigger-builds:
- - project: 'fuel-deploy-{pod}-weekly-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- same-node: true
- block: true
- - trigger-builds:
- - project: 'functest-fuel-{pod}-weekly-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- same-node: true
- block: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
-
- publishers:
- - email-fuel-ptl
- - email-jenkins-admins-on-failure
-
-- job-template:
- name: 'fuel-deploy-{pod}-weekly-{stream}'
-
- disabled: '{obj:disabled}'
-
- concurrent: true
-
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 4
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'fuel-deploy-{pod}-daily-.*'
- - 'fuel-deploy-generic-daily-.*'
- - 'fuel-deploy-{pod}-weekly-.*'
- - 'fuel-deploy-generic-weekly-.*'
- block-level: 'NODE'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults':
- gs-pathname: '{gs-pathname}'
- - '{slave-label}-defaults':
- installer: '{installer}'
- - testapi-parameter
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-odl-nofeature-ha'
-
- scm:
- - git-scm
-
- wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
-
- builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - track-begin-timestamp
- - shell:
- !include-raw-escape: ./fuel-deploy.sh
-
- publishers:
- - email-fuel-ptl
- - email-jenkins-admins-on-failure
- - report-provision-result
-
-########################
-# trigger macros
-########################
-# ----------------------------------------------
-# Triggers for job running on fuel-baremetal against master branch
-# ----------------------------------------------
-# HA Scenarios
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-baremetal-weekly-master-trigger'
- triggers:
- - timed: ''
diff --git a/jjb/functest/functest-alpine.sh b/jjb/functest/functest-alpine.sh
index 357068e0c..a34f8a435 100755
--- a/jjb/functest/functest-alpine.sh
+++ b/jjb/functest/functest-alpine.sh
@@ -26,14 +26,10 @@ check_os_deployment() {
}
-
run_tiers() {
tiers=$1
cmd_opt="run_tests -r -t all"
[[ $BUILD_TAG =~ "suite" ]] && cmd_opt="run_tests -t all"
- ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
- echo 0 > ${ret_val_file}
-
for tier in ${tiers[@]}; do
FUNCTEST_IMAGE=${REPO}/functest-${tier}:${DOCKER_TAG}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
@@ -55,17 +51,15 @@ run_tiers() {
run_test() {
test_name=$1
cmd_opt="run_tests -t ${test_name}"
- ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
- echo 0 > ${ret_val_file}
# Determine which Functest image should be used for the test case
case ${test_name} in
connection_check|tenantnetwork1|tenantnetwork2|vmready1|vmready2|singlevm1|singlevm2|vping_ssh|vping_userdata|cinder_test|odl|api_check|snaps_health_check)
FUNCTEST_IMAGE=${REPO}/functest-healthcheck:${DOCKER_TAG} ;;
- tempest_smoke|neutron-tempest-plugin-api|rally_sanity|refstack_defcore|patrole|snaps_smoke|neutron_trunk|networking-bgpvpn|networking-sfc|barbican)
+ tempest_smoke_serial|tempest_smoke|neutron-tempest-plugin-api|rally_sanity|refstack_defcore|patrole|snaps_smoke|neutron_trunk|networking-bgpvpn|networking-sfc|barbican)
FUNCTEST_IMAGE=${REPO}/functest-smoke:${DOCKER_TAG} ;;
shaker|vmtp)
FUNCTEST_IMAGE=${REPO}/functest-benchmarking:${DOCKER_TAG} ;;
- tempest_full|tempest_scenario|rally_full)
+ tempest_full_parallel|tempest_full|tempest_scenario|rally_full)
FUNCTEST_IMAGE=${REPO}/functest-components:${DOCKER_TAG} ;;
cloudify|cloudify_ims|heat_ims|vyos_vrouter|juju_epc)
FUNCTEST_IMAGE=${REPO}/functest-vnf:${DOCKER_TAG} ;;
@@ -141,7 +135,8 @@ ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
if [ "${INSTALLER_TYPE}" == 'fuel' ]; then
COMPUTE_ARCH=$(ssh -l ubuntu ${INSTALLER_IP} -i ${SSH_KEY} ${ssh_options} \
"sudo salt 'cmp*' grains.get cpuarch --out yaml | awk '{print \$2; exit}'")
- envs="${envs} -e POD_ARCH=${COMPUTE_ARCH}"
+ IMAGE_PROPERTIES="hw_disk_bus: scsi, hw_scsi_model: virtio-scsi"
+ envs="${envs} -e POD_ARCH=${COMPUTE_ARCH} -e IMAGE_PROPERTIES=\"${IMAGE_PROPERTIES}\""
fi
@@ -155,9 +150,21 @@ if [[ ${INSTALLER_TYPE} == 'compass' && ${DEPLOY_SCENARIO} =~ 'sfc' ]]; then
envs="${envs} -e EXTERNAL_NETWORK=${EXTERNAL_NETWORK}"
fi
+if [[ ${DEPLOY_SCENARIO} == *"ovs"* ]] || [[ ${DEPLOY_SCENARIO} == *"fdio"* ]]; then
+ if [[ -n ${IMAGE_PROPERTIES} ]]; then
+ IMAGE_PROPERTIES="${IMAGE_PROPERTIES}, hw_mem_page_size: large"
+ else
+ IMAGE_PROPERTIES="hw_mem_page_size: large"
+ fi
+ FLAVOR_EXTRA_SPECS="hw:mem_page_size: large"
+ envs="${envs} -e IMAGE_PROPERTIES=\"${IMAGE_PROPERTIES}\" -e FLAVOR_EXTRA_SPECS=\"${FLAVOR_EXTRA_SPECS}\""
+fi
volumes="${images_vol} ${results_vol} ${sshkey_vol} ${userconfig_vol} ${rc_file_vol} ${cacert_file_vol}"
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
+echo 0 > ${ret_val_file}
+
set +e
if [ ${FUNCTEST_MODE} == 'testcase' ]; then
diff --git a/jjb/functest/functest-daily-jobs.yaml b/jjb/functest/functest-daily-jobs.yaml
index 763d1d4f0..1e380f2a2 100644
--- a/jjb/functest/functest-daily-jobs.yaml
+++ b/jjb/functest/functest-daily-jobs.yaml
@@ -18,6 +18,14 @@
stream: fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
+ gambia: &gambia
+ stream: gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ hunter: &hunter
+ stream: hunter
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
# -------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
# -------------------------------
@@ -39,6 +47,14 @@
- baremetal:
slave-label: fuel-baremetal
installer: fuel
+ <<: *gambia
+ - virtual:
+ slave-label: fuel-virtual
+ installer: fuel
+ <<: *gambia
+ - baremetal:
+ slave-label: fuel-baremetal
+ installer: fuel
<<: *fraser
- virtual:
slave-label: fuel-virtual
@@ -70,6 +86,10 @@
slave-label: compass-virtual
installer: compass
<<: *master
+ - arm-virtual:
+ slave-label: compass-arm-virtual
+ installer: compass
+ <<: *master
- baremetal:
slave-label: compass-baremetal
installer: compass
@@ -78,6 +98,10 @@
slave-label: compass-virtual
installer: compass
<<: *fraser
+ - arm-virtual:
+ slave-label: compass-arm-virtual
+ installer: compass
+ <<: *fraser
# apex CI PODs
- virtual:
slave-label: apex-virtual-master
@@ -107,6 +131,14 @@
- armband-baremetal:
slave-label: armband-baremetal
installer: fuel
+ <<: *gambia
+ - armband-virtual:
+ slave-label: armband-virtual
+ installer: fuel
+ <<: *gambia
+ - armband-baremetal:
+ slave-label: armband-baremetal
+ installer: fuel
<<: *fraser
- armband-virtual:
slave-label: armband-virtual
@@ -201,7 +233,7 @@
- 'suite':
job-timeout: 60
- 'daily':
- job-timeout: 480
+ job-timeout: 600
jobs:
- 'functest-{installer}-{pod}-{testsuite}-{stream}'
diff --git a/jjb/functest/functest-docker.yaml b/jjb/functest/functest-docker.yaml
index fc2fd3cae..19967e9fd 100644
--- a/jjb/functest/functest-docker.yaml
+++ b/jjb/functest/functest-docker.yaml
@@ -12,6 +12,12 @@
- master:
branch: '{stream}'
disabled: false
+ - hunter:
+ branch: 'stable/{stream}'
+ disabled: false
+ - gambia:
+ branch: 'stable/{stream}'
+ disabled: false
- fraser:
branch: 'stable/{stream}'
disabled: false
@@ -37,6 +43,10 @@
exclude:
- stream: 'master'
image: 'parser'
+ - stream: 'hunter'
+ image: 'parser'
+ - stream: 'gambia'
+ image: 'parser'
- stream: 'fraser'
image: 'tempest'
- stream: 'fraser'
@@ -220,6 +230,8 @@
name: SLAVE_LABEL
default: 'opnfv-build-ubuntu'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: PROJECT
default: "{project}"
@@ -262,6 +274,8 @@
name: SLAVE_LABEL
default: '{slave_label}'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
diff --git a/jjb/functest/functest-kubernetes-docker.yaml b/jjb/functest/functest-kubernetes-docker.yaml
index 5fbb3be7e..c328f5d86 100644
--- a/jjb/functest/functest-kubernetes-docker.yaml
+++ b/jjb/functest/functest-kubernetes-docker.yaml
@@ -12,6 +12,12 @@
- master:
branch: '{stream}'
disabled: false
+ - hunter:
+ branch: 'stable/{stream}'
+ disabled: false
+ - gambia:
+ branch: 'stable/{stream}'
+ disabled: false
- fraser:
branch: 'stable/{stream}'
disabled: false
@@ -177,6 +183,8 @@
name: SLAVE_LABEL
default: 'opnfv-build-ubuntu'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: PROJECT
default: "{project}"
@@ -219,6 +227,8 @@
name: SLAVE_LABEL
default: '{slave_label}'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
diff --git a/jjb/functest/functest-kubernetes-project-jobs.yaml b/jjb/functest/functest-kubernetes-project-jobs.yaml
index 7f8dd8d53..46b77ce68 100644
--- a/jjb/functest/functest-kubernetes-project-jobs.yaml
+++ b/jjb/functest/functest-kubernetes-project-jobs.yaml
@@ -18,6 +18,14 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - hunter: &hunter
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
- fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
diff --git a/jjb/functest/functest-project-jobs.yaml b/jjb/functest/functest-project-jobs.yaml
index 9a123053f..b7220a83c 100644
--- a/jjb/functest/functest-project-jobs.yaml
+++ b/jjb/functest/functest-project-jobs.yaml
@@ -18,6 +18,14 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - hunter:
+ branch: 'stable/{stream}'
+ gs-pathname: ''
+ disabled: false
+ - gambia:
+ branch: 'stable/{stream}'
+ gs-pathname: ''
+ disabled: false
- fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
diff --git a/jjb/functest/xtesting-docker.yaml b/jjb/functest/xtesting-docker.yaml
index 251c3954e..88416bbf9 100644
--- a/jjb/functest/xtesting-docker.yaml
+++ b/jjb/functest/xtesting-docker.yaml
@@ -12,6 +12,12 @@
- master:
branch: '{stream}'
disabled: false
+ - hunter:
+ branch: 'stable/{stream}'
+ disabled: false
+ - gambia:
+ branch: 'stable/{stream}'
+ disabled: false
- fraser:
branch: 'stable/{stream}'
disabled: false
@@ -129,6 +135,8 @@
name: SLAVE_LABEL
default: 'opnfv-build-ubuntu'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: PROJECT
default: "{project}"
@@ -170,6 +178,8 @@
name: SLAVE_LABEL
default: '{slave_label}'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
diff --git a/jjb/functest/xtesting-project-jobs.yaml b/jjb/functest/xtesting-project-jobs.yaml
index e109387c6..239ae9f9b 100644
--- a/jjb/functest/xtesting-project-jobs.yaml
+++ b/jjb/functest/xtesting-project-jobs.yaml
@@ -18,6 +18,14 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
+ - hunter: &hunter
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
- fraser: &fraser
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
diff --git a/jjb/global-jjb b/jjb/global-jjb
deleted file mode 160000
-Subproject 9b240453b91f3c4b0844ea1c593721a1c421caa
diff --git a/jjb/global-jjb/jjb b/jjb/global-jjb/jjb
new file mode 120000
index 000000000..23c884f04
--- /dev/null
+++ b/jjb/global-jjb/jjb
@@ -0,0 +1 @@
+../../global-jjb/jjb \ No newline at end of file
diff --git a/jjb/global-jjb/shell b/jjb/global-jjb/shell
new file mode 120000
index 000000000..d37c43f86
--- /dev/null
+++ b/jjb/global-jjb/shell
@@ -0,0 +1 @@
+../../global-jjb/shell \ No newline at end of file
diff --git a/jjb/global/basic-jobs.yaml b/jjb/global/basic-jobs.yaml
index a8b9cffbc..d2c271105 100644
--- a/jjb/global/basic-jobs.yaml
+++ b/jjb/global/basic-jobs.yaml
@@ -13,7 +13,7 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser:
+ - gambia:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/global/releng-defaults.yaml b/jjb/global/releng-defaults.yaml
index ce008ca3b..34c5fdde2 100644
--- a/jjb/global/releng-defaults.yaml
+++ b/jjb/global/releng-defaults.yaml
@@ -16,7 +16,7 @@
build-node: 'opnfv-build'
gerrit-server-name: 'gerrit.opnfv.org'
jenkins-ssh-credential: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
- jjb-version: '2.0.3'
+ jjb-version: '2.2.1'
lftools-version: '<1.0.0'
properties:
diff --git a/jjb/global/releng-macros.yaml b/jjb/global/releng-macros.yaml
index 8055fdbdf..fe24ed56d 100644
--- a/jjb/global/releng-macros.yaml
+++ b/jjb/global/releng-macros.yaml
@@ -420,7 +420,7 @@
- shell: |
#!/bin/bash
# Install python package
- sudo pip install "flake8==2.6.2"
+ sudo -H pip install "flake8==2.6.2"
echo "Checking python code..."
for f in $(egrep '\.py$' modified_files)
@@ -438,7 +438,7 @@
- shell: |
#!/bin/bash
# sudo Install python packages
- sudo pip install "yamllint==1.8.2"
+ sudo -H pip install "yamllint==1.8.2"
echo "Checking yaml file..."
for f in $(egrep '\.ya?ml$' modified_files)
diff --git a/jjb/global/slave-params.yaml b/jjb/global/slave-params.yaml
index 0219be54b..805673a0a 100644
--- a/jjb/global/slave-params.yaml
+++ b/jjb/global/slave-params.yaml
@@ -10,6 +10,25 @@
- label:
name: SLAVE_LABEL
default: 'apex-baremetal-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: SSH_KEY
+ default: /root/.ssh/id_rsa
+ description: 'SSH key to use for Apex'
+
+- parameter:
+ name: 'apex-baremetal-gambia-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'apex-baremetal-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -25,6 +44,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-baremetal-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -40,6 +61,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-baremetal-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -55,6 +78,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-baremetal-danube'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -71,6 +96,25 @@
- label:
name: SLAVE_LABEL
default: 'apex-virtual-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: SSH_KEY
+ default: /root/.ssh/id_rsa
+ description: 'SSH key to use for Apex'
+
+- parameter:
+ name: 'apex-virtual-gambia-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'apex-virtual-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -86,6 +130,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-virtual-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -101,6 +147,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-virtual-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -116,6 +164,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-virtual-danube'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -210,6 +260,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -224,6 +276,8 @@
- label:
name: SLAVE_LABEL
default: 'compass-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -235,6 +289,8 @@
- label:
name: SLAVE_LABEL
default: 'compass-baremetal-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -246,6 +302,8 @@
- label:
name: SLAVE_LABEL
default: 'compass-baremetal-branch'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -257,6 +315,8 @@
- label:
name: SLAVE_LABEL
default: 'fuel-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -268,14 +328,12 @@
- label:
name: SLAVE_LABEL
default: 'armband-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- - string:
- name: LAB_CONFIG_URL
- default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab
- description: 'Base URI to the configuration directory'
- parameter:
name: 'auto-baremetal-defaults'
@@ -283,6 +341,8 @@
- label:
name: SLAVE_LABEL
default: 'auto-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -294,6 +354,8 @@
- label:
name: SLAVE_LABEL
default: 'joid-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -316,6 +378,8 @@
- label:
name: SLAVE_LABEL
default: 'daisy-baremetal'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: INSTALLER_IP
default: '10.20.7.3'
@@ -334,6 +398,8 @@
- label:
name: SLAVE_LABEL
default: 'apex-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -349,6 +415,21 @@
- label:
name: SLAVE_LABEL
default: 'compass-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+
+- parameter:
+ name: 'compass-arm-virtual-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'compass-arm-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -360,6 +441,8 @@
- label:
name: SLAVE_LABEL
default: 'compass-virtual-master'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -371,6 +454,8 @@
- label:
name: SLAVE_LABEL
default: 'compass-virtual-branch'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -382,6 +467,8 @@
- label:
name: SLAVE_LABEL
default: 'fuel-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -393,14 +480,12 @@
- label:
name: SLAVE_LABEL
default: 'armband-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- - string:
- name: LAB_CONFIG_URL
- default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab
- description: 'Base URI to the configuration directory'
- parameter:
name: 'joid-virtual-defaults'
@@ -408,6 +493,8 @@
- label:
name: SLAVE_LABEL
default: 'joid-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -427,6 +514,8 @@
- label:
name: SLAVE_LABEL
default: 'daisy-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: INSTALLER_IP
default: '10.20.11.2'
@@ -449,6 +538,8 @@
- label:
name: SLAVE_LABEL
default: 'opnfv-build-centos'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -465,6 +556,8 @@
name: SLAVE_LABEL
default: 'opnfv-build-ubuntu'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -481,6 +574,8 @@
name: SLAVE_LABEL
default: 'pharos-dashboard'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -497,6 +592,8 @@
name: SLAVE_LABEL
default: 'opnfv-build'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -513,10 +610,30 @@
name: SLAVE_LABEL
default: 'ericsson-build3'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+
+- parameter:
+ name: 'ericsson-build4-defaults'
+ parameters:
+ - label:
+ name: SLAVE_LABEL
+ default: 'ericsson-build4'
+ description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
- parameter:
name: 'huawei-build-defaults'
@@ -540,6 +657,8 @@
name: SLAVE_LABEL
default: 'opnfv-build-ubuntu-arm'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -659,6 +778,8 @@
- label:
name: SLAVE_LABEL
default: 'huawei-test'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -677,6 +798,8 @@
- label:
name: SLAVE_LABEL
default: 'huawei-test'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -716,6 +839,8 @@
- label:
name: SLAVE_LABEL
default: 'huawei-virtual5'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1031,6 +1156,8 @@
- label:
name: SLAVE_LABEL
default: 'ericsson-virtual5'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://git.opendaylight.org/gerrit/p/$PROJECT.git
@@ -1042,6 +1169,8 @@
- label:
name: SLAVE_LABEL
default: 'ericsson-virtual12'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1053,6 +1182,8 @@
- label:
name: SLAVE_LABEL
default: 'ericsson-virtual13'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1064,6 +1195,8 @@
- label:
name: SLAVE_LABEL
default: 'ericsson-virtual-pod1bl01'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1075,6 +1208,8 @@
- label:
name: SLAVE_LABEL
default: 'odl-netvirt-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1086,6 +1221,8 @@
- label:
name: SLAVE_LABEL
default: 'odl-netvirt-virtual-intel'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1116,6 +1253,8 @@
name: SLAVE_LABEL
default: 'sandbox-baremetal'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1132,6 +1271,8 @@
name: SLAVE_LABEL
default: 'sandbox-virtual'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
@@ -1148,6 +1289,8 @@
name: SLAVE_LABEL
default: 'dummy-pod1'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
diff --git a/jjb/joid/joid-daily-jobs.yaml b/jjb/joid/joid-daily-jobs.yaml
index 2719c7292..46ba1d23f 100644
--- a/jjb/joid/joid-daily-jobs.yaml
+++ b/jjb/joid/joid-daily-jobs.yaml
@@ -97,7 +97,7 @@
use-build-blocker: true
blocking-jobs:
- 'joid-(os|k8)-.*?-{pod}-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
@@ -186,7 +186,7 @@
use-build-blocker: true
blocking-jobs:
- 'joid-deploy-{pod}-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
wrappers:
- build-name:
diff --git a/jjb/joid/joid-verify-jobs.yaml b/jjb/joid/joid-verify-jobs.yaml
index 2d1c7c9f3..95ab0523f 100644
--- a/jjb/joid/joid-verify-jobs.yaml
+++ b/jjb/joid/joid-verify-jobs.yaml
@@ -57,7 +57,7 @@
blocking-jobs:
- 'joid-verify-master'
- 'joid-verify-danube'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm-gerrit
@@ -163,7 +163,7 @@
blocking-jobs:
- 'joid-verify-deploy-.*'
- 'joid-verify-test-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
scm:
- git-scm-gerrit
diff --git a/jjb/openci/create-ane.sh b/jjb/openci/create-ane.sh
deleted file mode 100755
index 8a4da8f52..000000000
--- a/jjb/openci/create-ane.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2018 Ericsson AB and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o errexit
-set -o nounset
-set -o pipefail
-
-# This script creates ArtifactPublishedEvent
-# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
-# constructed on a single line. This is something that needs to be fixed properly
-
-cat << EOF > $WORKSPACE/event.properties
-type=$PUBLISH_EVENT_TYPE
-origin=$PUBLISH_EVENT_ORIGIN
-eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'artifactLocation': '$ARTIFACT_LOCATION', 'confidenceLevel': { $CONFIDENCE_LEVEL } }"
-EOF
-echo "Constructed $PUBLISH_EVENT_TYPE"
-echo "--------------------------------------------"
-cat $WORKSPACE/event.properties
-echo "--------------------------------------------"
diff --git a/jjb/openci/create-ape.sh b/jjb/openci/create-ape.sh
new file mode 100755
index 000000000..7c9b46cc6
--- /dev/null
+++ b/jjb/openci/create-ape.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 Ericsson AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o errexit
+set -o nounset
+set -o pipefail
+
+# workaround for https://github.com/pypa/virtualenv/issues/1029
+export PS1=${PS1:-}
+
+# This script creates ArtifactPublishedEvent
+
+git clone https://gitlab.openci.io/openci/prototypes.git
+cd prototypes/federated-cicd
+virtualenv openci_publish
+cd openci_publish
+source bin/activate
+python setup.py install
+
+# generate event body
+cat <<EOF > ./json_body.txt
+{
+ "type": "$PUBLISH_EVENT_TYPE",
+ "id": "$(uuidgen)",
+ "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)",
+ "buildUrl": "$BUILD_URL",
+ "branch": "master",
+ "origin": "$PUBLISH_EVENT_ORIGIN",
+ "artifactLocation": "$ARTIFACT_LOCATION",
+ "confidenceLevel": "$CONFIDENCE_LEVEL"
+}
+EOF
+
+echo "Constructed $PUBLISH_EVENT_TYPE"
+echo "--------------------------------------------"
+cat ./json_body.txt
+echo "--------------------------------------------"
+
+python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt
+
+deactivate
diff --git a/jjb/openci/create-cde.sh b/jjb/openci/create-cde.sh
index 410db50e6..9780119ce 100755
--- a/jjb/openci/create-cde.sh
+++ b/jjb/openci/create-cde.sh
@@ -11,17 +11,37 @@ set -o errexit
set -o nounset
set -o pipefail
+export PS1=${PS1:-}
+
# This script creates CompositionDefinedEvent
-# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
-# constructed on a single line. This is something that needs to be fixed properly
-cat << EOF > $WORKSPACE/event.properties
-type=$PUBLISH_EVENT_TYPE
-origin=$PUBLISH_EVENT_ORIGIN
-scenario=$DEPLOY_SCENARIO
-eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA_LOCATION' }"
+git clone https://gitlab.openci.io/openci/prototypes.git
+cd prototypes/federated-cicd
+virtualenv openci_publish
+cd openci_publish
+source bin/activate
+python setup.py install
+
+# generate event body
+cat <<EOF > ./json_body.txt
+{
+ "type": "$PUBLISH_EVENT_TYPE",
+ "id": "$(uuidgen)",
+ "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)",
+ "buildUrl": "$BUILD_URL",
+ "branch": "master",
+ "origin": "$PUBLISH_EVENT_ORIGIN",
+ "scenario": "$DEPLOY_SCENARIO",
+ "compositionName": "$DEPLOY_SCENARIO",
+ "compositionMetadataUrl": "$SCENARIO_METADATA_LOCATION"
+}
EOF
+
echo "Constructed $PUBLISH_EVENT_TYPE"
echo "--------------------------------------------"
-cat $WORKSPACE/event.properties
+cat ./json_body.txt
echo "--------------------------------------------"
+
+python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt
+
+deactivate
diff --git a/jjb/openci/create-clme.sh b/jjb/openci/create-clme.sh
index 5e8ee10c9..2ece019b0 100755
--- a/jjb/openci/create-clme.sh
+++ b/jjb/openci/create-clme.sh
@@ -11,17 +11,38 @@ set -o errexit
set -o nounset
set -o pipefail
+export PS1=${PS1:-}
+
# This script creates ConfidenceLevelModifiedEvent
-# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
-# constructed on a single line. This is something that needs to be fixed properly
-cat << EOF > $WORKSPACE/event.properties
-type=$PUBLISH_EVENT_TYPE
-origin=$PUBLISH_EVENT_ORIGIN
-scenario=$DEPLOY_SCENARIO
-eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA_LOCATION', 'confidenceLevel': { $CONFIDENCE_LEVEL } }"
+git clone https://gitlab.openci.io/openci/prototypes.git
+cd prototypes/federated-cicd
+virtualenv openci_publish
+cd openci_publish
+source bin/activate
+python setup.py install
+
+# generate event body
+cat <<EOF > ./json_body.txt
+{
+ "type": "$PUBLISH_EVENT_TYPE",
+ "id": "$(uuidgen)",
+ "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)",
+ "buildUrl": "$BUILD_URL",
+ "branch": "master",
+ "origin": "$PUBLISH_EVENT_ORIGIN",
+ "scenario": "$DEPLOY_SCENARIO",
+ "compositionName": "$DEPLOY_SCENARIO",
+ "compositionMetadataUrl": "$SCENARIO_METADATA_LOCATION",
+ "confidenceLevel": "$CONFIDENCE_LEVEL"
+}
EOF
+
echo "Constructed $PUBLISH_EVENT_TYPE"
echo "--------------------------------------------"
-cat $WORKSPACE/event.properties
+cat ./json_body.txt
echo "--------------------------------------------"
+
+python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt
+
+deactivate
diff --git a/jjb/openci/openci-odl-daily-jobs.yaml b/jjb/openci/openci-odl-daily-jobs.yaml
index d80feadf6..bdaca5742 100644
--- a/jjb/openci/openci-odl-daily-jobs.yaml
+++ b/jjb/openci/openci-odl-daily-jobs.yaml
@@ -46,19 +46,7 @@
builders:
- shell:
- !include-raw-escape: ./create-ane.sh
- - inject:
- properties-file: "$WORKSPACE/event.properties"
-
- publishers:
- - jms-messaging:
- provider-name: openci.activemq
- msg-type: Custom
- msg-props: |
- type=$type
- origin=$origin
- msg-content:
- $eventBody
+ !include-raw-escape: ./create-ape.sh
# This job gets triggered by a ConfidenceLevelModifiedEvent published
# by OPNFV jobs so ODL can promote the autorelease artifact even further.
@@ -78,14 +66,8 @@
triggers:
- jms-messaging:
provider-name: openci.activemq
- selector: CI_TYPE = 'custom'
- checks:
- - field: origin
- expected-value: 'OPNFV'
- - field: type
- expected-value: 'ConfidenceLevelModifiedEvent'
- - field: scenario
- expected-value: 'os-odl-nofeature'
+ selector: |
+ JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'os-odl-nofeature-ha'
builders:
- shell: |
diff --git a/jjb/openci/openci-onap-daily-jobs.yaml b/jjb/openci/openci-onap-daily-jobs.yaml
index 28c3e6948..88589d8ac 100644
--- a/jjb/openci/openci-onap-daily-jobs.yaml
+++ b/jjb/openci/openci-onap-daily-jobs.yaml
@@ -46,19 +46,7 @@
builders:
- shell:
- !include-raw-escape: ./create-ane.sh
- - inject:
- properties-file: "$WORKSPACE/event.properties"
-
- publishers:
- - jms-messaging:
- provider-name: openci.activemq
- msg-type: Custom
- msg-props: |
- type=$type
- origin=$origin
- msg-content:
- $eventBody
+ !include-raw-escape: ./create-ape.sh
# This job gets triggered by a ConfidenceLevelModifiedEvent published
# by OPNFV jobs so ONAP can promote the autorelease artifact even further.
@@ -78,14 +66,8 @@
triggers:
- jms-messaging:
provider-name: openci.activemq
- selector: CI_TYPE = 'custom'
- checks:
- - field: origin
- expected-value: 'OPNFV'
- - field: type
- expected-value: 'ConfidenceLevelModifiedEvent'
- - field: scenario
- expected-value: 'k8-nosdn-onap'
+ selector: |
+ JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'k8-nosdn-onap-ha'
builders:
- shell: |
diff --git a/jjb/openci/openci-opnfv-daily-jobs.yaml b/jjb/openci/openci-opnfv-daily-jobs.yaml
index cb150148b..020171bc2 100644
--- a/jjb/openci/openci-opnfv-daily-jobs.yaml
+++ b/jjb/openci/openci-opnfv-daily-jobs.yaml
@@ -44,17 +44,24 @@
name: SCENARIO_METADATA_LOCATION
default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER
description: 'The location of the scenario metadata'
- - 'opnfv-build-defaults'
+ - label:
+ name: SLAVE_LABEL
+ default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+
+ wrappers:
+ - credentials-binding:
+ - username-password-separated:
+ credential-id: openci-connect-activemq
+ username: ACTIVEMQ_USER
+ password: ACTIVEMQ_PASSWORD
+ - workspace-cleanup
triggers:
- jms-messaging:
provider-name: openci.activemq
- selector: CI_TYPE = 'custom'
- checks:
- - field: origin
- expected-value: '{origin}'
- - field: type
- expected-value: 'ArtifactPublishedEvent'
+ selector: JMSType = 'ArtifactPublishedEvent' and JMSOrigin = '{origin}'
builders:
- shell: |
@@ -67,19 +74,6 @@
echo "----------------------------------"
- shell:
!include-raw-escape: ./create-cde.sh
- - inject:
- properties-file: "$WORKSPACE/event.properties"
-
- publishers:
- - jms-messaging:
- provider-name: openci.activemq
- msg-type: Custom
- msg-props: |
- type=$type
- origin=$origin
- scenario=$scenario
- msg-content:
- $eventBody
- job-template:
name: 'openci-opnfv-{scenario}-test-daily-{stream}'
@@ -109,19 +103,24 @@
name: CONFIDENCE_LEVEL
default: "'opnfvdaily': 'SUCCESS'"
description: 'The confidence level the published artifact gained'
- - 'opnfv-build-defaults'
+ - label:
+ name: SLAVE_LABEL
+ default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+
+ wrappers:
+ - credentials-binding:
+ - username-password-separated:
+ credential-id: openci-connect-activemq
+ username: ACTIVEMQ_USER
+ password: ACTIVEMQ_PASSWORD
+ - workspace-cleanup
triggers:
- jms-messaging:
provider-name: openci.activemq
- selector: CI_TYPE = 'custom'
- checks:
- - field: origin
- expected-value: 'OPNFV'
- - field: type
- expected-value: 'CompositionDefinedEvent'
- - field: scenario
- expected-value: '{scenario}'
+ selector: JMSType = 'CompositionDefinedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = '{scenario}'
builders:
- shell: |
@@ -134,16 +133,3 @@
echo "----------------------------------"
- shell:
!include-raw-escape: ./create-clme.sh
- - inject:
- properties-file: "$WORKSPACE/event.properties"
-
- publishers:
- - jms-messaging:
- provider-name: openci.activemq
- msg-type: Custom
- msg-props: |
- type=$type
- origin=$origin
- scenario=$scenario
- msg-content:
- $eventBody
diff --git a/jjb/opnfvdocs/docs-rtd.yaml b/jjb/opnfvdocs/docs-rtd.yaml
index ece856903..1492a68ff 100644
--- a/jjb/opnfvdocs/docs-rtd.yaml
+++ b/jjb/opnfvdocs/docs-rtd.yaml
@@ -29,6 +29,8 @@
name: SLAVE_LABEL
default: 'lf-build1'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- project-parameter:
project: '{project}'
branch: '{branch}'
@@ -60,6 +62,8 @@
name: SLAVE_LABEL
default: 'lf-build2'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- project-parameter:
project: '{project}'
branch: '{branch}'
@@ -77,18 +81,24 @@
server: 'gerrit.opnfv.org'
project: '**'
branch: '{branch}'
- files: 'docs/**/*.*'
+ files: 'docs/**'
builders:
- shell: |
if [ "$GERRIT_PROJECT" != "opnfvdocs" ]; then
cd docs/submodules/$GERRIT_PROJECT
git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
+ cd -
else
git fetch origin $GERRIT_REFSPEC && git checkout FETCH_HEAD
fi
+ if [ -d docs/subdmodules ]; then
+ for project in docs/submodules/*; do
+ cd $project && git submodule deinit -f . && cd -
+ done
+ fi
- shell: |
- sudo pip install virtualenv
+ sudo -H pip install virtualenv
virtualenv $WORKSPACE/venv
. $WORKSPACE/venv/bin/activate
pip install --upgrade pip
diff --git a/jjb/ovn4nfv/ovn4nfv-project-jobs.yaml b/jjb/ovn4nfv/ovn4nfv-project-jobs.yaml
index 2ce4b6df9..8fbd75ba9 100644
--- a/jjb/ovn4nfv/ovn4nfv-project-jobs.yaml
+++ b/jjb/ovn4nfv/ovn4nfv-project-jobs.yaml
@@ -9,7 +9,11 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser: &fraser
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ - fraser:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
diff --git a/jjb/ovn4nfv/ovn4nfv-rtd-jobs.yaml b/jjb/ovn4nfv/ovn4nfv-rtd-jobs.yaml
new file mode 100644
index 000000000..3169f3369
--- /dev/null
+++ b/jjb/ovn4nfv/ovn4nfv-rtd-jobs.yaml
@@ -0,0 +1,12 @@
+---
+- project:
+ name: ovn4nfv-rtd
+ project: ovn4nfv
+ project-name: ovn4nfv
+
+ project-pattern: 'ovn4nfv'
+ rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-ovn4nfv/47381/'
+ rtd-token: 'f131200fd878a5c443f18c134c3bfda122538bce'
+
+ jobs:
+ - '{project-name}-rtd-jobs'
diff --git a/jjb/releng/compass4nfv-docker.yaml b/jjb/releng/compass4nfv-docker.yaml
index 2a5453658..491da0e59 100644
--- a/jjb/releng/compass4nfv-docker.yaml
+++ b/jjb/releng/compass4nfv-docker.yaml
@@ -216,6 +216,8 @@
name: SLAVE_LABEL
default: '{slave_label}'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: GIT_BASE
default: https://gerrit.opnfv.org/gerrit/$PROJECT
diff --git a/jjb/releng/opnfv-docker-arm.yaml b/jjb/releng/opnfv-docker-arm.yaml
index 9066b419e..68217cbd0 100644
--- a/jjb/releng/opnfv-docker-arm.yaml
+++ b/jjb/releng/opnfv-docker-arm.yaml
@@ -19,6 +19,10 @@
stream: fraser
branch: 'stable/{stream}'
disabled: false
+ gambia: &gambia
+ stream: gambia
+ branch: 'stable/{stream}'
+ disabled: false
dovetail-arm-receivers: &dovetail-arm-receivers
receivers: >
cristina.pauna@enea.com
@@ -129,7 +133,7 @@
<<: *storperf-arm-receivers
- 'yardstick':
project: 'yardstick'
- <<: *fraser
+ <<: *gambia
<<: *yardstick-arm-receivers
# yamllint enable rule:key-duplicates
diff --git a/jjb/releng/opnfv-docker.yaml b/jjb/releng/opnfv-docker.yaml
index c31860a16..40e62b3bc 100644
--- a/jjb/releng/opnfv-docker.yaml
+++ b/jjb/releng/opnfv-docker.yaml
@@ -23,9 +23,22 @@
stream: fraser
branch: 'stable/{stream}'
disabled: false
+ gambia: &gambia
+ stream: gambia
+ branch: 'stable/{stream}'
+ disabled: false
+ pharos-tools-receivers: &pharos_tools_receivers
+ receivers: >
+ pberberian@iol.unh.edu
+ sbergeron@iol.unh.edu
storperf-receivers: &storperf-receivers
receivers: >
mark.beierl@emc.com
+ yardstick-receivers: &yardstick-receivers
+ receivers: >
+ limingjiang@huawei.com
+ rexlee8776@gmail.com
+ emma.l.foley@intel.com
other-receivers: &other-receivers
receivers: ''
@@ -135,6 +148,18 @@
project: 'nfvbench'
<<: *master
<<: *other-receivers
+ - 'pharos-tools-laas-dashboard':
+ project: 'pharos-tools'
+ dockerdir: 'dashboard'
+ dockerfile: 'web/Dockerfile'
+ <<: *master
+ <<: *pharos_tools_receivers
+ - 'pharos-tools-laas-celery':
+ project: 'pharos-tools'
+ dockerdir: 'dashboard'
+ dockerfile: 'worker/Dockerfile'
+ <<: *master
+ <<: *pharos_tools_receivers
- 'qtip':
project: 'qtip'
dockerdir: '.'
@@ -179,7 +204,13 @@
- 'yardstick':
project: 'yardstick'
<<: *master
- <<: *other-receivers
+ <<: *yardstick-receivers
+ - 'yardstick-image-k8s':
+ project: 'yardstick'
+ dockerdir: 'docker/k8s'
+ <<: *master
+ <<: *yardstick-receivers
+
# projects with jobs for euphrates
- 'barometer-collectd':
project: 'barometer'
@@ -257,8 +288,8 @@
<<: *storperf-receivers
- 'yardstick':
project: 'yardstick'
- <<: *fraser
- <<: *other-receivers
+ <<: *gambia
+ <<: *yardstick-receivers
# projects with jobs for fraser
- 'bottlenecks':
project: 'bottlenecks'
@@ -294,6 +325,10 @@
dockerfile: 'Dockerfile'
<<: *fraser
<<: *other-receivers
+ - 'dovetail':
+ project: 'dovetail'
+ <<: *fraser
+ <<: *other-receivers
# yamllint enable rule:key-duplicates
jobs:
- "{dockerrepo}-docker-build-push-{stream}"
diff --git a/jjb/releng/opnfv-utils.yaml b/jjb/releng/opnfv-utils.yaml
index 71013f4ff..b0ea7672c 100644
--- a/jjb/releng/opnfv-utils.yaml
+++ b/jjb/releng/opnfv-utils.yaml
@@ -62,7 +62,7 @@
name: SLAVE_NAME
description: Where to create the archive
default-slaves:
- - master
+ - lf-build2
allowed-multiselect: false
ignore-offline-nodes: true
@@ -83,6 +83,7 @@
reply-to: >
helpdesk@opnfv.org
recipients: >
+ tbramwell@linuxfoundation.org
swinslow@linuxfoundation.org
diff --git a/jjb/releng/releng-release-create-branch.sh b/jjb/releng/releng-release-create-branch.sh
index 92be0e637..663ff19e7 100644
--- a/jjb/releng/releng-release-create-branch.sh
+++ b/jjb/releng/releng-release-create-branch.sh
@@ -26,7 +26,20 @@ STREAM=${STREAM:-'nostream'}
RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM")
for release_file in $RELEASE_FILES; do
- python releases/scripts/create_branch.py -f $release_file
+
+ while read -r repo branch ref; do
+
+ echo "$repo" "$branch" "$ref"
+ branches="$(git ls-remote "https://gerrit.opnfv.org/gerrit/$repo.git" "refs/heads/$branch")"
+
+ if ! [ -z "$branches" ]; then
+ echo "refs/heads/$branch already exists at $ref ($branches)"
+ else
+ ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref"
+ fi
+
+ done < <(python releases/scripts/repos.py -b -f "$release_file")
+
python releases/scripts/create_jobs.py -f $release_file
NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-)
if [ -n "$NEW_FILES" ]; then
diff --git a/jjb/releng/releng-release-create-venv.sh b/jjb/releng/releng-release-create-venv.sh
index 0d5635b59..de585fdb3 100644
--- a/jjb/releng/releng-release-create-venv.sh
+++ b/jjb/releng/releng-release-create-venv.sh
@@ -10,7 +10,7 @@
set -e -o pipefail
echo "---> Create virtualenv"
-sudo pip install virtualenv
+sudo -H pip install virtualenv
virtualenv $WORKSPACE/venv
# shellcheck source=$WORKSPACE/venv/bin/activate disable=SC1091
source $WORKSPACE/venv/bin/activate
diff --git a/jjb/releng/releng-release-jobs.yaml b/jjb/releng/releng-release-jobs.yaml
index c24cdb91d..3136d7855 100644
--- a/jjb/releng/releng-release-jobs.yaml
+++ b/jjb/releng/releng-release-jobs.yaml
@@ -14,6 +14,8 @@
stream:
- fraser
+ - gambia
+ - hunter
jobs:
- 'releng-release-{stream}-verify'
@@ -105,7 +107,7 @@
- shell: !include-raw-escape:
- releng-release-create-venv.sh
- releng-release-tagging.sh
- # - releng-release-create-branch.sh
+ - releng-release-create-branch.sh
publishers:
- email-jenkins-admins-on-failure
diff --git a/jjb/releng/testresults-automate.yaml b/jjb/releng/testresults-automate.yaml
index 01fbe0c6d..3a9beadfe 100644
--- a/jjb/releng/testresults-automate.yaml
+++ b/jjb/releng/testresults-automate.yaml
@@ -28,6 +28,8 @@
name: SLAVE_LABEL
default: 'testresults'
description: 'Slave label on Jenkins'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- project-parameter:
project: 'releng-testresults'
branch: 'master'
diff --git a/jjb/sfc/sfc-project-jobs.yaml b/jjb/sfc/sfc-project-jobs.yaml
index f858d1f5f..f8ceef740 100644
--- a/jjb/sfc/sfc-project-jobs.yaml
+++ b/jjb/sfc/sfc-project-jobs.yaml
@@ -16,7 +16,11 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser: &fraser
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ - fraser:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: true
diff --git a/jjb/stor4nfv/stor4nfv-jobs.yaml b/jjb/stor4nfv/stor4nfv-jobs.yaml
new file mode 100644
index 000000000..29af9ffbd
--- /dev/null
+++ b/jjb/stor4nfv/stor4nfv-jobs.yaml
@@ -0,0 +1,12 @@
+---
+- project:
+ name: stor4nfv-docs
+ project: 'stor4nfv'
+ project-name: 'stor4nfv'
+
+ project-pattern: 'stor4nfv'
+ rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-stor4nfv/47394/'
+ rtd-token: '9c189b44cf08de75dc06253558cc86ed93982cbb'
+
+ jobs:
+ - '{project-name}-rtd-jobs'
diff --git a/jjb/vswitchperf/vswitchperf.yaml b/jjb/vswitchperf/vswitchperf.yaml
index ba0742f3b..569b115b5 100644
--- a/jjb/vswitchperf/vswitchperf.yaml
+++ b/jjb/vswitchperf/vswitchperf.yaml
@@ -34,7 +34,7 @@
- 'vswitchperf-verify-.*'
- 'vswitchperf-merge-.*'
- 'vswitchperf-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
@@ -75,7 +75,7 @@
- 'vswitchperf-verify-.*'
- 'vswitchperf-merge-.*'
- 'vswitchperf-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
@@ -148,7 +148,7 @@
- 'vswitchperf-verify-.*'
- 'vswitchperf-merge-.*'
- 'vswitchperf-daily-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
diff --git a/jjb/xci/bifrost-periodic-jobs.yaml b/jjb/xci/bifrost-periodic-jobs.yaml
index fbe2e205a..4c61be193 100644
--- a/jjb/xci/bifrost-periodic-jobs.yaml
+++ b/jjb/xci/bifrost-periodic-jobs.yaml
@@ -82,7 +82,7 @@
- '^xci-functest.*'
- '^bifrost-.*periodic.*'
- '^osa-.*periodic.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- logrotate-default
parameters:
@@ -122,6 +122,8 @@
- label:
name: SLAVE_LABEL
default: '{slave-label}'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: CI_LOOP
default: 'periodic'
diff --git a/jjb/xci/bifrost-verify-jobs.yaml b/jjb/xci/bifrost-verify-jobs.yaml
index 4ca783524..f895cf672 100644
--- a/jjb/xci/bifrost-verify-jobs.yaml
+++ b/jjb/xci/bifrost-verify-jobs.yaml
@@ -80,7 +80,7 @@
- xci-verify-virtual
option: category
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- string:
@@ -128,6 +128,8 @@
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: CI_LOOP
default: 'verify'
diff --git a/jjb/xci/osa-periodic-jobs.yaml b/jjb/xci/osa-periodic-jobs.yaml
index 6c2d165a4..b731bf52b 100644
--- a/jjb/xci/osa-periodic-jobs.yaml
+++ b/jjb/xci/osa-periodic-jobs.yaml
@@ -58,7 +58,7 @@
- 'bifrost-periodic-{distro}-.*'
- 'xci-osa-verify-{distro}-.*'
- 'xci-osa-periodic-{distro}-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- throttle:
max-per-node: 2
max-total: 10
@@ -82,6 +82,8 @@
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: OPENSTACK_OSA_VERSION
default: 'master'
@@ -144,7 +146,7 @@
blocking-jobs:
- '.*-bifrost-verify-.*'
- '.*-bifrost-periodic-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- project-parameter:
diff --git a/jjb/xci/xci-daily-jobs.yaml b/jjb/xci/xci-daily-jobs.yaml
index 2c692dd45..18b20f2ac 100644
--- a/jjb/xci/xci-daily-jobs.yaml
+++ b/jjb/xci/xci-daily-jobs.yaml
@@ -17,57 +17,46 @@
# -------------------------------
scenario:
- 'os-nosdn-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'os-nosdn-nofeature'
installer-type: 'osa'
xci-flavor: 'mini'
- 'os-nosdn-osm-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'os-nosdn-osm'
installer-type: 'osa'
xci-flavor: 'mini'
- 'os-odl-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'os-odl-nofeature'
installer-type: 'osa'
xci-flavor: 'mini'
- 'os-odl-bgpvpn-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'os-odl-bgpvpn'
installer-type: 'osa'
xci-flavor: 'mini'
- 'os-odl-sfc-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'os-odl-sfc'
installer-type: 'osa'
xci-flavor: 'mini'
- 'k8-nosdn-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'k8-nosdn-nofeature'
installer-type: 'kubespray'
xci-flavor: 'mini'
- 'k8-canal-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'k8-canal-nofeature'
installer-type: 'kubespray'
xci-flavor: 'mini'
- 'k8-calico-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'k8-calico-nofeature'
installer-type: 'kubespray'
xci-flavor: 'mini'
- 'k8-contiv-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'k8-contiv-nofeature'
installer-type: 'kubespray'
xci-flavor: 'mini'
- 'k8-flannel-nofeature-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'k8-flannel-nofeature'
installer-type: 'kubespray'
xci-flavor: 'mini'
- 'k8-nosdn-istio-noha':
- auto-trigger-name: 'daily-trigger-disabled'
deploy-scenario: 'k8-nosdn-istio'
installer-type: 'kubespray'
xci-flavor: 'mini'
@@ -130,9 +119,12 @@
- '^xci-functest.*'
- '^bifrost-.*periodic.*'
- '^osa-.*periodic.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- logrotate-default
+ triggers:
+ - timed: '@midnight'
+
parameters:
- string:
name: DEPLOY_SCENARIO
@@ -146,10 +138,15 @@
- label:
name: SLAVE_LABEL
default: '{slave-label}'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: XCI_DISTRO
default: '{distro}'
- string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
+ - string:
name: FUNCTEST_MODE
default: 'tier'
- string:
@@ -163,9 +160,6 @@
default: https://gerrit.opnfv.org/gerrit/$PROJECT
description: 'Git URL to use on this Jenkins Slave'
- triggers:
- - '{auto-trigger-name}'
-
wrappers:
- ssh-agent-wrapper
- build-timeout:
@@ -184,6 +178,7 @@
XCI_FLAVOR=$XCI_FLAVOR
CI_LOOP=$CI_LOOP
XCI_DISTRO=$XCI_DISTRO
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
same-node: true
@@ -197,6 +192,7 @@
XCI_FLAVOR=$XCI_FLAVOR
CI_LOOP=$CI_LOOP
XCI_DISTRO=$XCI_DISTRO
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
same-node: true
@@ -243,7 +239,7 @@
- '^xci-functest.*'
- '^bifrost-.*periodic.*'
- '^osa-.*periodic.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- throttle:
enabled: true
max-per-node: 1
@@ -278,6 +274,11 @@
- label:
name: SLAVE_LABEL
default: '{slave-label}'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
+ - string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
- string:
name: FUNCTEST_MODE
default: 'tier'
@@ -340,7 +341,9 @@
declare -x "\${var}" 2>/dev/null
echo $var
done < ${XCI_PATH}/.cache/xci.env && cd ${XCI_PATH}/xci && \
- ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml
+ ansible-playbook -i playbooks/dynamic_inventory.py \
+ -i ${XCI_PATH}/.cache/repos/openstack-ansible/inventory/dynamic_inventory.py \
+ playbooks/prepare-tests.yml
ssh root@192.168.122.2 "/root/prepare-tests.sh"
echo "---------------------------------------------------------------------------------"
diff --git a/jjb/xci/xci-merge-jobs.yaml b/jjb/xci/xci-merge-jobs.yaml
index afa88a224..c468be6d1 100644
--- a/jjb/xci/xci-merge-jobs.yaml
+++ b/jjb/xci/xci-merge-jobs.yaml
@@ -108,6 +108,8 @@
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: CI_LOOP
default: 'merge'
@@ -228,7 +230,7 @@
- 'openstack-bifrost-verify-{distro}-.*'
- 'xci-osa-verify-{distro}-.*'
- 'xci-osa-periodic-{distro}-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- throttle:
max-per-node: 1
max-total: 3
@@ -252,10 +254,15 @@
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: CI_LOOP
default: 'merge'
- string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
+ - string:
name: FUNCTEST_MODE
default: 'tier'
- string:
@@ -292,6 +299,7 @@
GERRIT_REFSPEC=$GERRIT_REFSPEC
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
@@ -312,6 +320,7 @@
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
CI_LOOP=$CI_LOOP
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
@@ -348,7 +357,7 @@
- '.*-bifrost-periodic-.*'
- 'osa-verify-.*'
- 'osa-periodic-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- string:
@@ -361,6 +370,9 @@
name: CI_LOOP
default: 'merge'
- string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
+ - string:
name: FUNCTEST_MODE
default: 'tier'
- string:
diff --git a/jjb/xci/xci-run-functest.sh b/jjb/xci/xci-run-functest.sh
index 992194ca3..610268c28 100755
--- a/jjb/xci/xci-run-functest.sh
+++ b/jjb/xci/xci-run-functest.sh
@@ -49,7 +49,9 @@ export XCI_VENV=${XCI_PATH}/venv
ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; \
while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && \
- cd releng-xci/xci && ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml"
+ cd releng-xci/xci && ansible-playbook -i playbooks/dynamic_inventory.py \
+ -i ${XCI_PATH}/.cache/repos/openstack-ansible/inventory/dynamic_inventory.py \
+ playbooks/prepare-tests.yml"
echo "Prepare OPNFV VM for Tests"
ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/prepare-tests.sh"
echo "Running Functest"
diff --git a/jjb/xci/xci-verify-jobs.yaml b/jjb/xci/xci-verify-jobs.yaml
index 020ec8bac..9edf55597 100644
--- a/jjb/xci/xci-verify-jobs.yaml
+++ b/jjb/xci/xci-verify-jobs.yaml
@@ -72,7 +72,7 @@
- 'openstack-bifrost-verify-{distro}-.*'
- 'xci-osa-verify-{distro}-.*'
- 'xci-osa-periodic-{distro}-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
- throttle:
max-per-node: 2
max-total: 10
@@ -140,6 +140,8 @@
- label:
name: SLAVE_LABEL
default: 'xci-virtual'
+ all-nodes: false
+ node-eligibility: 'ignore-offline'
- string:
name: DISTRO
default: '{distro}'
@@ -150,6 +152,9 @@
name: CI_LOOP
default: 'verify'
- string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
+ - string:
name: FUNCTEST_MODE
default: 'tier'
- string:
@@ -161,6 +166,7 @@
description: 'Git URL to use on this Jenkins Slave'
builders:
+ - 'xci-verify-clean-vm-macro'
- 'xci-verify-set-scenario-macro'
- inject:
properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
@@ -181,6 +187,7 @@
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
CI_LOOP=$CI_LOOP
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
@@ -201,6 +208,7 @@
GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
CI_LOOP=$CI_LOOP
+ FUNCTEST_VERSION=$FUNCTEST_VERSION
FUNCTEST_MODE=$FUNCTEST_MODE
FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
node-parameters: true
@@ -213,7 +221,6 @@
- role: BOTH
build-on:
- ABORTED
- - FAILURE
- NOT_BUILT
- SUCCESS
- UNSTABLE
@@ -238,7 +245,7 @@
- '.*-bifrost-periodic-.*'
- 'osa-verify-.*'
- 'osa-periodic-.*'
- block-level: 'NODE'
+ blocking-level: 'NODE'
parameters:
- string:
@@ -251,6 +258,9 @@
name: CI_LOOP
default: 'verify'
- string:
+ name: FUNCTEST_VERSION
+ default: 'hunter'
+ - string:
name: FUNCTEST_MODE
default: 'tier'
- string:
@@ -290,6 +300,12 @@
# builder macros
# -------------------------------
- builder:
+ name: 'xci-verify-clean-vm-macro'
+ builders:
+ - shell:
+ !include-raw: ./xci-cleanup.sh
+
+- builder:
name: 'xci-verify-set-scenario-macro'
builders:
- shell:
diff --git a/jjb/yardstick/yardstick-daily-jobs.yaml b/jjb/yardstick/yardstick-daily-jobs.yaml
index c5a35086f..e42dbedc1 100644
--- a/jjb/yardstick/yardstick-daily-jobs.yaml
+++ b/jjb/yardstick/yardstick-daily-jobs.yaml
@@ -15,11 +15,28 @@
branch: '{stream}'
gs-pathname: ''
docker-tag: 'latest'
+ gambia: &gambia
+ stream: gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '{stream}'
+ docker-tag: 'stable'
+ # Temporary fraser entry, until all fraser-tied PODs below migrate to gambia
fraser: &fraser
stream: fraser
branch: 'stable/{stream}'
gs-pathname: '{stream}'
- docker-tag: 'stable'
+ # In the meantime, docker image 'stable' will carry gambia contents, and
+ # there is no implemented way to build a docker image with 'fraser' tag.
+ # Available docker image tag options, as of 2018-10-03:
+ # - 'opnfv-6.2.1', built on 2018-07-02, is rather old.
+ # - 'ovp-2.0.0', built on 2018-09-21, is a good fit despite its name: it
+ # was built using SHA1 6c10a2d9cc3fe10e0bdd73a0985ab767b9479afc, which
+ # is the same as used for the most recent 'stable' docker image carrying
+ # fraser contents, built on 2018-09-13 and used so far by the fraser-
+ # tied PODs below.
+ # The alternative would be to create a new 'opnfv-6.2.2' git tag, but that
+ # would just build another image using the same SHA1 as for 'ovp-2.0.0'.
+ docker-tag: 'ovp-2.0.0'
# -------------------------------
# POD, INSTALLER, AND BRANCH MAPPING
# -------------------------------
diff --git a/jjb/yardstick/yardstick-daily.sh b/jjb/yardstick/yardstick-daily.sh
index 783c64ee1..58d590c27 100755
--- a/jjb/yardstick/yardstick-daily.sh
+++ b/jjb/yardstick/yardstick-daily.sh
@@ -41,10 +41,6 @@ elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then
cacert_file_vol="-v ${HOME}/os_cacert:/etc/ssl/certs/mcp_os_cacert"
sshkey="-v ${SSH_KEY}:/root/.ssh/mcp.rsa"
fi
-# Set iptables rule to allow forwarding return traffic for container
-if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
- sudo iptables -I FORWARD -j RETURN
-fi
opts="--privileged=true --rm"
envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
diff --git a/jjb/yardstick/yardstick-project-jobs.yaml b/jjb/yardstick/yardstick-project-jobs.yaml
index 56e825e19..ace2e0265 100644
--- a/jjb/yardstick/yardstick-project-jobs.yaml
+++ b/jjb/yardstick/yardstick-project-jobs.yaml
@@ -17,7 +17,11 @@
branch: '{stream}'
gs-pathname: ''
disabled: false
- - fraser: &fraser
+ - gambia: &gambia
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ - fraser:
branch: 'stable/{stream}'
gs-pathname: '/{stream}'
disabled: false
@@ -35,7 +39,7 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - 'ericsson-build4-defaults'
scm:
- git-scm-gerrit
@@ -83,7 +87,7 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
- - 'opnfv-build-ubuntu-defaults'
+ - 'ericsson-build4-defaults'
- string:
name: GS_URL
default: '$GS_BASE{gs-pathname}'
diff --git a/modules/opnfv/deployment/example.py b/modules/opnfv/deployment/example.py
index 52d9b5630..1e54321c7 100644
--- a/modules/opnfv/deployment/example.py
+++ b/modules/opnfv/deployment/example.py
@@ -23,15 +23,17 @@ print(handler.get_deployment_info())
print("########## FUEL ##########")
+# NOTE: If you get traces containing <paramiko.ecdsakey.ECDSAKey object [...]>
+# make sure 10.20.0.2 is not already in ~/.ssh/known_hosts with another sig
handler = factory.Factory.get_handler('fuel',
'10.20.0.2',
- 'root',
- installer_pwd='r00tme')
+ 'ubuntu',
+ pkey_file='/var/lib/opnfv/mcp.rsa')
print(handler.get_deployment_info())
-print("List of nodes in cluster 4:")
-nodes = handler.get_nodes({'cluster': '4'})
+print("List of nodes in cluster")
+nodes = handler.get_nodes()
for node in nodes:
print(node)
diff --git a/modules/opnfv/deployment/factory.py b/modules/opnfv/deployment/factory.py
index 1fd8d447b..cd2fc3645 100644
--- a/modules/opnfv/deployment/factory.py
+++ b/modules/opnfv/deployment/factory.py
@@ -42,7 +42,7 @@ class Factory(object):
elif installer.lower() == "fuel":
return fuel_adapter.FuelAdapter(installer_ip=installer_ip,
installer_user=installer_user,
- installer_pwd=installer_pwd)
+ pkey_file=pkey_file)
elif installer.lower() == "compass":
return compass_adapter.ContainerizedCompassAdapter(
installer_ip=installer_ip,
diff --git a/modules/opnfv/deployment/fuel/adapter.py b/modules/opnfv/deployment/fuel/adapter.py
index a217767ba..a57168d0e 100644
--- a/modules/opnfv/deployment/fuel/adapter.py
+++ b/modules/opnfv/deployment/fuel/adapter.py
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Ericsson AB and others.
+# Copyright (c) 2018 Ericsson AB and others.
# Author: Jose Lausuch (jose.lausuch@ericsson.com)
# George Paraskevopoulos (geopar@intracom-telecom.com)
# All rights reserved. This program and the accompanying materials
@@ -7,193 +7,129 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+'''
+ This modules implements the Fuel@OPNFV adapter
+ - host executing this module needs network connectivity to a cluster via:
+ * mcpcontrol network (usually 10.20.0.0/24, created by installer);
+ * PXE/admin network;
+ The above are always true for an OPNFV Pharos jumpserver.
+ - key-based SSH auth is used throughout the cluster, without proxy-ing
+ cluster node access via Salt master (old Fuel@OPNFV used to);
+'''
+
+from yaml import safe_load, YAMLError
from opnfv.deployment import manager
from opnfv.utils import opnfv_logger as logger
from opnfv.utils import ssh_utils
-logger = logger.Logger(__name__).getLogger()
+LOGGER = logger.Logger(__name__).getLogger()
class FuelAdapter(manager.DeploymentHandler):
+ '''
+ This class extends the generic handler with Fuel@OPNFV specifics
+ '''
- def __init__(self, installer_ip, installer_user, installer_pwd):
+ def __init__(self, installer_ip, installer_user, pkey_file):
super(FuelAdapter, self).__init__(installer='fuel',
installer_ip=installer_ip,
installer_user=installer_user,
- installer_pwd=installer_pwd,
- pkey_file=None)
-
- def _get_clusters(self):
- environments = []
- output = self.runcmd_fuel_env()
- lines = output.rsplit('\n')
- if len(lines) < 2:
- logger.info("No environments found in the deployment.")
- return None
- else:
- fields = lines[0].rsplit(' | ')
-
- index_id = -1
- index_status = -1
- index_name = -1
- index_release_id = -1
-
- for i in range(len(fields)):
- if "id" in fields[i]:
- index_id = i
- elif "status" in fields[i]:
- index_status = i
- elif "name" in fields[i]:
- index_name = i
- elif "release_id" in fields[i]:
- index_release_id = i
-
- # order env info
- for i in range(2, len(lines)):
- fields = lines[i].rsplit(' | ')
- dict = {"id": fields[index_id].strip(),
- "status": fields[index_status].strip(),
- "name": fields[index_name].strip(),
- "release_id": fields[index_release_id].strip()}
- environments.append(dict)
-
- return environments
+ installer_pwd=None,
+ pkey_file=pkey_file)
def get_nodes(self, options=None):
-
- if options and options['cluster'] and len(self.nodes) > 0:
- n = []
- for node in self.nodes:
- if str(node.info['cluster']) == str(options['cluster']):
- n.append(node)
- return n
-
+ '''
+ Generates a list of all the nodes in the deployment
+ '''
+ # Unlike old Fuel@Openstack, we don't keep track of different clusters
+ # explicitly, but through domain names.
+ # For simplicity, we will assume a single cluster per Salt master node.
try:
# if we have retrieved previously all the nodes, don't do it again
# This fails the first time when the constructor calls this method
# therefore the try/except
if len(self.nodes) > 0:
return self.nodes
+ # pylint: disable=bare-except
except:
pass
+ # Manager roles to reclass properties mapping
+ _map = {
+ 'salt:master:enabled': manager.Role.INSTALLER,
+ 'maas:region:enabled': manager.Role.INSTALLER,
+ 'nova:controller:enabled': manager.Role.CONTROLLER,
+ 'nova:compute:enabled': manager.Role.COMPUTE,
+ 'opendaylight:server:enabled': manager.Role.ODL,
+ }
nodes = []
- cmd = 'fuel node'
+ cmd = ("sudo salt '*' pillar.item {} --out yaml --static 2>/dev/null"
+ .format(' '.join(_map.keys() + ['_param:pxe_admin_address'])))
+ # Sample output (for one node):
+ # cmp001.mcp-ovs-noha.local:
+ # _param:pxe_admin_address: 192.168.11.34
+ # maas:region:enabled: ''
+ # nova:compute:enabled: true
+ # nova:controller:enabled: ''
+ # opendaylight:server:enabled: ''
+ # retcode: 0
+ # salt:master:enabled: ''
output = self.installer_node.run_cmd(cmd)
- lines = output.rsplit('\n')
- if len(lines) < 2:
- logger.info("No nodes found in the deployment.")
+ if output.startswith('No minions matched the target'):
+ LOGGER.info('No nodes found in the deployment.')
return nodes
- # get fields indexes
- fields = lines[0].rsplit(' | ')
-
- index_id = -1
- index_status = -1
- index_name = -1
- index_cluster = -1
- index_ip = -1
- index_mac = -1
- index_roles = -1
- index_online = -1
-
- for i in range(len(fields)):
- if "group_id" in fields[i]:
- break
- elif "id" in fields[i]:
- index_id = i
- elif "status" in fields[i]:
- index_status = i
- elif "name" in fields[i]:
- index_name = i
- elif "cluster" in fields[i]:
- index_cluster = i
- elif "ip" in fields[i]:
- index_ip = i
- elif "mac" in fields[i]:
- index_mac = i
- elif "roles " in fields[i] and "pending_roles" not in fields[i]:
- index_roles = i
- elif "online" in fields[i]:
- index_online = i
-
- # order nodes info
- for i in range(2, len(lines)):
- fields = lines[i].rsplit(' | ')
- id = fields[index_id].strip().encode()
- ip = fields[index_ip].strip().encode()
- status_node = fields[index_status].strip().encode().lower()
- name = fields[index_name].strip().encode()
- roles_all = fields[index_roles].strip().encode().lower()
-
- roles = [x for x in [manager.Role.CONTROLLER,
- manager.Role.COMPUTE,
- manager.Role.ODL] if x in roles_all]
-
- dict = {"cluster": fields[index_cluster].strip().encode(),
- "mac": fields[index_mac].strip().encode(),
- "status_node": status_node,
- "online": fields[index_online].strip().encode()}
-
- ssh_client = None
- if status_node == 'ready':
- status = manager.NodeStatus.STATUS_OK
- proxy = {'ip': self.installer_ip,
- 'username': self.installer_user,
- 'password': self.installer_pwd}
- ssh_client = ssh_utils.get_ssh_client(hostname=ip,
- username='root',
- proxy=proxy)
- elif 'error' in status_node:
- status = manager.NodeStatus.STATUS_ERROR
- elif 'off' in status_node:
- status = manager.NodeStatus.STATUS_OFFLINE
- elif 'discover' in status_node:
- status = manager.NodeStatus.STATUS_UNUSED
- else:
- status = manager.NodeStatus.STATUS_INACTIVE
-
+ try:
+ yaml_output = safe_load(output)
+ except YAMLError as exc:
+ LOGGER.error(exc)
+ for node_name in yaml_output.keys():
+ ip_addr = yaml_output[node_name]['_param:pxe_admin_address']
+ ssh_client = ssh_utils.get_ssh_client(hostname=ip_addr,
+ username='ubuntu',
+ pkey_file=self.pkey_file)
node = manager.Node(
- id, ip, name, status, roles, ssh_client, dict)
- if options and options['cluster']:
- if fields[index_cluster].strip() == options['cluster']:
- nodes.append(node)
- else:
- nodes.append(node)
+ id=node_name,
+ ip=ip_addr,
+ name=node_name,
+ status=manager.NodeStatus.STATUS_OK,
+ roles=[_map[x] for x in _map if yaml_output[node_name][x]],
+ ssh_client=ssh_client)
+ nodes.append(node)
- self.get_nodes_called = True
return nodes
def get_openstack_version(self):
- cmd = 'source openrc;nova-manage version 2>/dev/null'
- version = None
- for node in self.nodes:
- if node.is_controller() and node.is_active():
- version = node.run_cmd(cmd)
- break
- return version
+ '''
+ Returns a string of the openstack version (nova-compute)
+ '''
+ cmd = ("sudo salt -C 'I@nova:controller and *01*' "
+ "cmd.run 'nova-manage version 2>/dev/null' --out yaml --static")
+ nova_version = self.installer_node.run_cmd(cmd)
+ if nova_version:
+ return nova_version.split(' ')[-1]
+ return None
def get_sdn_version(self):
- cmd = "apt-cache policy opendaylight|grep Installed"
+ '''
+ Returns a string of the sdn controller and its version, if exists
+ '''
+ cmd = ("sudo salt -C 'I@opendaylight:server and *01*'"
+ "pkg.version opendaylight --out yaml --static")
version = None
for node in self.nodes:
if manager.Role.ODL in node.roles and node.is_active():
- odl_version = node.run_cmd(cmd)
+ odl_version = self.installer_node.run_cmd(cmd)
if odl_version:
version = 'OpenDaylight ' + odl_version.split(' ')[-1]
break
return version
def get_deployment_status(self):
- cmd = "fuel env|tail -1|awk '{print $3}'"
- result = self.installer_node.run_cmd(cmd)
- if result is None or len(result) == 0:
- return 'unknown'
- elif 'operational' in result:
- return 'active'
- elif 'deploy' in result:
- return 'deploying'
- else:
- return 'active'
+ '''
+ Returns a string of the status of the deployment
+ '''
+ # NOTE: Requires Fuel-side signaling of deployment status, stub it
+ return 'active'
diff --git a/modules/opnfv/deployment/manager.py b/modules/opnfv/deployment/manager.py
index 694df7755..2b5aedbc7 100644
--- a/modules/opnfv/deployment/manager.py
+++ b/modules/opnfv/deployment/manager.py
@@ -241,13 +241,13 @@ class Node(object):
Returns the ovs version installed
'''
if self.is_active():
- cmd = "ovs-vsctl --version|head -1| sed 's/^.*) //'"
- return self.run_cmd(cmd)
+ cmd = "ovs-vsctl --version 2>/dev/null|head -1| sed 's/^.*) //'"
+ return self.run_cmd(cmd) or None
return None
def get_system_info(self):
'''
- Returns the ovs version installed
+ Returns system information
'''
cmd = 'grep MemTotal /proc/meminfo'
memory = self.run_cmd(cmd).partition('MemTotal:')[-1].strip().encode()
diff --git a/modules/opnfv/utils/Credentials.py b/modules/opnfv/utils/Credentials.py
index 141ecbd93..193a10aac 100644
--- a/modules/opnfv/utils/Credentials.py
+++ b/modules/opnfv/utils/Credentials.py
@@ -7,9 +7,9 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
#
-# Usage example:
+# Usage example (note: Fuel actually uses key-based auth, not user/pass):
# from opnfv.utils.Credentials import Credentials as credentials
-# credentials("fuel", "10.20.0.2", "root", "r00tme").fetch('./openrc')
+# credentials("fuel", "10.20.0.2", "user", "password").fetch('./openrc')
#
import os
@@ -74,12 +74,7 @@ class Credentials(object):
pass
def __fetch_creds_fuel(self, target_path):
- creds_file = '/root/openrc'
- try:
- self.handler.get_file_from_controller(creds_file, target_path)
- except Exception as e:
- self.logger.error(
- "Cannot get %s from controller. %e" % (creds_file, e))
+ # TODO
pass
def __fetch_creds_joid(self, target_path):
diff --git a/modules/opnfv/utils/ssh_utils.py b/modules/opnfv/utils/ssh_utils.py
index 175a38078..22727170b 100644
--- a/modules/opnfv/utils/ssh_utils.py
+++ b/modules/opnfv/utils/ssh_utils.py
@@ -49,10 +49,11 @@ def get_ssh_client(hostname,
client = paramiko.SSHClient()
else:
client = ProxyHopClient()
+ proxy_password = proxy.get('password', None)
proxy_pkey_file = proxy.get('pkey_file', '/root/.ssh/id_rsa')
client.configure_jump_host(proxy['ip'],
proxy['username'],
- proxy['password'],
+ proxy_password,
proxy_pkey_file)
if client is None:
raise Exception('Could not connect to client')
diff --git a/modules/requirements.txt b/modules/requirements.txt
index 0718fa3b0..2c51daaea 100644
--- a/modules/requirements.txt
+++ b/modules/requirements.txt
@@ -1,3 +1,4 @@
paramiko>=2.0 # LGPLv2.1+
mock>=2.0 # BSD
requests>=2.14.2 # Apache-2.0
+pyyaml>=3.11 # MIT
diff --git a/releases/gambia/apex.yaml b/releases/gambia/apex.yaml
new file mode 100644
index 000000000..fada4cbb1
--- /dev/null
+++ b/releases/gambia/apex.yaml
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+project: apex
+project-type: installer
+release-model: stable
+upstream: https://wiki.openstack.org/wiki/TripleO
+
+branches:
+ - name: stable/gambia
+ location:
+ apex: 82bf9da27ea0c973068720d440e3391084e8a9d9
diff --git a/releases/gambia/armband.yaml b/releases/gambia/armband.yaml
new file mode 100644
index 000000000..0790de1e2
--- /dev/null
+++ b/releases/gambia/armband.yaml
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+project: armband
+project-type: installer
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ armband: a880b5c0fe55397b73f0fcf8f8c87d523327099d
diff --git a/releases/gambia/auto.yaml b/releases/gambia/auto.yaml
new file mode 100644
index 000000000..f53a41131
--- /dev/null
+++ b/releases/gambia/auto.yaml
@@ -0,0 +1,9 @@
+---
+project: auto
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ auto: 1a2260efe5d15f95b8fa778a9ee8023121facd7e
diff --git a/releases/gambia/barometer.yaml b/releases/gambia/barometer.yaml
new file mode 100644
index 000000000..e5c9842bf
--- /dev/null
+++ b/releases/gambia/barometer.yaml
@@ -0,0 +1,9 @@
+---
+project: barometer
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ barometer: 9ac248a08de1f197bafbabbf43175b30ab19ec32
diff --git a/releases/gambia/clover.yaml b/releases/gambia/clover.yaml
new file mode 100644
index 000000000..ee0b786d3
--- /dev/null
+++ b/releases/gambia/clover.yaml
@@ -0,0 +1,9 @@
+---
+project: clover
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ clover: ee2169ee4b8fb3539ad173fbc1557b54b2f2216f
diff --git a/releases/gambia/compass4nfv.yaml b/releases/gambia/compass4nfv.yaml
new file mode 100644
index 000000000..e0523889c
--- /dev/null
+++ b/releases/gambia/compass4nfv.yaml
@@ -0,0 +1,12 @@
+---
+project: compass4nfv
+project-type: installer
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ compass4nfv: 33f94b43639dbe37b7e8e2b5eeb4c65064207c6b
+ - name: stable/gambia
+ location:
+ compass-containers: 20e229822b31b03e1120c3e5efd4ba131261617e
diff --git a/releases/gambia/doctor.yaml b/releases/gambia/doctor.yaml
new file mode 100644
index 000000000..3294fec6f
--- /dev/null
+++ b/releases/gambia/doctor.yaml
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 Nokia Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+project: doctor
+project-type: feature
+release-model: stable
+
+releases:
+ - version: opnfv-7.0.0
+ location:
+ doctor: 3ddc2392b0ed364eede49ff006d64df3ea456350
+
+branches:
+ - name: stable/gambia
+ location:
+ doctor: 3ddc2392b0ed364eede49ff006d64df3ea456350
diff --git a/releases/gambia/fuel.yaml b/releases/gambia/fuel.yaml
new file mode 100644
index 000000000..8c86010f3
--- /dev/null
+++ b/releases/gambia/fuel.yaml
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+project: fuel
+project-type: installer
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ fuel: 90a442136b0aff8380388ac0a94831d0904e3cb8
diff --git a/releases/gambia/functest.yaml b/releases/gambia/functest.yaml
new file mode 100644
index 000000000..f21aec0bb
--- /dev/null
+++ b/releases/gambia/functest.yaml
@@ -0,0 +1,15 @@
+---
+project: functest
+project-type: testing
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ functest: d5fce8c12bc73c1b1547df2750563c271a3ab3f6
+ - name: stable/gambia
+ location:
+ functest-kubernetes: ca3c9cf6f57c87aee8c6f0b93f70d84e3df736de
+ - name: stable/gambia
+ location:
+ functest-xtesting: a09ece9bbe9cda52487cf5b443619fec1b3e09ca
diff --git a/releases/gambia/ipv6.yaml b/releases/gambia/ipv6.yaml
new file mode 100644
index 000000000..a566e547c
--- /dev/null
+++ b/releases/gambia/ipv6.yaml
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+project: ipv6
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ ipv6: e36f753cf6e9ab0c02a400b6bac5c79b48268d44
diff --git a/releases/gambia/ovn4nfv.yaml b/releases/gambia/ovn4nfv.yaml
new file mode 100644
index 000000000..b5c8ad3c2
--- /dev/null
+++ b/releases/gambia/ovn4nfv.yaml
@@ -0,0 +1,9 @@
+---
+project: ovn4nfv
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ ovn4nfv: 9301afc8b3d9314ba19b464b8a7eb3cb7fa3bd7e
diff --git a/releases/gambia/samplevnf.yaml b/releases/gambia/samplevnf.yaml
new file mode 100644
index 000000000..1727730bc
--- /dev/null
+++ b/releases/gambia/samplevnf.yaml
@@ -0,0 +1,9 @@
+---
+project: samplevnf
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ samplevnf: 4d59d3530d1c41734f15423142e64eb9c929c717
diff --git a/releases/gambia/sandbox.yaml b/releases/gambia/sandbox.yaml
new file mode 100644
index 000000000..16f2df24e
--- /dev/null
+++ b/releases/gambia/sandbox.yaml
@@ -0,0 +1,9 @@
+---
+project: sandbox
+project-type: infra
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ sandbox: c2012f5b642f17e6024db631b833414114a329d5
diff --git a/releases/gambia/sdnvpn.yaml b/releases/gambia/sdnvpn.yaml
new file mode 100644
index 000000000..c3ee8cad3
--- /dev/null
+++ b/releases/gambia/sdnvpn.yaml
@@ -0,0 +1,9 @@
+---
+project: sdnvpn
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ sdnvpn: c05105a4f9f51f7bb31cad791e65d664e5a3bc4b
diff --git a/releases/gambia/sfc.yaml b/releases/gambia/sfc.yaml
new file mode 100644
index 000000000..14152d36e
--- /dev/null
+++ b/releases/gambia/sfc.yaml
@@ -0,0 +1,9 @@
+---
+project: sfc
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ sfc: 77bdb6a79a506f91959070dc8ff28949f2dff825
diff --git a/releases/gambia/stor4nfv.yaml b/releases/gambia/stor4nfv.yaml
new file mode 100644
index 000000000..65c327fe1
--- /dev/null
+++ b/releases/gambia/stor4nfv.yaml
@@ -0,0 +1,9 @@
+---
+project: stor4nfv
+project-type: feature
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ stor4nfv: cefd1d0854ee948acc7147834146914983a11556
diff --git a/releases/gambia/yardstick.yaml b/releases/gambia/yardstick.yaml
new file mode 100644
index 000000000..3c782c432
--- /dev/null
+++ b/releases/gambia/yardstick.yaml
@@ -0,0 +1,9 @@
+---
+project: yardstick
+project-type: testing
+release-model: stable
+
+branches:
+ - name: stable/gambia
+ location:
+ yardstick: 497292013ef0d7e1e014d76803d4f284618b4986
diff --git a/releases/hunter/functest.yaml b/releases/hunter/functest.yaml
new file mode 100644
index 000000000..5fcc5c9c4
--- /dev/null
+++ b/releases/hunter/functest.yaml
@@ -0,0 +1,15 @@
+---
+project: functest
+project-type: testing
+release-model: stable
+
+branches:
+ - name: stable/hunter
+ location:
+ functest: d5fce8c12bc73c1b1547df2750563c271a3ab3f6
+ - name: stable/hunter
+ location:
+ functest-kubernetes: ca3c9cf6f57c87aee8c6f0b93f70d84e3df736de
+ - name: stable/hunter
+ location:
+ functest-xtesting: a09ece9bbe9cda52487cf5b443619fec1b3e09ca
diff --git a/releases/scripts/create_branch.py b/releases/scripts/create_branch.py
deleted file mode 100644
index fa3c92def..000000000
--- a/releases/scripts/create_branch.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python2
-# SPDX-License-Identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2018 The Linux Foundation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-"""
-Create Gerrit Branchs
-"""
-
-import argparse
-
-try:
- import ConfigParser
-except ImportError:
- import configparser as ConfigParser
-
-import logging
-import os
-import yaml
-
-from requests.compat import quote
-from requests.exceptions import RequestException
-
-from pygerrit2.rest import GerritRestAPI
-from pygerrit2.rest.auth import HTTPDigestAuthFromNetrc, HTTPBasicAuthFromNetrc
-
-
-logging.basicConfig(level=logging.INFO)
-
-
-def quote_branch(arguments):
- """
- Quote is used here to escape the '/' in branch name. By
- default '/' is listed in 'safe' characters which aren't escaped.
- quote is not used in the data of the PUT request, as quoting for
- arguments is handled by the request library
- """
- new_args = arguments.copy()
- new_args['branch'] = quote(new_args['branch'], '')
- return new_args
-
-
-def create_branch(api, arguments):
- """
- Create a branch using the Gerrit REST API
- """
- logger = logging.getLogger(__file__)
-
- branch_data = """
- {
- "ref": "%(branch)s"
- "revision": "%(commit)s"
- }""" % arguments
-
- # First verify the commit exists, otherwise the branch will be
- # created at HEAD
- try:
- request = api.get("/projects/%(project)s/commits/%(commit)s" %
- arguments)
- logger.debug(request)
- logger.debug("Commit exists: %(commit)s", arguments)
- except RequestException as err:
- if hasattr(err, 'response') and err.response.status_code in [404]:
- logger.warn("Commit %(commit)s for %(project)s does"
- " not exist. Not creating branch.", arguments)
- logger.warn(err)
- else:
- logger.error("Error: %s", str(err))
- # Skip trying to create the branch
- return
-
- # Try to create the branch and let us know if it already exist.
- try:
- request = api.put("/projects/%(project)s/branches/%(branch)s" %
- quote_branch(arguments), branch_data)
- logger.info("Branch %(branch)s for %(project)s successfully created",
- arguments)
- except RequestException as err:
- if hasattr(err, 'response') and err.response.status_code in [412, 409]:
- logger.info("Branch %(branch)s already created for %(project)s",
- arguments)
- logger.info(err)
- else:
- logger.error("Error: %s", str(err))
-
-
-def main():
- """Given a yamlfile that follows the release syntax, create branches
- in Gerrit listed under branches"""
-
- config = ConfigParser.ConfigParser()
- config.read(os.path.join(os.path.abspath(os.path.dirname(__file__)),
- 'defaults.cfg'))
- config.read([os.path.expanduser('~/releases.cfg'), 'releases.cfg'])
-
- gerrit_url = config.get('gerrit', 'url')
-
- parser = argparse.ArgumentParser()
- parser.add_argument('--file', '-f',
- type=argparse.FileType('r'),
- required=True)
- parser.add_argument('--basicauth', '-b', action='store_true')
- args = parser.parse_args()
-
- GerritAuth = HTTPDigestAuthFromNetrc
- if args.basicauth:
- GerritAuth = HTTPBasicAuthFromNetrc
-
- try:
- auth = GerritAuth(url=gerrit_url)
- except ValueError as err:
- logging.error("%s for %s", err, gerrit_url)
- quit(1)
- restapi = GerritRestAPI(url=gerrit_url, auth=auth)
-
- project = yaml.safe_load(args.file)
-
- create_branches(restapi, project)
-
-
-def create_branches(restapi, project):
- """Create branches for a specific project defined in the release
- file"""
-
- branches = []
- for branch in project['branches']:
- repo, ref = next(iter(branch['location'].items()))
- branches.append({
- 'project': repo,
- 'branch': branch['name'],
- 'commit': ref
- })
-
- for branch in branches:
- create_branch(restapi, branch)
-
-
-if __name__ == "__main__":
- main()
diff --git a/releases/scripts/repos.py b/releases/scripts/repos.py
index 47ce42d88..91c4e9300 100644
--- a/releases/scripts/repos.py
+++ b/releases/scripts/repos.py
@@ -63,20 +63,28 @@ def main():
type=str,
help="Only print"
"SHAs for the specified release")
+ parser.add_argument('--branches', '-b',
+ action='store_true',
+ default=False,
+ help="Print Branch info")
+
args = parser.parse_args()
project = yaml.safe_load(args.file)
- list_repos(project, args)
+ if args.branches:
+ list_branches(project, args)
+ else:
+ list_repos(project, args)
def list_repos(project, args):
"""List repositories in the project file"""
lookup = project.get('releases', [])
+
if 'releases' not in project:
exit(0)
-
repos = set()
for item in lookup:
repo, ref = next(iter(item['location'].items()))
@@ -90,5 +98,24 @@ def list_repos(project, args):
print(repo)
+def list_branches(project, args):
+ """List branches in the project file"""
+
+ lookup = project.get('branches', [])
+
+ if 'branches' not in project:
+ exit(0)
+ repos = set()
+ for item in lookup:
+ repo, ref = next(iter(item['location'].items()))
+ if args.names:
+ repos.add(Repo(repo))
+ elif args.release and item['name'] == args.release:
+ repos.add(Repo(repo, ref))
+ elif not args.release:
+ repos.add(Repo(repo, item['name'], ref))
+ for repo in repos:
+ print(repo)
+
if __name__ == "__main__":
main()
diff --git a/tox.ini b/tox.ini
index d2f416884..976e9a503 100644
--- a/tox.ini
+++ b/tox.ini
@@ -15,7 +15,7 @@ setenv=
[testenv:jjb]
deps =
- jenkins-job-builder==2.0.3
+ jenkins-job-builder==2.2.1
commands=
jenkins-jobs test -o job_output -r {posargs:"jjb/"}