Merge "Remove References to Securedlab"
authorTrevor Bramwell <tbramwell@linuxfoundation.org>
Wed, 31 Oct 2018 21:52:16 +0000 (21:52 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Wed, 31 Oct 2018 21:52:16 +0000 (21:52 +0000)
160 files changed:
.gitmodules
global-jjb [new submodule]
jjb/3rd_party_ci/odl-netvirt.yaml
jjb/apex/apex-build.sh
jjb/apex/apex-deploy.sh
jjb/apex/apex-download-artifact.sh
jjb/apex/apex-functest-scenario.sh [new file with mode: 0644]
jjb/apex/apex-iso-verify.sh
jjb/apex/apex-project-jobs.yaml
jjb/apex/apex-rtd-jobs.yaml [new file with mode: 0644]
jjb/apex/apex-upload-artifact.sh
jjb/apex/apex-verify-jobs.yaml
jjb/apex/apex.yaml
jjb/apex/apex.yaml.j2
jjb/apex/scenarios.yaml.hidden
jjb/armband/armband-ci-jobs.yaml
jjb/armband/armband-rtd-jobs.yaml [new file with mode: 0644]
jjb/armband/armband-verify-jobs.yaml
jjb/auto/auto-rtd-jobs.yaml [new file with mode: 0644]
jjb/auto/auto.yaml
jjb/availability/availability-rtd-jobs.yaml [new file with mode: 0644]
jjb/barometer/barometer-rtd-jobs.yaml [new file with mode: 0644]
jjb/barometer/barometer.yaml
jjb/bottlenecks/bottlenecks-ci-jobs.yaml
jjb/bottlenecks/bottlenecks-project-jobs.yaml
jjb/bottlenecks/bottlenecks-rtd-jobs.yaml [new file with mode: 0644]
jjb/calipso/calipso-rtd-jobs.yaml [new file with mode: 0644]
jjb/ci_gate_security/opnfv-ci-gate-security.yaml
jjb/clover/clover-project.yaml
jjb/clover/clover-rtd-jobs.yaml [new file with mode: 0644]
jjb/compass4nfv/compass-ci-jobs.yaml
jjb/compass4nfv/compass-dovetail-jobs.yaml
jjb/compass4nfv/compass-project-jobs.yaml
jjb/compass4nfv/compass-verify-jobs.yaml
jjb/compass4nfv/compass4nfv-rtd-jobs.yaml [new file with mode: 0644]
jjb/container4nfv/container4nfv-arm64.yaml
jjb/container4nfv/container4nfv-project.yaml
jjb/container4nfv/container4nfv-rtd-jobs.yaml [new file with mode: 0644]
jjb/copper/copper-rtd-jobs.yaml [new file with mode: 0644]
jjb/cperf/cperf-ci-jobs.yaml
jjb/cperf/cperf-robot-netvirt-csit.sh
jjb/daisy4nfv/daisy-daily-jobs.yaml
jjb/daisy4nfv/daisy-project-jobs.yaml
jjb/daisy4nfv/daisy-rtd-jobs.yaml [new file with mode: 0644]
jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml
jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml
jjb/doctor/doctor-rtd-jobs.yaml [new file with mode: 0644]
jjb/doctor/doctor.yaml
jjb/domino/domino-rtd-jobs.yaml [new file with mode: 0644]
jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml
jjb/dovetail/dovetail-ci-jobs.yaml
jjb/dovetail/dovetail-rtd-jobs.yaml [new file with mode: 0644]
jjb/dovetail/dovetail-run.sh
jjb/escalator/escalator-rtd-jobs.yaml [new file with mode: 0644]
jjb/fds/fds-rtd-jobs.yaml [new file with mode: 0644]
jjb/fuel/fuel-daily-jobs.yaml
jjb/fuel/fuel-deploy.sh
jjb/fuel/fuel-docker-jobs.yaml
jjb/fuel/fuel-project-jobs.yaml
jjb/fuel/fuel-verify-jobs.yaml
jjb/functest/functest-alpine.sh
jjb/functest/functest-daily-jobs.yaml
jjb/functest/functest-docker.yaml
jjb/functest/functest-kubernetes-docker.yaml
jjb/functest/functest-project-jobs.yaml
jjb/functest/functest-rtd-jobs.yaml [new file with mode: 0644]
jjb/functest/xtesting-docker.yaml
jjb/global-jjb [deleted submodule]
jjb/global-jjb/jjb [new symlink]
jjb/global-jjb/shell [new symlink]
jjb/global/basic-jobs.yaml
jjb/global/releng-defaults.yaml
jjb/global/releng-macros.yaml
jjb/global/slave-params.yaml
jjb/ipv6/ipv6-rtd-jobs.yaml [new file with mode: 0644]
jjb/joid/joid-daily-jobs.yaml
jjb/joid/joid-rtd-jobs.yaml [new file with mode: 0644]
jjb/joid/joid-verify-jobs.yaml
jjb/kvmfornfv/kvmfornfv-rtd-jobs.yaml [new file with mode: 0644]
jjb/moon/moon-rtd-jobs.yaml [new file with mode: 0644]
jjb/multisite/multisite-rtd-jobs.yaml [new file with mode: 0644]
jjb/netready/netready-rtd-jobs.yaml [new file with mode: 0644]
jjb/nfvbench/nfvbench-rtd-jobs.yaml [new file with mode: 0644]
jjb/octopus/octopus-rtd-jobs.yaml [new file with mode: 0644]
jjb/onosfw/onosfw-rtd-jobs.yaml [new file with mode: 0644]
jjb/openci/openci-opnfv-daily-jobs.yaml
jjb/opera/opera-rtd-jobs.yaml [new file with mode: 0644]
jjb/opnfvdocs/docs-rtd.yaml
jjb/opnfvdocs/opnfvdocs.yaml
jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml [new file with mode: 0644]
jjb/orchestra/orchestra-rtd-jobs.yaml [new file with mode: 0644]
jjb/ovn4nfv/ovn4nfv-project-jobs.yaml
jjb/ovn4nfv/ovn4nfv-rtd-jobs.yaml [new file with mode: 0644]
jjb/ovno/ovno-rtd-jobs.yaml [new file with mode: 0644]
jjb/ovsnfv/ovsnfv-rtd-jobs.yaml [new file with mode: 0644]
jjb/parser/parser-rtd-jobs.yaml [new file with mode: 0644]
jjb/pharos/pharos-rtd-jobs.yaml [new file with mode: 0644]
jjb/promise/promise-rtd-jobs.yaml [new file with mode: 0644]
jjb/qtip/qtip-rtd-jobs.yaml [new file with mode: 0644]
jjb/releng/compass4nfv-docker.yaml
jjb/releng/opnfv-docker-arm.yaml
jjb/releng/opnfv-docker.yaml
jjb/releng/opnfv-utils.yaml
jjb/releng/releng-release-create-venv.sh
jjb/releng/releng-rtd-jobs.yaml [moved from jjb/releng/releng-ci-jobs.yaml with 93% similarity]
jjb/releng/testresults-automate.yaml
jjb/samplevnf/samplevnf-rtd-jobs.yaml [new file with mode: 0644]
jjb/sdnvpn/sdnvpn-rtd-jobs.yaml [new file with mode: 0644]
jjb/sfc/sfc-project-jobs.yaml
jjb/sfc/sfc-rtd-jobs.yaml [new file with mode: 0644]
jjb/snaps/snaps-rtd-jobs.yaml [new file with mode: 0644]
jjb/stor4nfv/stor4nfv-rtd-jobs.yaml [new file with mode: 0644]
jjb/storperf/storperf-daily-jobs.yaml
jjb/storperf/storperf-rtd-jobs.yaml [new file with mode: 0644]
jjb/storperf/storperf-verify-jobs.yaml
jjb/storperf/storperf.yaml
jjb/ves/ves-rtd-jobs.yaml [new file with mode: 0644]
jjb/vnf_forwarding_graph/vnf-forwarding-graph-rtd-jobs.yaml [new file with mode: 0644]
jjb/vswitchperf/vswitchperf-rtd-jobs.yaml [new file with mode: 0644]
jjb/vswitchperf/vswitchperf.yaml
jjb/xci/bifrost-periodic-jobs.yaml
jjb/xci/bifrost-verify-jobs.yaml
jjb/xci/osa-periodic-jobs.yaml
jjb/xci/xci-daily-jobs.yaml
jjb/xci/xci-merge-jobs.yaml
jjb/xci/xci-rtd-jobs.yaml [new file with mode: 0644]
jjb/xci/xci-run-functest.sh
jjb/xci/xci-verify-jobs.yaml
jjb/yardstick/yardstick-daily-jobs.yaml
jjb/yardstick/yardstick-project-jobs.yaml
jjb/yardstick/yardstick-rtd-jobs.yaml [new file with mode: 0644]
modules/opnfv/deployment/example.py
modules/opnfv/deployment/factory.py
modules/opnfv/deployment/fuel/adapter.py
modules/opnfv/deployment/manager.py
modules/opnfv/utils/Credentials.py
modules/opnfv/utils/ssh_utils.py
modules/requirements.txt
releases/gambia/apex.yaml [new file with mode: 0644]
releases/gambia/auto.yaml [new file with mode: 0644]
releases/gambia/barometer.yaml [new file with mode: 0644]
releases/gambia/bottlenecks.yaml [new file with mode: 0644]
releases/gambia/clover.yaml [new file with mode: 0644]
releases/gambia/compass4nfv.yaml [new file with mode: 0644]
releases/gambia/doctor.yaml [new file with mode: 0644]
releases/gambia/functest.yaml
releases/gambia/ipv6.yaml [new file with mode: 0644]
releases/gambia/opnfvdocs.yaml [new file with mode: 0644]
releases/gambia/ovn4nfv.yaml [new file with mode: 0644]
releases/gambia/samplevnf.yaml [new file with mode: 0644]
releases/gambia/sdnvpn.yaml [new file with mode: 0644]
releases/gambia/sfc.yaml [new file with mode: 0644]
releases/gambia/stor4nfv.yaml [new file with mode: 0644]
releases/gambia/storperf.yaml [new file with mode: 0644]
releases/hunter/functest.yaml
tox.ini
utils/build-server-ansible/main.yml
utils/build-server-ansible/vars/Ubuntu.yml
utils/build-server-ansible/vars/defaults.yml
utils/push-test-logs.sh

index 07b28be..9f7b778 100644 (file)
@@ -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 (submodule)
index 0000000..ddd8f4d
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit ddd8f4dd3b86b15eb45da9f5f65b16f890b7f60e
index b810a29..15d2848 100644 (file)
@@ -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
             - '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
index 09aa716..618d181 100755 (executable)
@@ -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"
index 441bf90..4876b85 100755 (executable)
@@ -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
@@ -141,8 +141,8 @@ if [[ "$JOB_NAME" =~ "virtual" ]]; then
   fi
 
   if [[ "$PROMOTE" == "True"  || "$CSIT_ENV_FLAG" == "True" ]]; then
-    if [[ "$DEPLOY_SCENARIO" =~ "queens" ]]; then
-      CSIT_ENV="csit-queens-environment.yaml"
+    if [[ "$OS_VERSION" != "master" ]]; then
+      CSIT_ENV="csit-${OS_VERSION}-environment.yaml"
     else
       CSIT_ENV="csit-environment.yaml"
     fi
@@ -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
index e1e51b3..bc3311d 100755 (executable)
@@ -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-functest-scenario.sh b/jjb/apex/apex-functest-scenario.sh
new file mode 100644 (file)
index 0000000..dcbed44
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+
+features=$(echo $DEPLOY_SCENARIO | sed -r -n 's/os-.+-(.+)-(noha|ha)/\1/p')
+if [ "$features" == 'rocky' ]; then
+  functest_scenario=$(echo $DEPLOY_SCENARIO | sed -r -n 's/(os-.+?)-rocky-(noha|ha)/\1-nofeature-\2/p')
+  echo "DOCKER_TAG=hunter" > functest_scenario
+elif [[ "$features" =~ 'rocky' ]]; then
+  functest_scenario=$(echo $DEPLOY_SCENARIO | sed -r -n 's/(os-.+?)-(.+)_rocky-(noha|ha)/\1-\2-\3/p')
+  echo "DOCKER_TAG=hunter" > functest_scenario
+else
+  functest_scenario=$DEPLOY_SCENARIO
+  echo "DOCKER_TAG=$([[ ${BRANCH##*/} == "master" ]] && \
+    echo "latest" || echo ${BRANCH##*/})" > functest_scenario
+fi
+echo "DEPLOY_SCENARIO=$functest_scenario" >> functest_scenario
index f349376..c29d7cb 100755 (executable)
@@ -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
 
index 700ff60..42567ea 100644 (file)
@@ -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-rtd-jobs.yaml b/jjb/apex/apex-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..16ae7d9
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: apex-rtd
+    project: apex
+    project-name: apex
+
+    project-pattern: 'apex'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-apex/47262/'
+    rtd-token: '134db049c774ab06c41db432e3a042a982f50edf'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 5c777a8..07198b1 100755 (executable)
@@ -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}"
index f0f99fc..9cccf6d 100644 (file)
           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}'
           option: 'project'
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-.*-promote.*'
     builders:
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-virtual.*'
               abort-all-job: true
               git-revision: true
       - shell: |
-          if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
-          echo 'REPO=opnfv' > functest_repo
+          features=$(echo $DEPLOY_SCENARIO | sed -r -n 's/os-.+-(.+)-(noha|ha)/\1/p')
+          if [ "$features" == 'rocky' ]; then
+            echo "DOCKER_TAG=hunter" > functest_tag
+          elif [[ "$features" =~ 'rocky' ]]; then
+            echo "DOCKER_TAG=hunter" > functest_tag
           else
-          echo 'REPO=ollivier' > functest_repo
+            echo "DOCKER_TAG=''" > functest_tag
           fi
       - inject:
-          properties-file: functest_repo
+          properties-file: functest_tag
+          override-build-parameters: true
       - multijob:
           name: functest-smoke
           condition: ALWAYS
               current-parameters: false
               predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+                DOCKER_TAG=""
                 FUNCTEST_SUITE_NAME=tempest_smoke
                 FUNCTEST_MODE=testcase
-                REPO=$REPO
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
index fd0e826..c7c9385 100644 (file)
           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'
           <<: *fraser
       - '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':
           <<: *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
           <<: *master
       - 'os-odl-sfc-noha':
           <<: *master
-      - 'os-odl-sfc_queens-ha':
+      - 'os-odl-sfc_rocky-ha':
           <<: *master
-      - 'os-odl-sfc_queens-noha':
+      - 'os-odl-sfc_rocky-noha':
           <<: *master
       - 'os-nosdn-calipso-noha':
           <<: *master
-      - 'os-nosdn-calipso_queens-noha':
+      - 'os-nosdn-calipso_rocky-noha':
+          <<: *master
+      - 'os-ovn-nofeature-ha':
+          <<: *master
+      - 'os-ovn-rocky-ha':
           <<: *master
       - 'os-nosdn-nofeature-noha':
           <<: *euphrates
       - 'virtual'
 
     os_version:
-      - 'pike':
-          os_scenario: 'pike'
-          odl_branch: 'stable/carbon'
       - 'queens':
-          os_scenario: 'queens'
+          os_scenario: 'nofeature'
+          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'
       - logrotate-default
       - build-blocker:
           use-build-blocker: false
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-deploy.*'
       - throttle:
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-deploy.*'
             - 'functest.*'
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-runner.*'
             - 'apex-run.*'
             - 'apex-virtual-.*'
             - 'apex-verify-gate-.*'
             - 'odl-netvirt.*'
+            - 'apex-.*-promote.*'
       - throttle:
           max-per-node: 1
           max-total: 10
               kill-phase-on: FAILURE
               abort-all-job: true
               git-revision: true
-      - shell: |
-          if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
-          echo 'REPO=opnfv' > functest_repo
-          else
-          echo 'REPO=ollivier' > functest_repo
-          fi
-      - inject:
-          properties-file: functest_repo
       - multijob:
           name: functest-smoke
           condition: ALWAYS
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                 FUNCTEST_MODE=$FUNCTEST_MODE
                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
-                REPO=$REPO
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
-      - shell: |
-          if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
-            echo 'REPO=opnfv' > functest_properties
-          else
-            echo 'REPO=ollivier' > functest_properties
-          fi
-          features=$(echo $DEPLOY_SCENARIO | sed -r -n 's/os-.+-(.+)-(noha|ha)/\1/p')
-          if [ "$features" == 'queens' ]; then
-            functest_scenario=$(echo $DEPLOY_SCENARIO | sed -r -n 's/(os-.+?)-queens-(noha|ha)/\1-nofeature-\2/p')
-          elif [[ "$features" =~ 'queens' ]]; then
-            functest_scenario=$(echo $DEPLOY_SCENARIO | sed -r -n 's/(os-.+?)-(.+)_queens-(noha|ha)/\1-\2-\3/p')
-          else
-            functest_scenario=$DEPLOY_SCENARIO
-          fi
-          echo "DEPLOY_SCENARIO=$functest_scenario" >> functest_properties
+      - shell:
+          !include-raw-escape: ./apex-functest-scenario.sh
       - inject:
-          properties-file: functest_properties
+          properties-file: functest_scenario
           override-build-parameters: true
       - multijob:
           name: 'OPNFV Test Suite'
             - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
               node-parameters: true
               current-parameters: false
-              predefined-parameters:
+              predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+                DOCKER_TAG=$DOCKER_TAG
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
           name: DEPLOY_SCENARIO
           default: '{scenario}'
           description: "Scenario to deploy with."
+      - string:
+          name: DOCKER_TAG
+          default: ''
+          description: Default docker tag to pass to functest
 
     properties:
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
             - name: 'functest-apex-baremetal-daily-{scenario_stream}'
               node-parameters: true
               current-parameters: false
-              predefined-parameters:
+              predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+                DOCKER_TAG=$DOCKER_TAG
               kill-phase-on: NEVER
               abort-all-job: false
               git-revision: false
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-daily.*'
 
           description: "Used for overriding the PROMOTE"
       - string:
           name: GS_URL
-          default: $GS_BASE{gs-pathname}/{os_version}/{topology}
+          default: 'artifacts.opnfv.org/apex/{os_version}/{topology}'
           description: "User for overriding GS_URL from apex params"
       - string:
           name: OS_VERSION
           name: ODL_BRANCH
           default: '{odl_branch}'
           description: ODL branch being used
-
+      - string:
+          name: FORCE_PROMOTE
+          default: 'False'
+          description: "Used to force promotion and skip CSIT"
     properties:
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
           option: 'project'
 
     triggers:
-      - timed: '0 12 * * 0'
+      - '{stream}-{os_version}'
 
     builders:
       - multijob:
                 SSH_KEY_PATH=/tmp/csit/id_rsa
                 ODL_CONTAINERIZED=true
                 OS_VERSION=$OS_VERSION
+                SKIP_CSIT=$FORCE_PROMOTE
               node-parameters: true
               kill-phase-on: NEVER
               abort-all-job: false
     properties:
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-deploy.*'
 
     project-type: 'multijob'
 
-    disabled: false
+    disabled: true
 
     node: 'flex-pod2'
 
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
               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
               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: |
               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: |
               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: |
               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: |
               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: |
               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: |
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
-            - name: 'apex-os-odl-sfc_queens-noha-baremetal-master'
+            - name: 'apex-os-odl-sfc_rocky-noha-baremetal-master'
               node-parameters: false
               current-parameters: false
               predefined-parameters: |
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
-            - name: 'apex-os-nosdn-calipso_queens-noha-baremetal-master'
+            - name: 'apex-os-nosdn-calipso_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-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: |
 
 #######################
 # trigger macros
+# timed is in format: 'min hour daymonth month dayweek'
 ########################
 - trigger:
     name: 'apex-master'
     triggers:
       - timed: '0 0 1-31/2 * *'
 
+- trigger:
+    name: 'apex-gambia'
+    triggers:
+      - timed: '0 4 2-30/2 * *'
+
 - trigger:
     name: 'apex-fraser'
     triggers:
     name: 'apex-danube'
     triggers:
       - timed: '0 3 1 1 7'
+
+- trigger:
+    name: 'master-master'
+    triggers:
+      - timed: '0 5 * * *'
+
+- trigger:
+    name: 'master-rocky'
+    triggers:
+      - timed: '0 5 * * *'
+
+- 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 5 * * *'
+
+- 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: ''
index 31e3bd8..8edcc27 100644 (file)
           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'
       - 'virtual'
 
     os_version:
-      - 'pike':
-          os_scenario: 'pike'
-          odl_branch: 'stable/carbon'
       - 'queens':
-          os_scenario: 'queens'
+          os_scenario: 'nofeature'
+          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'
       - logrotate-default
       - build-blocker:
           use-build-blocker: false
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-deploy.*'
       - throttle:
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-deploy.*'
             - 'functest.*'
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-runner.*'
             - 'apex-run.*'
             - 'apex-virtual-.*'
             - 'apex-verify-gate-.*'
             - 'odl-netvirt.*'
+            - 'apex-.*-promote.*'
       - throttle:
           max-per-node: 1
           max-total: 10
               kill-phase-on: FAILURE
               abort-all-job: true
               git-revision: true
-      - shell: |
-          if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
-          echo 'REPO=opnfv' > functest_repo
-          else
-          echo 'REPO=ollivier' > functest_repo
-          fi
-      - inject:
-          properties-file: functest_repo
       - multijob:
           name: functest-smoke
           condition: ALWAYS
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                 FUNCTEST_MODE=$FUNCTEST_MODE
                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
-                REPO=$REPO
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
-      - shell: |
-          if echo $DEPLOY_SCENARIO | grep queens &> /dev/null; then
-            echo 'REPO=opnfv' > functest_properties
-          else
-            echo 'REPO=ollivier' > functest_properties
-          fi
-          features=$(echo $DEPLOY_SCENARIO | sed -r -n 's/os-.+-(.+)-(noha|ha)/\1/p')
-          if [ "$features" == 'queens' ]; then
-            functest_scenario=$(echo $DEPLOY_SCENARIO | sed -r -n 's/(os-.+?)-queens-(noha|ha)/\1-nofeature-\2/p')
-          elif [[ "$features" =~ 'queens' ]]; then
-            functest_scenario=$(echo $DEPLOY_SCENARIO | sed -r -n 's/(os-.+?)-(.+)_queens-(noha|ha)/\1-\2-\3/p')
-          else
-            functest_scenario=$DEPLOY_SCENARIO
-          fi
-          echo "DEPLOY_SCENARIO=$functest_scenario" >> functest_properties
+      - shell:
+          !include-raw-escape: ./apex-functest-scenario.sh
       - inject:
-          properties-file: functest_properties
+          properties-file: functest_scenario
           override-build-parameters: true
       - multijob:
           name: 'OPNFV Test Suite'
             - name: 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
               node-parameters: true
               current-parameters: false
-              predefined-parameters:
+              predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+                DOCKER_TAG=$DOCKER_TAG
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
           name: DEPLOY_SCENARIO
           default: '{scenario}'
           description: "Scenario to deploy with."
+      - string:
+          name: DOCKER_TAG
+          default: ''
+          description: Default docker tag to pass to functest
 
     properties:
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
             - name: 'functest-apex-baremetal-daily-{scenario_stream}'
               node-parameters: true
               current-parameters: false
-              predefined-parameters:
+              predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+                DOCKER_TAG=$DOCKER_TAG
               kill-phase-on: NEVER
               abort-all-job: false
               git-revision: false
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-daily.*'
 
           description: "Used for overriding the PROMOTE"
       - string:
           name: GS_URL
-          default: $GS_BASE{gs-pathname}/{os_version}/{topology}
+          default: 'artifacts.opnfv.org/apex/{os_version}/{topology}'
           description: "User for overriding GS_URL from apex params"
       - string:
           name: OS_VERSION
           name: ODL_BRANCH
           default: '{odl_branch}'
           description: ODL branch being used
-
+      - string:
+          name: FORCE_PROMOTE
+          default: 'False'
+          description: "Used to force promotion and skip CSIT"
     properties:
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
           option: 'project'
 
     triggers:
-      - timed: '0 12 * * 0'
+      - '{stream}-{os_version}'
 
     builders:
       - multijob:
                 SSH_KEY_PATH=/tmp/csit/id_rsa
                 ODL_CONTAINERIZED=true
                 OS_VERSION=$OS_VERSION
+                SKIP_CSIT=$FORCE_PROMOTE
               node-parameters: true
               kill-phase-on: NEVER
               abort-all-job: false
     properties:
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-deploy.*'
 
     project-type: 'multijob'
 
-    disabled: false
+    disabled: true
 
     node: 'flex-pod2'
 
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
       - logrotate-default
       - build-blocker:
           use-build-blocker: true
-          block-level: 'NODE'
+          blocking-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
 
 #######################
 # trigger macros
+# timed is in format: 'min hour daymonth month dayweek'
 ########################
 - trigger:
     name: 'apex-master'
     triggers:
       - timed: '0 0 1-31/2 * *'
 
+- trigger:
+    name: 'apex-gambia'
+    triggers:
+      - timed: '0 4 2-30/2 * *'
+
 - trigger:
     name: 'apex-fraser'
     triggers:
     name: 'apex-danube'
     triggers:
       - timed: '0 3 1 1 7'
+
+- trigger:
+    name: 'master-master'
+    triggers:
+      - timed: '0 5 * * *'
+
+- trigger:
+    name: 'master-rocky'
+    triggers:
+      - timed: '0 5 * * *'
+
+- 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 5 * * *'
+
+- 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: ''
index 1e1ba3f..a221699 100644 (file)
@@ -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,10 +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_queens-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'
index 666a0f5..2ab1a6d 100644 (file)
     fraser: &fraser
       stream: fraser
       branch: 'stable/{stream}'
+      disabled: false
+      gs-pathname: '/{stream}'
+    gambia: &gambia
+      stream: gambia
+      branch: 'stable/{stream}'
       gs-pathname: '/{stream}'
       disabled: false
     # -------------------------------
     # -------------------------------
     # 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
       # -------------------------------
           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
 
           blocking-jobs:
             - '{installer}-os-.*?-{pod}-daily-.*'
             - 'armband-verify-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
               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
             - 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}'
             - 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}'
           blocking-jobs:
             - '{installer}-deploy-{pod}-daily-{stream}'
             - '{installer}-deploy-generic-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - project-parameter:
 - 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:
 - 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
 # --------------------------------------------------------------
     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-rtd-jobs.yaml b/jjb/armband/armband-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..be3d893
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: armband-rtd
+    project: armband
+    project-name: armband
+
+    project-pattern: 'armband'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-armband/47349/'
+    rtd-token: 'b8f7de9a1f2baf063ccc6afb52dbc8e6308b6ab5'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 1718083..57d80ae 100644 (file)
@@ -12,7 +12,7 @@
           branch: '{stream}'
           gs-pathname: ''
           disabled: false
-      - fraser:
+      - gambia:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
diff --git a/jjb/auto/auto-rtd-jobs.yaml b/jjb/auto/auto-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..1eca3af
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: auto-rtd
+    project: auto
+    project-name: auto
+
+    project-pattern: 'auto'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-auto/47350/'
+    rtd-token: '3c2277762678c97e59d24c83201194d6b56d7983'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 62f6ec2..abba9c8 100644 (file)
           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
@@ -65,7 +69,7 @@
           use-build-blocker: true
           blocking-jobs:
             - '{installer}-os-.*?-{pod}-auto-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
     name: 'fuel-os-nosdn-onap-ha-auto-baremetal-fraser-trigger'
     triggers:
       - timed: ''
+# ---------------------------------------------------------------------
+# Auto CI Baremetal Triggers running against gambia branch
+# ---------------------------------------------------------------------
+- trigger:
+    name: 'fuel-os-nosdn-onap-ha-auto-baremetal-gambia-trigger'
+    triggers:
+      - timed: ''
diff --git a/jjb/availability/availability-rtd-jobs.yaml b/jjb/availability/availability-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..d63bb9e
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: availability-rtd
+    project: availability
+    project-name: availability
+
+    gerrit-skip-vote: true
+    project-pattern: 'availability'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-availability/47351/'
+    rtd-token: '3ae514b14073e1eacb697d3eddee62a26c8c891c'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/barometer/barometer-rtd-jobs.yaml b/jjb/barometer/barometer-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..1b647db
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: barometer-rtd
+    project: barometer
+    project-name: barometer
+
+    project-pattern: 'barometer'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-barometer/47353/'
+    rtd-token: 'aef70b8a0148b295e25dd92474110bcd622bacb0'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 8afe986..972848f 100644 (file)
@@ -18,7 +18,7 @@
           branch: '{stream}'
           gs-pathname: ''
           disabled: false
-      - fraser: &fraser
+      - gambia: &gambia
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
index 4c302dd..0a48eed 100644 (file)
@@ -19,8 +19,8 @@
       gs-packagepath: '/{suite}'
       # docker tag used for version control
       docker-tag: 'latest'
-    fraser: &fraser
-      stream: fraser
+    gambia: &gambia
+      stream: gambia
       branch: 'stable/{stream}'
       gs-pathname: '/{stream}'
       gs-packagepath: '/{stream}/{suite}'
           slave-label: compass-baremetal-branch
           installer: compass
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
       - virtual:
           slave-label: compass-virtual-branch
           installer: compass
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
 
     # -------------------------------
     #        None-CI PODs
index d4930d7..dac1659 100644 (file)
           # This is used for different test suite dependent packages storage
           gs-packagepath: '/{suite}'
           disabled: false
-      - fraser: &fraser
+      - gambia:
+          branch: 'stable/{stream}'
+          gs-pathname: '/{stream}'
+          gs-packagepath: '/{stream}/{suite}'
+          disabled: false
+      - fraser:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           gs-packagepath: '/{stream}/{suite}'
@@ -70,7 +75,6 @@
                   branch-pattern: '**/{branch}'
 
     builders:
-      # - bottlenecks-hello
       - bottlenecks-unit-tests
 
 - job-template:
 
     builders:
       - bottlenecks-hello
-      # - bottlenecks-unit-tests
 
 - job-template:
     name: 'bottlenecks-{suite}-upload-artifacts-{stream}'
diff --git a/jjb/bottlenecks/bottlenecks-rtd-jobs.yaml b/jjb/bottlenecks/bottlenecks-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..27b883b
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: bottlenecks-rtd
+    project: bottlenecks
+    project-name: bottlenecks
+
+    gerrit-skip-vote: true
+    project-pattern: 'bottlenecks'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-bottlenecks/47355/'
+    rtd-token: '95dd0dbdde4a219b5196ffb86e15401b7b927885'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/calipso/calipso-rtd-jobs.yaml b/jjb/calipso/calipso-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..e6b61d7
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: calipso-rtd
+    project: calipso
+    project-name: calipso
+
+    gerrit-skip-vote: true
+    project-pattern: 'calipso'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-calipso/47356/'
+    rtd-token: '9b88e25a769998fc316b25efe15eca2b7c1474f4'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 2e500be..365afdd 100644 (file)
           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}'
index 31eed8f..4abbc08 100644 (file)
           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
           blocking-jobs:
             - 'clover-daily-deploy-.*?'
             - 'container4nfv-daily-deploy-.*?'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - timeout:
diff --git a/jjb/clover/clover-rtd-jobs.yaml b/jjb/clover/clover-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..4e773c2
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: clover-rtd
+    project: clover
+    project-name: clover
+
+    gerrit-skip-vote: true
+    project-pattern: 'clover'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-clover/47357/'
+    rtd-token: '8b47c0a3c1cfe7de885bf217628b58dd91f14f2e'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index e5775b2..9dc8074 100644 (file)
       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}'
       - baremetal:
           slave-label: compass-baremetal-branch
           os-version: 'xenial'
-          <<: *fraser
+          <<: *gambia
       - virtual:
           slave-label: compass-virtual-branch
           os-version: 'xenial'
-          <<: *fraser
+          <<: *gambia
       # -------------------------------
       #        master
       # -------------------------------
             - 'compass-os-.*?-baremetal-daily-.*?'
             - 'compass-k8-.*?-baremetal-daily-.*?'
             - 'compass-verify-[^-]*-[^-]*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - fix-workspace-permissions
           blocking-jobs:
             - 'compass-deploy-{pod}-daily-.*?'
             - 'compass-verify-deploy-.*?'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
                 !include-raw-escape: ./compass-deploy.sh
       - conditional-step:
           condition-kind: regex-match
-          regex: (danube|fraser)
+          regex: (danube|gambia)
           label: '{stream}'
           steps:
             - shell:
       - 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: ''
 
       - 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 * *'
index c090863..ec62da3 100644 (file)
@@ -51,7 +51,7 @@
           blocking-jobs:
             - 'compass-os-.*?-{pod}-daily-.*?'
             - 'compass-os-.*?-{pod}-weekly-.*?'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
             - 'compass-deploy-{pod}-daily-.*?'
             - 'compass-deploy-{pod}-weekly-.*'
             - 'compass-verify-deploy-.*?'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
index b857734..17745a2 100644 (file)
@@ -20,7 +20,7 @@
           gs-pathname: '/{stream}'
           ppa-pathname: '/{stream}'
           disabled: false
-      - fraser:
+      - gambia:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           ppa-pathname: '/{stream}'
index f0cda82..daedff7 100644 (file)
           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
           blocking-jobs:
             - 'compass-verify-[^-]*-[^-]*'
             - 'compass-os-.*?-virtual-daily-.*?'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - ssh-agent-wrapper
             - 'compass-os-.*?-virtual-daily-.*?'
             - 'compass-verify-deploy-.*'
             - 'functest-compass-virtual.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - ssh-agent-wrapper
diff --git a/jjb/compass4nfv/compass4nfv-rtd-jobs.yaml b/jjb/compass4nfv/compass4nfv-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..974ec6e
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: compass4nfv-rtd
+    project: compass4nfv
+    project-name: compass4nfv
+
+    gerrit-skip-vote: true
+    project-pattern: 'compass4nfv'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-compass4nfv/47358/'
+    rtd-token: '4208e8492be2e4eab7f18f1e70b5d78247d1b249'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 069a5d2..5425ae0 100644 (file)
@@ -33,7 +33,7 @@
 
     wrappers:
       - timeout:
-          timeout: 210
+          timeout: 300
           fail: true
 
     scm:
@@ -63,6 +63,8 @@
               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:
index 194a1a9..ae9b436 100644 (file)
           blocking-jobs:
             - 'clover-daily-deploy-.*?'
             - 'container4nfv-daily-deploy-.*?'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - timeout:
diff --git a/jjb/container4nfv/container4nfv-rtd-jobs.yaml b/jjb/container4nfv/container4nfv-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..0a008b4
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: container4nfv-rtd
+    project: container4nfv
+    project-name: container4nfv
+
+    gerrit-skip-vote: true
+    project-pattern: 'container4nfv'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-container4nfv/47359/'
+    rtd-token: '82f917a788d006dc15df14ecd3c991115490bf8a'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/copper/copper-rtd-jobs.yaml b/jjb/copper/copper-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..6198d22
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: copper-rtd
+    project: copper
+    project-name: copper
+
+    gerrit-skip-vote: true
+    project-pattern: 'copper'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-copper/47360/'
+    rtd-token: '1b423ddc3af602f8078c1ece0d689e0b4d3c3f79'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index efcf51f..61bdebd 100644 (file)
               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:
index 4fdcd10..892f0aa 100755 (executable)
@@ -4,6 +4,11 @@ set -o errexit
 set -o nounset
 set -o pipefail
 
+if [[ ! -z ${SKIP_CSIT+x} && "$SKIP_CSIT" == "True" ]]; then
+  echo "Skipping csit run"
+  exit 0
+fi
+
 if [ "$OS_VERSION" == 'master' ]; then
   FULL_OS_VER='master'
 else
@@ -144,19 +149,28 @@ 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
 #
-
-suites="${SUITE_HOME}/openstack/connectivity/l2.robot \
-        ${SUITE_HOME}/openstack/connectivity/l3.robot \
-        ${SUITE_HOME}/openstack/connectivity/external_network.robot \
-        ${SUITE_HOME}/openstack/connectivity/security_group.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 \
-        ${SUITE_HOME}/integration/Create_JVM_Plots.robot"
+# ${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
+#
+# Minimize HA CSIT as it does not pass all suites
+if [ "$NUM_CONTROL_NODES" -eq 3 ]; then
+  suites="${SUITE_HOME}/openstack/connectivity/l2.robot \
+          ${SUITE_HOME}/openstack/connectivity/l3.robot"
+else
+  suites="${SUITE_HOME}/openstack/connectivity/l2.robot \
+          ${SUITE_HOME}/openstack/connectivity/l3.robot \
+          ${SUITE_HOME}/openstack/connectivity/external_network.robot \
+          ${SUITE_HOME}/openstack/connectivity/security_group.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/elan/elan.robot \
+          ${SUITE_HOME}/netvirt/vpnservice/arp_learning.robot \
+          ${SUITE_HOME}/netvirt/l2l3_gatewaymac_arp.robot \
+          ${SUITE_HOME}/integration/Create_JVM_Plots.robot"
+fi
 
 echo "Robot command set: ${robot_cmd}"
 echo "Running robot..."
index ba03bc3..4a7e6e9 100644 (file)
             - 'daisy-os-.*?-{pod}-daily-.*?'
             - 'daisy-daily-.*'
             - 'daisy-kolla-build-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
             - '{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:
index ec5ba71..7914548 100644 (file)
@@ -60,7 +60,7 @@
             - '{installer}-kolla-build-.*'
             - 'daisy-deploy-.*'
             - 'daisy-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm
             - '{installer}-kolla-build-.*'
             - 'daisy4nfv-merge-build-.*'
             - 'daisy4nfv-verify-build-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm
             - '{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/daisy-rtd-jobs.yaml b/jjb/daisy4nfv/daisy-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..59c66a9
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: daisy-rtd
+    project: daisy
+    project-name: daisy
+
+    gerrit-skip-vote: true
+    project-pattern: 'daisy'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-daisy/47361/'
+    rtd-token: '265efe14ff0bb3fa0d4ea66d6be1b7b511d5d713'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 7e03fab..c261c23 100644 (file)
@@ -61,7 +61,7 @@
           use-build-blocker: true
           blocking-jobs:
             - '{alias}-merge-(master|fraser)'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm
           blocking-jobs:
             - '{alias}-merge-{phase}-.*'
             - '{installer}-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm
index 033beeb..c8c1db0 100644 (file)
@@ -55,7 +55,7 @@
           use-build-blocker: true
           blocking-jobs:
             - '{alias}-merge-build-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm-gerrit
             - '{alias}-merge-build-.*'
             - '{alias}-verify-build-.*'
             - '{installer}-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm-gerrit
diff --git a/jjb/doctor/doctor-rtd-jobs.yaml b/jjb/doctor/doctor-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..1693a6f
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: doctor-rtd
+    project: doctor
+    project-name: doctor
+
+    gerrit-skip-vote: true
+    project-pattern: 'doctor'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-doctor/47362/'
+    rtd-token: 'bf8640556a3ba3151e4e5602facc5ed982dd88c8'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index b78bab1..5b4c4b0 100644 (file)
@@ -3,13 +3,19 @@
     name: doctor
 
     project: '{name}'
+    project-name: '{name}'
+    project-pattern: '{project}'
 
     stream:
       - master:
           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
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
               kill-phase-on: FAILURE
               git-revision: true
-            - name: 'doctor-verify-maintenance-apex-sample-x86_64-{stream}'
+      - multijob:
+          name: 'doctor-verify-congress'
+          execution-type: PARALLEL
+          projects:
+            - name: 'doctor-verify-fault_management-apex-congress-x86_64-{stream}'
               predefined-parameters: |
                 PROJECT=$PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
               kill-phase-on: FAILURE
               git-revision: true
       - multijob:
-          name: 'doctor-verify-congress'
+          name: 'doctor-verify-sample-all'
           execution-type: PARALLEL
           projects:
-            - name: 'doctor-verify-fault_management-apex-congress-x86_64-{stream}'
+            - name: 'doctor-verify-all-apex-sample-x86_64-{stream}'
               predefined-parameters: |
                 PROJECT=$PROJECT
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 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
diff --git a/jjb/domino/domino-rtd-jobs.yaml b/jjb/domino/domino-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..26f2547
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: domino-rtd
+    project: domino
+    project-name: domino
+
+    gerrit-skip-vote: true
+    project-pattern: 'domino'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-domino/47363/'
+    rtd-token: 'c89c7fc281d94a985df61b49be2b824f544ba6fd'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index f7d3213..a579af6 100644 (file)
@@ -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}'
                   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
index 8d47616..02a33cc 100644 (file)
     fraser: &fraser
       stream: fraser
       branch: 'stable/{stream}'
-      dovetail-branch: master
+      dovetail-branch: 'stable/{stream}'
+      gs-pathname: '/{stream}'
+      docker-tag: 'ovp-2.0.0'
+    gambia: &gambia
+      stream: gambia
+      branch: 'stable/{stream}'
+      dovetail-branch: 'master'
       gs-pathname: '/{stream}'
       docker-tag: 'latest'
 
           SUT: compass
           auto-trigger-name: 'daily-trigger-disabled'
           <<: *fraser
+      - baremetal:
+          slave-label: compass-baremetal
+          SUT: compass
+          auto-trigger-name: 'daily-trigger-disabled'
+          <<: *gambia
+      - virtual:
+          slave-label: compass-virtual
+          SUT: compass
+          auto-trigger-name: 'daily-trigger-disabled'
+          <<: *gambia
       # -------------------------------
       #    Installers not using labels
       #            CI PODs
diff --git a/jjb/dovetail/dovetail-rtd-jobs.yaml b/jjb/dovetail/dovetail-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..482ff46
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: dovetail-rtd
+    project: dovetail
+    project-name: dovetail
+
+    project-pattern: 'dovetail'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-dovetail/47364/'
+    rtd-token: '47df9d7358b153666c2cf5cc139cd3a65d135688'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 065d201..04b11fd 100755 (executable)
@@ -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,44 @@ mkdir -p ${DOVETAIL_CONFIG}
 DOVETAIL_IMAGES=${DOVETAIL_HOME}/images
 mkdir -p ${DOVETAIL_IMAGES}
 
+OPENRC=${DOVETAIL_CONFIG}/env_config.sh
+CACERT=${DOVETAIL_CONFIG}/os_cacert
+POD=${DOVETAIL_CONFIG}/pod.yaml
+
 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
+        echo 0
+    else
+        echo 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,62 +74,85 @@ 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
+}
 
-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_compass_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
+get_fuel_cred_file() {
+    get_cred_file_with_scripts
+}
 
-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() {
+    if [[ ${INSTALLER_TYPE} == "apex" ]]; then
+        echo "INFO: apex doesn't need to set OS_CACERT."
+        return 0
+    fi
+    exists=`check_file_exists ${CACERT}`
+    if [[ $exists == 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 ${CACERT}. Please check if it exists."
+        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() {
+    exists=`check_file_exists ${OPENRC}`
+    if [[ $exists == 0 ]]; then
+        echo "export EXTERNAL_NETWORK=${EXTERNAL_NETWORK}" >> ${OPENRC}
+    else
+        echo "ERROR: cannot find file $OPENRC. Please check if it exists."
+        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
 
-# These packages are used for parsing yaml files and decrypting ipmi user and password.
-sudo pip install shyaml
-sudo yum install -y rubygems || sudo apt-get install -y ruby
-sudo gem install hiera-eyaml
+    exists=`check_file_exists ${OPENRC}`
+    if [[ $exists == 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 exists."
+        sudo ls -al ${DOVETAIL_CONFIG}
+        exit 1
+    fi
+}
 
-if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == "compass" ]]; then
+get_compass_pod_file() {
     compass_repo=${WORKSPACE}/compass4nfv/
+    echo "INFO: clone compass repo..."
     git clone https://github.com/opnfv/compass4nfv.git ${compass_repo} >/dev/null
     scenario_file=${compass_repo}/deploy/conf/hardware_environment/$NODE_NAME/os-nosdn-nofeature-ha.yml
     ipmiIp=$(cat ${scenario_file} | shyaml get-value hosts.0.ipmiIp)
@@ -106,7 +160,7 @@ if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == "compass" ]]; then
     ipmiUser=root
     jumpserver_ip=$(ifconfig | grep -A 5 docker0 | grep "inet addr" | cut -d ':' -f 2 | cut -d ' ' -f 1)
 
-    cat << EOF >${DOVETAIL_CONFIG}/pod.yaml
+    cat << EOF >${POD}
 nodes:
 - {ip: ${jumpserver_ip}, name: node0, password: root, role: Jumpserver, user: root}
 - {ip: 10.1.0.50, name: node1, password: root, role: controller, user: root,
@@ -117,9 +171,10 @@ nodes:
 - {ip: 10.1.0.54, name: node5, password: root, role: compute, user: root}
 
 EOF
-fi
 
-if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_TYPE} == 'baremetal' ]]; then
+}
+
+get_fuel_baremetal_pod_file() {
     fuel_ctl_ssh_options="${ssh_options} -i ${SSH_KEY}"
     ssh_user="ubuntu"
     fuel_ctl_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \
@@ -147,7 +202,7 @@ if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_T
     [[ $ipmiUser == ENC* ]] && ipmiUser=$(eyaml decrypt -s ${ipmiUser//[[:blank:]]/})
     [[ $ipmiPass == ENC* ]] && ipmiPass=$(eyaml decrypt -s ${ipmiPass//[[:blank:]]/})
 
-    cat << EOF >${DOVETAIL_CONFIG}/pod.yaml
+    cat << EOF >${POD}
 nodes:
 - {ip: ${INSTALLER_IP}, name: node0, key_filename: /home/opnfv/userconfig/pre_config/id_rsa,
    role: Jumpserver, user: ${ssh_user}}
@@ -157,11 +212,10 @@ nodes:
 - {ip: ${fuel_cmp_ip}, name: cmp01, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}}
 - {ip: ${fuel_dbs_ip}, name: dbs01, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}}
 EOF
-fi
+}
 
-if [[ ! -f ${DOVETAIL_CONFIG}/pod.yaml ]]; then
+get_pod_file_with_scripts() {
     set +e
-
     sudo pip install virtualenv
 
     cd ${releng_repo}/modules
@@ -173,60 +227,95 @@ if [[ ! -f ${DOVETAIL_CONFIG}/pod.yaml ]]; then
     if [[ ${INSTALLER_TYPE} == compass ]]; then
         options="-u root -p root"
     elif [[ ${INSTALLER_TYPE} == fuel ]]; then
-        options="-u root -p r00tme"
+        options="-u ubuntu -k /root/.ssh/id_rsa"
     elif [[ ${INSTALLER_TYPE} == apex ]]; then
         options="-u stack -k /root/.ssh/id_rsa"
     elif [[ ${INSTALLER_TYPE} == daisy ]]; then
         options="-u root -p r00tme"
     else
-        echo "Don't support to generate pod.yaml on ${INSTALLER_TYPE} currently."
-        echo "HA test cases may not run properly."
+        echo "WARNING: Don't support to generate ${POD} on ${INSTALLER_TYPE} currently."
+        echo "WARNING: HA test cases may not run properly."
     fi
 
     cmd="sudo python ${releng_repo}/utils/create_pod_file.py -t ${INSTALLER_TYPE} \
-         -i ${INSTALLER_IP} ${options} -f ${DOVETAIL_CONFIG}/pod.yaml \
+         -i ${INSTALLER_IP} ${options} -f ${POD} \
          -s /home/opnfv/userconfig/pre_config/id_rsa"
-    echo ${cmd}
+    echo "INFO: cmd is ${cmd}"
     ${cmd}
 
     deactivate
-
     set -e
-
     cd ${WORKSPACE}
-fi
+}
 
-if [ -f ${DOVETAIL_CONFIG}/pod.yaml ]; then
-    sudo chmod 666 ${DOVETAIL_CONFIG}/pod.yaml
-    echo "Adapt process info for $INSTALLER_TYPE ..."
-    if [ "$INSTALLER_TYPE" == "apex" ]; then
-        cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml
+change_apex_pod_file_process_info() {
+    cat << EOF >> ${POD}
 process_info:
 - {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq_server}
 - {testcase_name: yardstick.ha.cinder_api, attack_process: cinder_wsgi}
 EOF
-    elif [ "$INSTALLER_TYPE" == "fuel" ]; then
-        cat << EOF >> ${DOVETAIL_CONFIG}/pod.yaml
+}
+
+change_fuel_pod_file_process_info() {
+    cat << EOF >> ${POD}
 process_info:
 - {testcase_name: yardstick.ha.cinder_api, attack_process: cinder-wsgi}
 - {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq_server, attack_host: msg01}
 - {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
+}
+
+change_compass_pod_file_process_info() {
+    cat << EOF >> ${POD}
 process_info:
 - {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq}
 EOF
+}
+
+change_pod_file_process_info() {
+    sudo chmod 666 ${POD}
+    echo "INFO: adapt process info for $INSTALLER_TYPE ..."
+    if [ "$INSTALLER_TYPE" == "apex" ]; then
+        change_apex_pod_file_process_info
+    elif [ "$INSTALLER_TYPE" == "fuel" ]; then
+        change_fuel_pod_file_process_info
+    elif [ "$INSTALLER_TYPE" == "compass" ]; then
+        change_compass_pod_file_process_info
+    fi
+}
+
+get_pod_file() {
+    # These packages are used for parsing yaml files and decrypting ipmi user and password.
+    sudo pip install shyaml
+    sudo yum install -y rubygems || sudo apt-get install -y ruby
+    sudo gem install hiera-eyaml
+    if [[ ${INSTALLER_TYPE} == 'compass' ]]; then
+        get_compass_pod_file
+    elif [[ ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_TYPE} == 'baremetal' ]]; then
+        get_fuel_baremetal_pod_file
     fi
 
-    echo "file ${DOVETAIL_CONFIG}/pod.yaml:"
-    cat ${DOVETAIL_CONFIG}/pod.yaml
-else
-    echo "Error: cannot find file ${DOVETAIL_CONFIG}/pod.yaml. Please check if it is existing."
-    sudo ls -al ${DOVETAIL_CONFIG}
-    echo "HA test cases may not run properly."
-fi
+    exists=`check_file_exists ${POD}`
+    if [[ $exists == 1 ]]; then
+        get_pod_file_with_scripts
+    fi
+
+    exists=`check_file_exists ${POD}`
+    if [[ $exists == 0 ]]; then
+        change_pod_file_process_info
+    else
+        echo "ERROR: cannot find file ${POD}. Please check if it exists."
+        sudo ls -al ${DOVETAIL_CONFIG}
+        exit 1
+    fi
+
+    echo "INFO: file ${POD} is:"
+    cat ${POD}
+}
+
+get_cred_file
+get_pod_file
 
 if [ "$INSTALLER_TYPE" == "fuel" ]; then
     if [[ "${SUT_BRANCH}" =~ "danube" ]]; then
@@ -321,7 +410,7 @@ sleep 5
 container_id=$(docker ps | grep "${DOCKER_REPO}:${DOCKER_TAG}" | awk '{print $1}' | head -1)
 echo "Container ID=${container_id}"
 if [ -z ${container_id} ]; then
-    echo "Cannot find ${DOCKER_REPO} container ID ${container_id}. Please check if it is existing."
+    echo "Cannot find ${DOCKER_REPO} container ID ${container_id}. Please check if it exists."
     docker ps -a
     exit 1
 fi
diff --git a/jjb/escalator/escalator-rtd-jobs.yaml b/jjb/escalator/escalator-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..762051c
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: escalator-rtd
+    project: escalator
+    project-name: escalator
+
+    gerrit-skip-vote: true
+    project-pattern: 'escalator'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-escalator/47365/'
+    rtd-token: 'cb75c70dab564cb40e6d9e8f2a99ced96f5b79b1'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/fds/fds-rtd-jobs.yaml b/jjb/fds/fds-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..9bf47b9
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: fds-rtd
+    project: fds
+    project-name: fds
+
+    project-pattern: 'fds'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-fds/47367/'
+    rtd-token: '756989c50a7c8f3350c4943f3d39a73762a4cd85'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 73d33d6..936187c 100644 (file)
       branch: 'stable/{stream}'
       disabled: false
       gs-pathname: '/{stream}'
+    gambia: &gambia
+      stream: gambia
+      branch: 'stable/{stream}'
+      disabled: false
+      gs-pathname: '/{stream}'
     # -------------------------------
     # POD, INSTALLER, AND BRANCH MAPPING
     # -------------------------------
           <<: *master
       - baremetal:
           slave-label: fuel-baremetal
-          <<: *fraser
+          <<: *gambia
       - virtual:
           slave-label: fuel-virtual
+          <<: *gambia
+      - baremetal:
+          slave-label: fuel-baremetal
           <<: *fraser
       # -------------------------------
       #        None-CI PODs
@@ -65,6 +73,8 @@
           auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
       - 'os-odl-nofeature-noha':
           auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+      - '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'
 
     exclude:
+      # 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-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: fraser
 
     jobs:
       - 'fuel-{scenario}-{pod}-daily-{stream}'
           blocking-jobs:
             - 'fuel-os-.*?-{pod}-daily-.*'
             - 'fuel-verify-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
               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'
+      - conditional-step:
+          condition-kind: not
+          condition-operand:
+            condition-kind: regex-match
+            regex: 'fraser'
+            label: '{stream}'
+          steps:
+            - 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'
+      - 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}
+                  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
             - condition-kind: regex-match
               regex: '.*-ha'
               label: '{scenario}'
+            - condition-kind: regex-match
+              regex: 'fraser'
+              label: '{stream}'
           steps:
             - trigger-builds:
                 - project: 'dovetail-fuel-{pod}-default-mandatory-{stream}'
             - 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}'
           use-build-blocker: true
           blocking-jobs:
             - 'fuel-deploy-{pod}-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - project-parameter:
     name: 'fuel-os-odl-nofeature-noha-baremetal-daily-master-trigger'
     triggers:
       - timed: ''
+- trigger:
+    name: 'fuel-os-odl-sfc-noha-baremetal-daily-master-trigger'
+    triggers:
+      - timed: ''
 - trigger:
     name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-master-trigger'
     triggers:
     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'
+    name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-gambia-trigger'
     triggers:
-      - timed: '0 20 * * 1,3,7'
+      - timed: '0 20 * * *'
 - trigger:
-    name: 'fuel-os-odl-nofeature-ha-baremetal-daily-fraser-trigger'
+    name: 'fuel-os-odl-nofeature-ha-baremetal-daily-gambia-trigger'
     triggers:
-      - timed: ''  # '0 2 * * *'
+      - 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-nosdn-ovs-ha-baremetal-daily-fraser-trigger'
+    name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-gambia-trigger'
     triggers:
-      - timed: ''  # '0 20 * * *'
+      - timed: '0 5 * * *'
+- trigger:
+    name: 'fuel-os-nosdn-vpp-ha-baremetal-daily-gambia-trigger'
+    triggers:
+      - timed: ''
 # NOHA Scenarios
 - trigger:
-    name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger'
+    name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-gambia-trigger'
     triggers:
       - timed: ''
 - trigger:
-    name: 'fuel-os-odl-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-ovs-noha-baremetal-daily-fraser-trigger'
+    name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-gambia-trigger'
+    triggers:
+      - timed: ''
+- trigger:
+    name: 'fuel-os-odl-ovs-noha-baremetal-daily-gambia-trigger'
+    triggers:
+      - timed: ''
+- trigger:
+    name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-gambia-trigger'
+    triggers:
+      - timed: ''
+- trigger:
+    name: 'fuel-os-nosdn-vpp-noha-baremetal-daily-gambia-trigger'
     triggers:
       - timed: ''
 # ----------------------------------------------
     name: 'fuel-os-odl-nofeature-noha-virtual-daily-master-trigger'
     triggers:
       - timed: '5 18 * * *'
+- trigger:
+    name: 'fuel-os-odl-sfc-noha-virtual-daily-master-trigger'
+    triggers:
+      - timed: '5 4 * * *'
 - trigger:
     name: 'fuel-os-ovn-nofeature-noha-virtual-daily-master-trigger'
     triggers:
     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'
+    name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger'
+    triggers:
+      - timed: '5 13 * * 6,7'
+- trigger:
+    name: 'fuel-os-odl-nofeature-ha-baremetal-daily-fraser-trigger'
+    triggers:
+      - timed: '0 13 * * 6'
+- trigger:
+    name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-fraser-trigger'
+    triggers:
+      - timed: '0 13 * * 7'
+# ----------------------------------------------
+# Triggers for job running on fuel-virtual against gambia branch
+# ----------------------------------------------
+- trigger:
+    name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-gambia-trigger'
+    triggers:
+      - timed: ''
+- trigger:
+    name: 'fuel-os-odl-nofeature-ha-virtual-daily-gambia-trigger'
     triggers:
       - timed: ''
 - trigger:
-    name: 'fuel-os-odl-nofeature-ha-virtual-daily-fraser-trigger'
+    name: 'fuel-os-ovn-nofeature-ha-virtual-daily-gambia-trigger'
     triggers:
       - timed: ''
 - trigger:
-    name: 'fuel-os-ovn-nofeature-ha-virtual-daily-fraser-trigger'
+    name: 'fuel-os-nosdn-ovs-ha-virtual-daily-gambia-trigger'
     triggers:
       - timed: ''
 - trigger:
-    name: 'fuel-os-nosdn-ovs-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-ovn-nofeature-noha-virtual-daily-gambia-trigger'
+    triggers:
+      - timed: '0 23 * * *'
+- trigger:
+    name: 'fuel-os-odl-ovs-noha-virtual-daily-gambia-trigger'
+    triggers:
+      - timed: '0 2 * * *'
 - trigger:
-    name: 'fuel-os-nosdn-ovs-noha-virtual-daily-fraser-trigger'
+    name: 'fuel-os-nosdn-ovs-noha-virtual-daily-gambia-trigger'
     triggers:
-      - timed: ''  # '0 9 * * *'
+      - timed: '0 9 * * *'
+- trigger:
+    name: 'fuel-os-nosdn-vpp-noha-virtual-daily-gambia-trigger'
+    triggers:
+      - timed: ''
 # ----------------------------------------------
 # ZTE POD1 Triggers running against master branch
 # ----------------------------------------------
     name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-master-trigger'
     triggers:
       - timed: ''
+- trigger:
+    name: 'fuel-os-odl-sfc-noha-zte-pod1-daily-master-trigger'
+    triggers:
+      - timed: ''
 - trigger:
     name: 'fuel-os-ovn-nofeature-noha-zte-pod1-daily-master-trigger'
     triggers:
index aa7b3bb..8bc5fa2 100755 (executable)
@@ -19,6 +19,9 @@ LAB_NAME=${NODE_NAME/-*}
 # shellcheck disable=SC2153
 POD_NAME=${NODE_NAME/*-}
 
+# define Docker tag for stable branches
+[[ "${BRANCH}" != master ]] && export MCP_DOCKER_TAG=${BRANCH##*/}
+
 # 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!"
@@ -27,10 +30,6 @@ fi
 
 echo "Using configuration for ${LAB_NAME}"
 
-# Certain labs do not require the deploy script to be ran with sudo
-SUDO='sudo -E'
-[[ ! "${LAB_NAME}" =~ (arm|enea|unh) ]] || SUDO=
-
 # create TMPDIR if it doesn't exist, change permissions
 mkdir -p "${TMPDIR}"
 sudo chmod a+x "${HOME}" "${TMPDIR}"
@@ -43,8 +42,11 @@ 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'
 
+# turn on DEBUG mode
+[[ ${CI_DEBUG,,} == true ]] && EXTRA_ARGS="-D ${EXTRA_ARGS:-}"
+
 # construct the command
-DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh \
+DEPLOY_COMMAND="${WORKSPACE}/ci/deploy.sh \
     -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} \
     -S ${TMPDIR} ${EXTRA_ARGS:-} \
     -L ${WORKSPACE}/${FUEL_LOG_FILENAME}"
index 98ed66d..c06848e 100644 (file)
@@ -14,7 +14,7 @@
           disabled: false
       - gambia:
           branch: 'stable/{stream}'
-          disabled: true
+          disabled: false
 
     arch_tag:
       - 'amd64':
           *)
               tag="{stream}" ;;
           esac
-          sudo ./ci/build.sh $tag
+          ./ci/build.sh $tag
 
 - job-template:
     name: 'fuel-docker-manifest-{stream}'
           name: SLAVE_LABEL
           default: 'opnfv-build-ubuntu'
           description: 'Slave label on Jenkins'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: PROJECT
           default: "{project}"
           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
index 7d7e459..f424c20 100644 (file)
           branch: '{stream}'
           gs-pathname: ''
           disabled: false
-      - fraser:
+      - gambia:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
-
-    project-name: '{project}'
-    project-pattern: '{project}'
-    rtd-build-url: https://readthedocs.org/api/v2/webhook/opnfv-fuel/47205/
-    rtd-token: 38f40bf6c08fd4bccb930871bc29b08404cf98b0
-
-    jobs:
-      - '{project-name}-rtd-jobs'
index ea27d9c..5695ef8 100644 (file)
@@ -13,7 +13,7 @@
           branch: '{stream}'
           gs-pathname: ''
           disabled: false
-      - fraser:
+      - gambia:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
@@ -68,7 +68,7 @@
           blocking-jobs:
             - 'fuel-os-.*?-daily-.*'
             - 'fuel-verify-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm-gerrit
           blocking-jobs:
             - 'fuel-verify-docker-build-.*'
             - 'fuel-verify-deploy-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm-gerrit
index 4e23d44..42bf60b 100755 (executable)
@@ -8,6 +8,7 @@ REPO=${REPO:-opnfv}
 CI_LOOP=${CI_LOOP:-daily}
 TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results
 ENERGY_RECORDER_API_URL=http://energy.opnfv.fr/resources
+DOCKER_TAG=${DOCKER_TAG:-$([[ ${BRANCH##*/} == "master" ]] && echo "latest" || echo ${BRANCH##*/})}
 
 check_os_deployment() {
     FUNCTEST_IMAGE=${REPO}/functest-healthcheck:${DOCKER_TAG}
@@ -26,14 +27,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} ..."
@@ -46,6 +43,7 @@ run_tiers() {
             echo ${ret_value} > ${ret_val_file}
             if [ ${tier} == 'healthcheck' ]; then
                 echo "Healthcheck tier failed. Exiting Functest..."
+                skip_tests=1
                 break
             fi
         fi
@@ -55,8 +53,6 @@ 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)
@@ -93,7 +89,6 @@ FUNCTEST_DIR=/home/opnfv/functest
 DEPLOY_TYPE=baremetal
 [[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt
 HOST_ARCH=$(uname -m)
-DOCKER_TAG=`[[ ${BRANCH##*/} == "master" ]] && echo "latest" || echo ${BRANCH##*/}`
 
 # Prepare OpenStack credentials volume
 rc_file=${HOME}/opnfv-openrc.sh
@@ -137,13 +132,17 @@ envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
 
 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}'")
+    IMAGE_PROPERTIES="hw_disk_bus:scsi,hw_scsi_model:virtio-scsi"
     envs="${envs} -e POD_ARCH=${COMPUTE_ARCH}"
 fi
 
+if [[ ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_SCENARIO} == 'os-nosdn-nofeature-noha' ]]; then
+    libvirt_vol="-v ${ssh_key}:${FUNCTEST_DIR}/conf/libvirt_key"
+    envs="${envs} -e LIBVIRT_USER=ubuntu -e LIBVIRT_KEY_PATH=${FUNCTEST_DIR}/conf/libvirt_key"
+fi
 
 if [[ ${INSTALLER_TYPE} == 'compass' && ${DEPLOY_SCENARIO} =~ 'sfc' ]]; then
     ssh_key="/tmp/id_rsa"
@@ -155,8 +154,108 @@ if [[ ${INSTALLER_TYPE} == 'compass' && ${DEPLOY_SCENARIO} =~ 'sfc' ]]; then
     envs="${envs} -e EXTERNAL_NETWORK=${EXTERNAL_NETWORK}"
 fi
 
+if [[ ${INSTALLER_TYPE} == 'compass' ]] || [[ ${DEPLOY_SCENARIO} == *"odl"* ]]; then
+      envs="${envs} -e SDN_CONTROLLER_RESTCONFPORT=8080"
+fi
 
-volumes="${images_vol} ${results_vol} ${sshkey_vol} ${userconfig_vol} ${rc_file_vol} ${cacert_file_vol}"
+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"
+fi
+
+if [[ -n ${IMAGE_PROPERTIES} ]] || [[ -n ${FLAVOR_EXTRA_SPECS} ]]; then
+    envs="${envs} -e IMAGE_PROPERTIES=${IMAGE_PROPERTIES} -e FLAVOR_EXTRA_SPECS=${FLAVOR_EXTRA_SPECS}"
+fi
+
+tempest_conf_yaml=$(mktemp)
+case ${INSTALLER_TYPE} in
+apex)
+    cat << EOF > "${tempest_conf_yaml}"
+---
+compute-feature-enabled:
+    shelve: false
+    vnc_console: true
+identity-feature-enabled:
+    api_v2: false
+    api_v2_admin: false
+image-feature-enabled:
+    api_v2: true
+    api_v1: false
+volume:
+    storage_protocol: ceph
+volume-feature-enabled:
+    backup: false
+EOF
+    ;;
+compass)
+    cat << EOF > "${tempest_conf_yaml}"
+---
+compute-feature-enabled:
+    shelve: false
+    vnc_console: false
+    spice_console: true
+identity-feature-enabled:
+    api_v2: false
+    api_v2_admin: false
+image-feature-enabled:
+    api_v2: true
+    api_v1: false
+volume:
+    storage_protocol: ceph
+volume-feature-enabled:
+    backup: false
+EOF
+    ;;
+fuel)
+    cat << EOF > "${tempest_conf_yaml}"
+---
+compute-feature-enabled:
+    shelve: false
+    vnc_console: false
+    spice_console: true
+identity-feature-enabled:
+    api_v2: false
+    api_v2_admin: false
+image-feature-enabled:
+    api_v2: true
+    api_v1: false
+volume:
+    storage_protocol: iSCSI
+volume-feature-enabled:
+    backup: false
+EOF
+    ;;
+*)
+    cat << EOF > "${tempest_conf_yaml}"
+---
+compute-feature-enabled:
+    shelve: false
+    vnc_console: false
+identity-feature-enabled:
+    api_v2: false
+    api_v2_admin: false
+image-feature-enabled:
+    api_v2: true
+    api_v1: false
+volume:
+    storage_protocol: iSCSI
+volume-feature-enabled:
+    backup: false
+EOF
+    ;;
+esac
+echo "tempest_conf.yaml:" && cat "${tempest_conf_yaml}"
+
+volumes="${images_vol} ${results_vol} ${sshkey_vol} ${libvirt_vol} \
+    ${userconfig_vol} ${rc_file_vol} ${cacert_file_vol} \
+    -v ${tempest_conf_yaml}:/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml"
+
+ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
+echo 0 > ${ret_val_file}
 
 set +e
 
@@ -169,6 +268,7 @@ elif [ ${FUNCTEST_MODE} == 'tier' ]; then
     run_tiers ${tiers}
 else
     tests=(tempest_full tempest_scenario)
+    skip_tests=0
     if [ ${DEPLOY_TYPE} == 'baremetal' ] && [ "${HOST_ARCH}" != "aarch64" ]; then
         if [[ ${BRANCH} == "stable/fraser" ]]; then
             tiers=(healthcheck smoke features vnf parser)
@@ -185,7 +285,9 @@ else
         fi
     fi
     run_tiers ${tiers}
-    for test in "${tests[@]}"; do
-        run_test "$test"
-    done
+    if [ ${skip_tests} -eq 0 ]; then
+        for test in "${tests[@]}"; do
+            run_test "$test"
+        done
+    fi
 fi
index daed74e..34aee8a 100644 (file)
           slave-label: fuel-virtual
           installer: fuel
           <<: *master
+      - baremetal:
+          slave-label: fuel-baremetal
+          installer: fuel
+          <<: *gambia
+      - virtual:
+          slave-label: fuel-virtual
+          installer: fuel
+          <<: *gambia
       - baremetal:
           slave-label: fuel-baremetal
           installer: fuel
           slave-label: compass-arm-virtual
           installer: compass
           <<: *fraser
+      - baremetal:
+          slave-label: compass-baremetal
+          installer: compass
+          <<: *gambia
+      - virtual:
+          slave-label: compass-virtual
+          installer: compass
+          <<: *gambia
+      - arm-virtual:
+          slave-label: compass-arm-virtual
+          installer: compass
+          <<: *gambia
       # apex CI PODs
       - virtual:
           slave-label: apex-virtual-master
           slave-label: apex-baremetal-master
           installer: apex
           <<: *master
+      - virtual:
+          slave-label: apex-virtual-master
+          installer: apex
+          <<: *gambia
+      - baremetal:
+          slave-label: apex-baremetal-master
+          installer: apex
+          <<: *gambia
       - virtual:
           slave-label: apex-virtual-fraser
           installer: apex
           slave-label: armband-virtual
           installer: fuel
           <<: *master
+      - 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
       - 'suite':
           job-timeout: 60
       - 'daily':
-          job-timeout: 480
+          job-timeout: 600
 
     jobs:
       - 'functest-{installer}-{pod}-{testsuite}-{stream}'
       - throttle:
           enabled: true
           max-per-node: 1
+          max-total: 10
           option: 'project'
 
     wrappers:
       - string:
           name: DEPLOY_SCENARIO
           default: 'os-nosdn-nofeature-noha'
+      - string:
+          name: DOCKER_TAG
+          default: ''
       - string:
           name: CLEAN_DOCKER_IMAGES
           default: 'false'
index 14134fa..19967e9 100644 (file)
           name: SLAVE_LABEL
           default: 'opnfv-build-ubuntu'
           description: 'Slave label on Jenkins'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: PROJECT
           default: "{project}"
           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
index 3836103..c328f5d 100644 (file)
           name: SLAVE_LABEL
           default: 'opnfv-build-ubuntu'
           description: 'Slave label on Jenkins'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: PROJECT
           default: "{project}"
           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
index b7220a8..e9a65b4 100644 (file)
     wrappers:
       - ssh-agent-wrapper
       - build-timeout:
-          timeout: 30
+          timeout: 60
 
     parameters:
       - project-parameter:
diff --git a/jjb/functest/functest-rtd-jobs.yaml b/jjb/functest/functest-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..e453382
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: functest-rtd
+    project: functest
+    project-name: functest
+
+    gerrit-skip-vote: true
+    project-pattern: 'functest'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-functest/47369/'
+    rtd-token: '26f9131bd5c337928ba8b431a289f6850b330504'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 84bcb21..88416bb 100644 (file)
           name: SLAVE_LABEL
           default: 'opnfv-build-ubuntu'
           description: 'Slave label on Jenkins'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: PROJECT
           default: "{project}"
           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/global-jjb b/jjb/global-jjb
deleted file mode 160000 (submodule)
index 9b24045..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9b240453b91f3c4b0844ea1c593721a1c421caa2
diff --git a/jjb/global-jjb/jjb b/jjb/global-jjb/jjb
new file mode 120000 (symlink)
index 0000000..23c884f
--- /dev/null
@@ -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 (symlink)
index 0000000..d37c43f
--- /dev/null
@@ -0,0 +1 @@
+../../global-jjb/shell
\ No newline at end of file
index a8b9cff..d2c2711 100644 (file)
@@ -13,7 +13,7 @@
           branch: '{stream}'
           gs-pathname: ''
           disabled: false
-      - fraser:
+      - gambia:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
index ce008ca..e584107 100644 (file)
@@ -16,7 +16,6 @@
     build-node: 'opnfv-build'
     gerrit-server-name: 'gerrit.opnfv.org'
     jenkins-ssh-credential: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
-    jjb-version: '2.0.3'
     lftools-version: '<1.0.0'
 
     properties:
index 8055fdb..fe24ed5 100644 (file)
       - 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)
       - 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)
index e83a102..805673a 100644 (file)
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - label:
           name: SLAVE_LABEL
           default: 'daisy-baremetal'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: INSTALLER_IP
           default: '10.20.7.3'
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - label:
           name: SLAVE_LABEL
           default: 'daisy-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: INSTALLER_IP
           default: '10.20.11.2'
       - 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
           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
           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
           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
           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
           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
           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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
       - 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
           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
           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
           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/ipv6/ipv6-rtd-jobs.yaml b/jjb/ipv6/ipv6-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..7a677ce
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: ipv6-rtd
+    project: ipv6
+    project-name: ipv6
+
+    gerrit-skip-vote: true
+    project-pattern: 'ipv6'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-ipv6/47370/'
+    rtd-token: 'e7abb4e2c3f3f0dfc1a8feefe39b27f4a4f9b98a'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 2719c72..1766d61 100644 (file)
     fraser: &fraser
       stream: fraser
       branch: 'stable/{stream}'
-      disabled: false
+      disabled: true
       gs-pathname: '/{stream}'
     master: &master
       stream: master
       branch: '{stream}'
-      disabled: false
+      disabled: true
       gs-pathname: ''
     # -------------------------------
     # POD, INSTALLER, AND BRANCH MAPPING
@@ -97,7 +97,7 @@
           use-build-blocker: true
           blocking-jobs:
             - 'joid-(os|k8)-.*?-{pod}-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     wrappers:
       - build-name:
           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-rtd-jobs.yaml b/jjb/joid/joid-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..14d171c
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: joid-rtd
+    project: joid
+    project-name: joid
+
+    project-pattern: 'joid'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-joid/47371/'
+    rtd-token: '44a666161d99c9f53e7f69e56f1704694502015b'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 2d1c7c9..d7cdec6 100644 (file)
       - master:
           branch: '{stream}'
           gs-pathname: ''
-          disabled: false
+          disabled: true
       - fraser: &fraser
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
-          disabled: false
+          disabled: true
     #####################################
     # patch verification phases
     #####################################
@@ -57,7 +57,7 @@
           blocking-jobs:
             - 'joid-verify-master'
             - 'joid-verify-danube'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm-gerrit
           blocking-jobs:
             - 'joid-verify-deploy-.*'
             - 'joid-verify-test-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     scm:
       - git-scm-gerrit
diff --git a/jjb/kvmfornfv/kvmfornfv-rtd-jobs.yaml b/jjb/kvmfornfv/kvmfornfv-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..7d0b925
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: kvmfornfv-rtd
+    project: kvmfornfv
+    project-name: kvmfornfv
+
+    gerrit-skip-vote: true
+    project-pattern: 'kvmfornfv'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-kvmfornfv/47372/'
+    rtd-token: '32ae6f0ad54181a27fd38d99821a021f5087554a'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/moon/moon-rtd-jobs.yaml b/jjb/moon/moon-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..9d5f3c3
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: moon-rtd
+    project: moon
+    project-name: moon
+
+    gerrit-skip-vote: true
+    project-pattern: 'moon'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-moon/47373/'
+    rtd-token: 'f4dc698744431a8688a58746f84fc5d7bee694b2'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/multisite/multisite-rtd-jobs.yaml b/jjb/multisite/multisite-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..4e7f9e5
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: multisite-rtd
+    project: multisite
+    project-name: multisite
+
+    project-pattern: 'multisite'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-multisite/47374/'
+    rtd-token: '5d5b5c20e10df51eec38593b76d96cd22d4f1a96'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/netready/netready-rtd-jobs.yaml b/jjb/netready/netready-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..ce46b33
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: netready-rtd
+    project: netready
+    project-name: netready
+
+    gerrit-skip-vote: true
+    project-pattern: 'netready'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-netready/47375/'
+    rtd-token: '3defd5720db87d5fd6487702e2778053b9279c28'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/nfvbench/nfvbench-rtd-jobs.yaml b/jjb/nfvbench/nfvbench-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..56fda70
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: nfvbench-rtd
+    project: nfvbench
+    project-name: nfvbench
+
+    project-pattern: 'nfvbench'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-nfvbench/47376/'
+    rtd-token: '7d77b15615ffe7906f1f20e245c80dc0a0f97e47'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/octopus/octopus-rtd-jobs.yaml b/jjb/octopus/octopus-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..068ff3b
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: octopus-rtd
+    project: octopus
+    project-name: octopus
+
+    gerrit-skip-vote: true
+    project-pattern: 'octopus'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-octopus/47377/'
+    rtd-token: 'b3a1784dc55db91f38ea54cb181a0e4551221349'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/onosfw/onosfw-rtd-jobs.yaml b/jjb/onosfw/onosfw-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..a7a5e73
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: onosfw-rtd
+    project: onosfw
+    project-name: onosfw
+
+    gerrit-skip-vote: true
+    project-pattern: 'onosfw'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-onosfw/47378/'
+    rtd-token: '1ad406bcdf2d627e2e18fbcd6605f3456b05bb3d'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 7f48fcc..020171b 100644 (file)
           name: SCENARIO_METADATA_LOCATION
           default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER
           description: 'The location of the scenario metadata'
-      - 'ericsson-build4-defaults'
+      - label:
+          name: SLAVE_LABEL
+          default: 'xci-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
 
     wrappers:
       - credentials-binding:
@@ -57,7 +61,7 @@
     triggers:
       - jms-messaging:
           provider-name: openci.activemq
-          selector: JMSType = 'ArtifactPublishedEvent' and JMSOrigin = 'ODL'
+          selector: JMSType = 'ArtifactPublishedEvent' and JMSOrigin = '{origin}'
 
     builders:
       - shell: |
           name: CONFIDENCE_LEVEL
           default: "'opnfvdaily': 'SUCCESS'"
           description: 'The confidence level the published artifact gained'
-      - 'ericsson-build4-defaults'
+      - label:
+          name: SLAVE_LABEL
+          default: 'xci-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
 
     wrappers:
       - credentials-binding:
diff --git a/jjb/opera/opera-rtd-jobs.yaml b/jjb/opera/opera-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..b923c9f
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: opera-rtd
+    project: opera
+    project-name: opera
+
+    gerrit-skip-vote: true
+    project-pattern: 'opera'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-opera/47379/'
+    rtd-token: '4dc678d2d96adf6376b4f8f9aafdbbeb24dbb006'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index ece8569..b4b85f6 100644 (file)
@@ -8,12 +8,12 @@
     stream:
       - master:
           branch: 'master'
+      - gambia:
+          branch: 'stable/{stream}'
       - fraser:
           branch: 'stable/{stream}'
       - danube:
           branch: 'stable/{stream}'
-      - euphrates:
-          branch: 'stable/{stream}'
 
     project: 'opnfvdocs'
     rtdproject: 'opnfv'
@@ -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}'
           server: 'gerrit.opnfv.org'
           project: '**'
           branch: '{branch}'
-          files: 'docs/**/*.*'
+          files: 'docs/**'
 
     builders:
       - shell: |
           if [ "$GERRIT_PROJECT" != "opnfvdocs" ]; then
-              cd docs/submodules/$GERRIT_PROJECT
+              # Temporary hacky solution to handle local builds for projects
+              # that already moved away from submodules
+              if ! cd docs/submodules/$GERRIT_PROJECT 2 > /dev/null; then
+                  rm -rf .* * 2 > /dev/null
+                  git clone ${{GIT_BASE/opnfvdocs/$GERRIT_PROJECT}} .
+              fi
               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
index 5f08f69..a974573 100644 (file)
           branch: '{stream}'
           gs-pathname: ''
           disabled: false
-      - fraser: &fraser
+      - gambia:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
-      - euphrates:
+      - fraser:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
diff --git a/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml b/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..b1923f4
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: opnfvtsc-rtd
+    project: opnfvtsc
+    project-name: opnfvtsc
+
+    gerrit-skip-vote: true
+    project-pattern: 'opnfvtsc'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-opnfvtsc/47400/'
+    rtd-token: 'b8cbc26c46f1b1bd98adbf8c4488787a58d68fdd'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/orchestra/orchestra-rtd-jobs.yaml b/jjb/orchestra/orchestra-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..d1279eb
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: orchestra-rtd
+    project: orchestra
+    project-name: orchestra
+
+    gerrit-skip-vote: true
+    project-pattern: 'orchestra'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-orchestra/47380/'
+    rtd-token: 'c7f8cb2949a592bf6040c648552b0afa61f7da15'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 2ce4b6d..8fbd75b 100644 (file)
@@ -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 (file)
index 0000000..3169f33
--- /dev/null
@@ -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/ovno/ovno-rtd-jobs.yaml b/jjb/ovno/ovno-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..c5d661d
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: ovno-rtd
+    project: ovno
+    project-name: ovno
+
+    gerrit-skip-vote: true
+    project-pattern: 'ovno'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-ovno/47382/'
+    rtd-token: 'd393a62c6ee0b06979d0bb28f0b43e88208ce2c1'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/ovsnfv/ovsnfv-rtd-jobs.yaml b/jjb/ovsnfv/ovsnfv-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..ecbceca
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: ovsnfv-rtd
+    project: ovsnfv
+    project-name: ovsnfv
+
+    gerrit-skip-vote: true
+    project-pattern: 'ovsnfv'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-ovsnfv/47383/'
+    rtd-token: '1faa400aa3da4eca3c6018f8ed0e48a33fa66a00'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/parser/parser-rtd-jobs.yaml b/jjb/parser/parser-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..df880f2
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: parser-rtd
+    project: parser
+    project-name: parser
+
+    project-pattern: 'parser'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-parser/47384/'
+    rtd-token: '10223af1183fc8bdc191932045d82a0c1d7c874a'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/pharos/pharos-rtd-jobs.yaml b/jjb/pharos/pharos-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..60bcd8a
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: pharos-rtd
+    project: pharos
+    project-name: pharos
+
+    project-pattern: 'pharos'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-pharos/47385/'
+    rtd-token: '12cb789478d0c3577fb62c610232b3113d3a16ad'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/promise/promise-rtd-jobs.yaml b/jjb/promise/promise-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..427e741
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: promise-rtd
+    project: promise
+    project-name: promise
+
+    gerrit-skip-vote: true
+    project-pattern: 'promise'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-promise/47386/'
+    rtd-token: 'e689330ddc9401d83dd26efbe26a55a6ecd33a0d'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/qtip/qtip-rtd-jobs.yaml b/jjb/qtip/qtip-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..4af5997
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: qtip-rtd
+    project: qtip
+    project-name: qtip
+
+    gerrit-skip-vote: true
+    project-pattern: 'qtip'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-qtip/47387/'
+    rtd-token: 'eb407b024fbe12c416d012f48db866caf5fbab7c'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 2a54536..2eb2a20 100644 (file)
@@ -15,6 +15,9 @@
       - euphrates:
           branch: 'stable/{stream}'
           disabled: true
+      - gambia:
+          branch: 'stable/{stream}'
+          disabled: false
 
     arch_tag:
       - 'amd64':
           #!/bin/bash -ex
           case "{stream}" in
           "master")
-              tag="latest" ;;
+              sudo manifest-tool push from-args \
+                  --platforms linux/amd64,linux/arm64 \
+                  --template opnfv/compass-{image}:ARCH-latest \
+                  --target opnfv/compass-{image}:latest ;;
           *)
-              tag="{stream}" ;;
+              sudo manifest-tool push from-args \
+                  --platforms linux/amd64,linux/arm64 \
+                  --template opnfv/compass-{image}:ARCH-stable \
+                  --target opnfv/compass-{image}:{stream} ;;
           esac
-          sudo manifest-tool push from-args \
-              --platforms linux/amd64,linux/arm64 \
-              --template opnfv/compass-{image}:ARCH-$tag \
-              --target opnfv/compass-{image}:$tag
           exit $?
 
 # parameter macro
           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
     publishers:
       - email:
           recipients: >
-            chigang@huawei.com
-            huangxiangyui5@huawei.com
-            xueyifei@huawei.com
+            huangxiangyu5@huawei.com
             wutianwei1@huawei.com
 
 - publisher:
index 9066b41..68217cb 100644 (file)
       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
           <<: *storperf-arm-receivers
       - 'yardstick':
           project: 'yardstick'
-          <<: *fraser
+          <<: *gambia
           <<: *yardstick-arm-receivers
 
     # yamllint enable rule:key-duplicates
index 47c3ce4..fb186ae 100644 (file)
       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
           dockerfile: 'Dockerfile'
           <<: *master
           <<: *other-receivers
+      - 'clover-controller':
+          project: 'clover'
+          dockerdir: 'clover/controller'
+          dockerfile: 'docker/Dockerfile'
+          <<: *master
+          <<: *other-receivers
+      - 'clover-collector':
+          project: 'clover'
+          dockerdir: 'clover/collector'
+          dockerfile: 'docker/Dockerfile'
+          <<: *master
+          <<: *other-receivers
+      - 'clover-jmeter-master':
+          project: 'clover'
+          dockerdir: 'clover/tools/jmeter'
+          dockerfile: 'jmeter-master/Dockerfile'
+          <<: *master
+          <<: *other-receivers
+      - 'clover-jmeter-slave':
+          project: 'clover'
+          dockerdir: 'clover/tools/jmeter'
+          dockerfile: 'jmeter-slave/Dockerfile'
+          <<: *master
+          <<: *other-receivers
       - 'clover-sample-app':
           project: 'clover'
           dockerdir: 'samples/scenarios/sample_app'
           dockerfile: 'Dockerfile'
           <<: *master
           <<: *other-receivers
+      - 'clover-ns-modsecurity-crs':
+          project: 'clover'
+          dockerdir: 'samples/services/modsecurity/docker'
+          dockerfile: 'Dockerfile'
+          <<: *master
+          <<: *other-receivers
+      - 'clover-spark':
+          project: 'clover'
+          dockerdir: 'clover/spark/docker/clover-spark'
+          dockerfile: 'Dockerfile'
+          <<: *master
+          <<: *other-receivers
+      - 'clover-spark-submit':
+          project: 'clover'
+          dockerdir: 'clover/spark/docker/spark-submit'
+          dockerfile: 'Dockerfile'
+          <<: *master
+          <<: *other-receivers
+      - 'clover-clovisor':
+          project: 'clover'
+          dockerdir: 'clover/clovisor'
+          dockerfile: 'Dockerfile'
+          <<: *master
+          <<: *other-receivers
       - 'cperf':
           project: 'cperf'
           <<: *master
           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: '.'
           <<: *storperf-receivers
       - 'yardstick':
           project: 'yardstick'
-          <<: *fraser
-          <<: *other-receivers
+          <<: *gambia
+          <<: *yardstick-receivers
       # projects with jobs for fraser
       - 'bottlenecks':
           project: 'bottlenecks'
index 71013f4..05ffd51 100644 (file)
@@ -28,7 +28,6 @@
             - arm-build3
             - arm-build4
             - arm-build5
-            - arm-build6
             - ericsson-build3
             - ericsson-build4
             - lf-build2
@@ -62,7 +61,7 @@
           name: SLAVE_NAME
           description: Where to create the archive
           default-slaves:
-            - master
+            - lf-build2
           allowed-multiselect: false
           ignore-offline-nodes: true
 
@@ -83,6 +82,7 @@
           reply-to: >
             helpdesk@opnfv.org
           recipients: >
+            tbramwell@linuxfoundation.org
             swinslow@linuxfoundation.org
 
 
           default-slaves:
             - lf-build1
             - lf-build2
+            - lf-build3
             - ericsson-build3
             - ericsson-build4
           allowed-multiselect: true
           sudo apt-get -y install ansible
           fi
 
+
 - builder:
     name: run-ansible-build-server-playbook
     builders:
index 0d5635b..de585fd 100644 (file)
@@ -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
similarity index 93%
rename from jjb/releng/releng-ci-jobs.yaml
rename to jjb/releng/releng-rtd-jobs.yaml
index 17fb6e4..f7c9603 100644 (file)
@@ -3,6 +3,7 @@
     name: releng-builder-jobs
     project: 'releng'
     project-name: 'releng'
+    jjb-version: '2.5.0'
 
     build-timeout: 60
 
index 01fbe0c..3a9bead 100644 (file)
@@ -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/samplevnf/samplevnf-rtd-jobs.yaml b/jjb/samplevnf/samplevnf-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..9c09c82
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: samplevnf-rtd
+    project: samplevnf
+    project-name: samplevnf
+
+    gerrit-skip-vote: true
+    project-pattern: 'samplevnf'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-samplevnf/47390/'
+    rtd-token: '133bd533bd10428c549c17967469b25e847f42f4'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/sdnvpn/sdnvpn-rtd-jobs.yaml b/jjb/sdnvpn/sdnvpn-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..f5cc819
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: sdnvpn-rtd
+    project: sdnvpn
+    project-name: sdnvpn
+
+    project-pattern: 'sdnvpn'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-sdnvpn/47391/'
+    rtd-token: '1efdc48a9819be55a28137937674f1f744d02fe0'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index f858d1f..f8ceef7 100644 (file)
           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/sfc/sfc-rtd-jobs.yaml b/jjb/sfc/sfc-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..42b2004
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: sfc-rtd
+    project: sfc
+    project-name: sfc
+
+    project-pattern: 'sfc'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-sfc/47392/'
+    rtd-token: 'bc4419f4dded5c816071b042ac32c03ac6108700'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/snaps/snaps-rtd-jobs.yaml b/jjb/snaps/snaps-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..2159c1a
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: snaps-rtd
+    project: snaps
+    project-name: snaps
+
+    project-pattern: 'snaps'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-snaps/47393/'
+    rtd-token: '8fa2d732997534df1e91a87d6dc3ee60bb56508b'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml b/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..ff6814c
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: stor4nfv-rtd
+    project: stor4nfv
+    project-name: stor4nfv
+
+    gerrit-skip-vote: true
+    project-pattern: 'stor4nfv'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-stor4nfv/47394/'
+    rtd-token: '9c189b44cf08de75dc06253558cc86ed93982cbb'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index fe6aebb..65e1d32 100644 (file)
@@ -15,8 +15,8 @@
       branch: '{stream}'
       gs-pathname: ''
       docker-tag: 'latest'
-    fraser: &fraser
-      stream: fraser
+    gambia: &gambia
+      stream: gambia
       branch: 'stable/{stream}'
       gs-pathname: '/{stream}'
       disabled: false
@@ -69,7 +69,7 @@
       - baremetal:
           slave-label: apex-baremetal-master
           installer: apex
-          <<: *fraser
+          <<: *gambia
     ## armband CI PODs
     # - armband-baremetal:
     #     slave-label: armband-baremetal
diff --git a/jjb/storperf/storperf-rtd-jobs.yaml b/jjb/storperf/storperf-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..e8ee7b9
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: storperf-rtd
+    project: storperf
+    project-name: storperf
+
+    project-pattern: 'storperf'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-storperf/47395/'
+    rtd-token: '8a5c04ef90e5f32edc4e805a5018763cd25e9afc'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 4d6b174..2acedd7 100644 (file)
@@ -13,7 +13,7 @@
           gs-pathname: ''
           disabled: false
           docker-tag: 'latest'
-      - fraser: &fraser
+      - gambia: &gambia
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
index fe57847..993094c 100644 (file)
@@ -13,7 +13,7 @@
           gs-pathname: ''
           disabled: false
           docker-tag: 'latest'
-      - fraser: &fraser
+      - gambia: &gambia
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
           disabled: false
diff --git a/jjb/ves/ves-rtd-jobs.yaml b/jjb/ves/ves-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..67b611b
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: ves-rtd
+    project: ves
+    project-name: ves
+
+    gerrit-skip-vote: true
+    project-pattern: 'ves'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-ves/47396/'
+    rtd-token: 'ea5026fc44841e7721529b95a9ebc1b29950e2ce'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/vnf_forwarding_graph/vnf-forwarding-graph-rtd-jobs.yaml b/jjb/vnf_forwarding_graph/vnf-forwarding-graph-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..69895d1
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: vnf-forwarding-graph-rtd
+    project: vnf-forwarding-graph
+    project-name: vnf-forwarding-graph
+
+    gerrit-skip-vote: true
+    project-pattern: 'vnf-forwarding-graph'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-vnf-forwarding-graph/47397/'
+    rtd-token: '5c6fd3d0f49fb88ea4230d6666d94b59fef86e7f'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
diff --git a/jjb/vswitchperf/vswitchperf-rtd-jobs.yaml b/jjb/vswitchperf/vswitchperf-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..01b8cdf
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: vswitchperf-rtd
+    project: vswitchperf
+    project-name: vswitchperf
+
+    gerrit-skip-vote: true
+    project-pattern: 'vswitchperf'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-vswitchperf/47398/'
+    rtd-token: '47bbe5675e6cc5a6207fcc9b4db8dac03c27d9de'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index ba0742f..569b115 100644 (file)
@@ -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:
             - 'vswitchperf-verify-.*'
             - 'vswitchperf-merge-.*'
             - 'vswitchperf-daily-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - project-parameter:
index fbe2e20..4c61be1 100644 (file)
@@ -82,7 +82,7 @@
             - '^xci-functest.*'
             - '^bifrost-.*periodic.*'
             - '^osa-.*periodic.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
       - logrotate-default
 
     parameters:
       - label:
           name: SLAVE_LABEL
           default: '{slave-label}'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: CI_LOOP
           default: 'periodic'
index 4ca7835..f895cf6 100644 (file)
@@ -80,7 +80,7 @@
             - xci-verify-virtual
           option: category
 
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - string:
       - label:
           name: SLAVE_LABEL
           default: 'xci-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: CI_LOOP
           default: 'verify'
index 6c2d165..b731bf5 100644 (file)
@@ -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'
           blocking-jobs:
             - '.*-bifrost-verify-.*'
             - '.*-bifrost-periodic-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - project-parameter:
index fcd4465..18b20f2 100644 (file)
             - '^xci-functest.*'
             - '^bifrost-.*periodic.*'
             - '^osa-.*periodic.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
       - logrotate-default
 
     triggers:
       - label:
           name: SLAVE_LABEL
           default: '{slave-label}'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: XCI_DISTRO
           default: '{distro}'
             - '^xci-functest.*'
             - '^bifrost-.*periodic.*'
             - '^osa-.*periodic.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
       - throttle:
           enabled: true
           max-per-node: 1
       - label:
           name: SLAVE_LABEL
           default: '{slave-label}'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: FUNCTEST_VERSION
           default: 'hunter'
               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 "---------------------------------------------------------------------------------"
 
index a499ec9..c468be6 100644 (file)
       - label:
           name: SLAVE_LABEL
           default: 'xci-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: CI_LOOP
           default: 'merge'
             - '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
       - label:
           name: SLAVE_LABEL
           default: 'xci-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: CI_LOOP
           default: 'merge'
             - '.*-bifrost-periodic-.*'
             - 'osa-verify-.*'
             - 'osa-periodic-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - string:
diff --git a/jjb/xci/xci-rtd-jobs.yaml b/jjb/xci/xci-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..d21aad5
--- /dev/null
@@ -0,0 +1,13 @@
+---
+- project:
+    name: releng-xci-rtd
+    project: releng-xci
+    project-name: releng-xci
+
+    gerrit-skip-vote: true
+    project-pattern: 'releng-xci'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-releng-xci/47389/'
+    rtd-token: '7dbc774ea9a625296d2e973aff3e79af26b15d4d'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 992194c..610268c 100755 (executable)
@@ -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"
index 47ae4f8..9edf555 100644 (file)
@@ -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
       - label:
           name: SLAVE_LABEL
           default: 'xci-virtual'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
       - string:
           name: DISTRO
           default: '{distro}'
             - '.*-bifrost-periodic-.*'
             - 'osa-verify-.*'
             - 'osa-periodic-.*'
-          block-level: 'NODE'
+          blocking-level: 'NODE'
 
     parameters:
       - string:
index c5a3508..1c622ac 100644 (file)
       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
     # -------------------------------
           installer: apex
           auto-trigger-name: 'daily-trigger-disabled'
           <<: *master
+      - virtual:
+          slave-label: apex-virtual-master
+          installer: apex
+          auto-trigger-name: 'daily-trigger-disabled'
+          <<: *gambia
+      - baremetal:
+          slave-label: apex-baremetal-master
+          installer: apex
+          auto-trigger-name: 'daily-trigger-disabled'
+          <<: *gambia
       - virtual:
           slave-label: apex-virtual-fraser
           installer: apex
           slave-label: fuel-baremetal
           installer: fuel
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
       - virtual:
           slave-label: fuel-virtual
           installer: fuel
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
       # armband CI PODs
       - armband-baremetal:
           slave-label: armband-baremetal
           slave-label: armband-baremetal
           installer: fuel
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
       - armband-virtual:
           slave-label: armband-virtual
           installer: fuel
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
       # joid CI PODs
       - baremetal:
           slave-label: joid-baremetal
           installer: compass
           auto-trigger-name: 'daily-trigger-disabled'
           <<: *fraser
+      - baremetal:
+          slave-label: compass-baremetal
+          installer: compass
+          auto-trigger-name: 'daily-trigger-disabled'
+          <<: *gambia
+      - virtual:
+          slave-label: compass-virtual
+          installer: compass
+          auto-trigger-name: 'daily-trigger-disabled'
+          <<: *gambia
       # daisy CI PODs
       - baremetal:
           slave-label: daisy-baremetal
           slave-label: '{pod}'
           installer: fuel
           auto-trigger-name: 'daily-trigger-disabled'
-          <<: *fraser
+          <<: *gambia
       - zte-pod2:
           slave-label: '{pod}'
           installer: daisy
index f5fffb6..ace2e02 100644 (file)
           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/yardstick/yardstick-rtd-jobs.yaml b/jjb/yardstick/yardstick-rtd-jobs.yaml
new file mode 100644 (file)
index 0000000..88574f0
--- /dev/null
@@ -0,0 +1,12 @@
+---
+- project:
+    name: yardstick-rtd
+    project: yardstick
+    project-name: yardstick
+
+    project-pattern: 'yardstick'
+    rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-yardstick/47399/'
+    rtd-token: '6aa883824f3917c7db5ffa1fe9168817fb5feb68'
+
+    jobs:
+      - '{project-name}-rtd-jobs'
index 52d9b56..1e54321 100644 (file)
@@ -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)
 
index 1fd8d44..cd2fc36 100644 (file)
@@ -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,
index a217767..a57168d 100644 (file)
@@ -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
 # 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'
index 694df77..2b5aedb 100644 (file)
@@ -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()
index 141ecbd..193a10a 100644 (file)
@@ -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):
index 175a380..2272717 100644 (file)
@@ -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')
index 0718fa3..2c51daa 100644 (file)
@@ -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 (file)
index 0000000..fada4cb
--- /dev/null
@@ -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/auto.yaml b/releases/gambia/auto.yaml
new file mode 100644 (file)
index 0000000..f53a411
--- /dev/null
@@ -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 (file)
index 0000000..e5c9842
--- /dev/null
@@ -0,0 +1,9 @@
+---
+project: barometer
+project-type: feature
+release-model: stable
+
+branches:
+  - name: stable/gambia
+    location:
+      barometer: 9ac248a08de1f197bafbabbf43175b30ab19ec32
diff --git a/releases/gambia/bottlenecks.yaml b/releases/gambia/bottlenecks.yaml
new file mode 100644 (file)
index 0000000..d32d207
--- /dev/null
@@ -0,0 +1,9 @@
+---
+project: bottlenecks
+project-type: testing
+release-model: stable
+
+branches:
+  - name: stable/gambia
+    location:
+      bottlenecks: 399ec2f328f56c1f81c454ecedfb6b99eaf93c42
diff --git a/releases/gambia/clover.yaml b/releases/gambia/clover.yaml
new file mode 100644 (file)
index 0000000..ee0b786
--- /dev/null
@@ -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 (file)
index 0000000..e052388
--- /dev/null
@@ -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 (file)
index 0000000..3294fec
--- /dev/null
@@ -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
index f21aec0..722a35e 100644 (file)
@@ -3,6 +3,14 @@ project: functest
 project-type: testing
 release-model: stable
 
+releases:
+  - version: opnfv-7.0.0
+    location:
+      functest: b7f9b53a34cd8ffcc9df4d2f286e55e13adb4a58
+  - version: opnfv-7.0.0
+    location:
+      functest-kubernetes: fd5c939094244458aea31ead8c6519da95266c2a
+
 branches:
   - name: stable/gambia
     location:
diff --git a/releases/gambia/ipv6.yaml b/releases/gambia/ipv6.yaml
new file mode 100644 (file)
index 0000000..a566e54
--- /dev/null
@@ -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/opnfvdocs.yaml b/releases/gambia/opnfvdocs.yaml
new file mode 100644 (file)
index 0000000..b9cd04f
--- /dev/null
@@ -0,0 +1,9 @@
+---
+project: opnfvdocs
+project-type: infra
+release-model: stable
+
+branches:
+  - name: stable/gambia
+    location:
+      opnfvdocs: c89a5b35e81cf085bba892b230ca4516a92ffd57
diff --git a/releases/gambia/ovn4nfv.yaml b/releases/gambia/ovn4nfv.yaml
new file mode 100644 (file)
index 0000000..b5c8ad3
--- /dev/null
@@ -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 (file)
index 0000000..1727730
--- /dev/null
@@ -0,0 +1,9 @@
+---
+project: samplevnf
+project-type: feature
+release-model: stable
+
+branches:
+  - name: stable/gambia
+    location:
+      samplevnf: 4d59d3530d1c41734f15423142e64eb9c929c717
diff --git a/releases/gambia/sdnvpn.yaml b/releases/gambia/sdnvpn.yaml
new file mode 100644 (file)
index 0000000..c3ee8ca
--- /dev/null
@@ -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 (file)
index 0000000..14152d3
--- /dev/null
@@ -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 (file)
index 0000000..65c327f
--- /dev/null
@@ -0,0 +1,9 @@
+---
+project: stor4nfv
+project-type: feature
+release-model: stable
+
+branches:
+  - name: stable/gambia
+    location:
+      stor4nfv: cefd1d0854ee948acc7147834146914983a11556
diff --git a/releases/gambia/storperf.yaml b/releases/gambia/storperf.yaml
new file mode 100644 (file)
index 0000000..088f738
--- /dev/null
@@ -0,0 +1,9 @@
+---
+project: storperf
+project-type: testing
+release-model: stable
+
+branches:
+  - name: stable/gambia
+    location:
+      storperf: 4aba838a07f5cd7dbd6d606c34f688e647a5d890
index 5fcc5c9..064ae05 100644 (file)
@@ -3,6 +3,14 @@ project: functest
 project-type: testing
 release-model: stable
 
+releases:
+  - version: opnfv-8.0.0
+    location:
+      functest: a3355e22585c66823c430d6adcdef8dddacb33a1
+  - version: opnfv-8.0.0
+    location:
+      functest-kubernetes: ec2bf0e8bd1b4d3b2c4e2894820d2cbb454e36e7
+
 branches:
   - name: stable/hunter
     location:
diff --git a/tox.ini b/tox.ini
index d2f4168..0cc9e23 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -15,7 +15,7 @@ setenv=
 
 [testenv:jjb]
 deps =
-  jenkins-job-builder==2.0.3
+  jenkins-job-builder==2.5.0
 commands=
   jenkins-jobs test -o job_output -r {posargs:"jjb/"}
 
index c9f244b..1df8a04 100644 (file)
@@ -39,3 +39,8 @@
       when: ansible_distribution == "CentOS"
     - include: vars/docker-compose-Ubuntu.yml
       when: ansible_distribution == "Ubuntu"
+    - name: Install manifest-tool
+      get_url:
+        url: '{{ manifest_tool_url }}/{{ manifest_tool_version }}/manifest-tool-linux-{{ facter_architecture }}'
+        dest: '{{ manifest_tool_bin_dir }}/manifest-tool'
+        mode: '755'
index f502558..bd77a4d 100644 (file)
     - xmlstarlet
     - facter
     - jq
+    - python-tox
+    - collectd-dev
+    - python3
+    - python3-dev
+    - libdpdk-dev
+    - dpdk-dev
+    - fakeroot
+    - devscripts
+    - debhelper
+    - dpkg-dev
+    - po-debconf
+    - dh-systemd
+    - dh-strip-nondeterminism
+    - autotools-dev
+    - libltdl-dev
+    - iptables-dev
+    - javahelper
+    - libatasmart-dev
+    - libcap-dev
+    - libcurl4-gnutls-dev
+    - libdbi0-dev
+    - libesmtp-dev
+    - libganglia1-dev
+    - libgcrypt11-dev
+    - libgps-dev
+    - libhiredis-dev
+    - libi2c-dev
+    - libldap2-dev
+    - liblua5.3-dev
+    - liblvm2-dev
+    - libmemcached-dev
+    - libmodbus-dev
+    - libmnl-dev
+    - libmosquitto-dev
+    - libmysqlclient-dev
+    - libnotify-dev
+    - libopenipmi-dev
+    - liboping-dev
+    - libow-dev
+    - libpcap0.8-dev
+    - libpcap-dev
+    - libperl-dev
+    - libpq-dev
+    - libprotobuf-c-dev
+    - libriemann-client-dev
+    - librdkafka-dev
+    - librabbitmq-dev
+    - librrd-dev
+    - libsensors4-dev
+    - libsigrok-dev
+    - libsnmp-dev
+    - libsnmp9-dev
+    - snmp
+    - snmp-mibs-downloader
+    - snmpd
+    - perl
+    - libtokyocabinet-dev
+    - libtokyotyrant-dev
+    - libudev-dev
+    - libupsclient-dev
+    - libvarnishapi-dev
+    - libvirt-dev
+    - libvirt-daemon
+    - libxen-dev
+    - libyajl-dev
+    - linux-libc-dev
+    - default-jdk
+    - protobuf-c-compiler
+    - openvswitch-switch
+    - mcelog
 
 - name: Add Docker apt key.
   apt_key:
index 8d83380..ff37c95 100644 (file)
@@ -21,3 +21,7 @@ docker_yum_repo_url: https://download.docker.com/linux/centos/docker-ce.repo
 # yamllint enable rule:line-length
 docker_yum_repo_enable_edge: 0
 docker_yum_repo_enable_test: 0
+
+manifest_tool_version: 'v0.7.0'
+manifest_tool_url: 'https://github.com/estesp/manifest-tool/releases/download'
+manifest_tool_bin_dir: '/usr/local/bin'
index d5ab8b9..253cfa7 100644 (file)
@@ -29,7 +29,7 @@ node_list=(\
 'ericsson-virtual4' 'ericsson-virtual5' \
 'arm-pod5' 'arm-pod6' \
 'huawei-pod1' 'huawei-pod2' 'huawei-pod3' 'huawei-pod4' \
-'huawei-pod6' 'huawei-pod7' 'huawei-pod12' \
+'huawei-pod6' 'huawei-pod7' 'huawei-pod12' 'huawei-pod8' \
 'huawei-virtual1' 'huawei-virtual2' 'huawei-virtual3' 'huawei-virtual4' \
 'huawei-virtual5' 'huawei-virtual8' 'huawei-virtual9' \
 'zte-pod2' 'zte-pod3' 'zte-pod9' \