Merge "Integrate functest with ARM Architecture with alpine images"
authorMorgan Richomme <morgan.richomme@orange.com>
Tue, 19 Sep 2017 08:18:59 +0000 (08:18 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Tue, 19 Sep 2017 08:18:59 +0000 (08:18 +0000)
48 files changed:
jjb/apex/apex-deploy.sh
jjb/apex/apex-download-artifact.sh
jjb/apex/apex-project-jobs.yml
jjb/apex/apex-snapshot-deploy.sh
jjb/apex/apex.yml
jjb/apex/apex.yml.j2
jjb/apex/scenarios.yaml.hidden
jjb/barometer/barometer.yml
jjb/bottlenecks/bottlenecks-ci-jobs.yml
jjb/bottlenecks/bottlenecks-project-jobs.yml
jjb/bottlenecks/bottlenecks-run-suite.sh
jjb/calipso/calipso.yml
jjb/compass4nfv/compass-ci-jobs.yml
jjb/daisy4nfv/daisy-daily-jobs.yml
jjb/daisy4nfv/daisy-project-jobs.yml
jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
jjb/doctor/doctor.yml
jjb/fuel/fuel-daily-jobs.yml
jjb/functest/functest-alpine.sh
jjb/functest/functest-daily-jobs.yml
jjb/global/slave-params.yml
jjb/octopus/octopus.yml
jjb/opnfvdocs/opnfvdocs.yml
jjb/ovn4nfv/ovn4nfv-project-jobs.yml
jjb/parser/parser.yml
jjb/pharos/pharos.yml
jjb/promise/promise.yml
jjb/releng/opnfv-docker-arm.yml
jjb/releng/opnfv-docker.sh
jjb/stor4nfv/stor4nfv-project.yml [new file with mode: 0644]
jjb/xci/bifrost-verify-jobs.yml
jjb/xci/xci-verify-jobs.yml
jjb/yardstick/yardstick-cleanup.sh
jjb/yardstick/yardstick-daily-jobs.yml
jjb/yardstick/yardstick-project-jobs.yml
utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html
utils/test/testapi/opnfv_testapi/common/check.py
utils/test/testapi/opnfv_testapi/common/message.py
utils/test/testapi/opnfv_testapi/resources/handlers.py
utils/test/testapi/opnfv_testapi/resources/pod_models.py
utils/test/testapi/opnfv_testapi/tests/unit/common/test_config.py
utils/test/testapi/opnfv_testapi/tests/unit/executor.py
utils/test/testapi/opnfv_testapi/tests/unit/fake_pymongo.py
utils/test/testapi/opnfv_testapi/tests/unit/resources/test_base.py
utils/test/testapi/opnfv_testapi/tests/unit/resources/test_pod.py
utils/test/testapi/opnfv_testapi/tests/unit/resources/test_result.py
utils/test/testapi/opnfv_testapi/tests/unit/resources/test_token.py

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