Merge "armband: Enable docker build/push for yardstick"
authorAric Gardner <agardner@linuxfoundation.org>
Thu, 7 Sep 2017 15:31:42 +0000 (15:31 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Thu, 7 Sep 2017 15:31:42 +0000 (15:31 +0000)
24 files changed:
jjb/apex/apex.yml
jjb/apex/apex.yml.j2
jjb/armband/armband-ci-jobs.yml
jjb/armband/armband-verify-jobs.yml
jjb/daisy4nfv/daisy-project-jobs.yml
jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
jjb/fuel/fuel-daily-jobs.yml
jjb/fuel/fuel-deploy.sh
jjb/fuel/fuel-download-artifact.sh
jjb/fuel/fuel-project-jobs.yml
jjb/fuel/fuel-verify-jobs.yml
jjb/fuel/fuel-weekly-jobs.yml
jjb/functest/functest-alpine.sh
jjb/functest/functest-project-jobs.yml
jjb/global/installer-params.yml
jjb/global/slave-params.yml
jjb/xci/xci-verify-jobs.yml
utils/test/testapi/etc/config.ini
utils/test/testapi/opnfv_testapi/common/check.py
utils/test/testapi/opnfv_testapi/common/constants.py
utils/test/testapi/opnfv_testapi/router/url_mappings.py
utils/test/testapi/opnfv_testapi/ui/auth/sign.py
utils/test/testapi/opnfv_testapi/ui/root.py

index bdce67a..9ccf8e3 100644 (file)
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
+                disable-strict-forbidden-file-verification: 'true'
                 file-paths:
                   - compare-type: ANT
-                    pattern: 'ci/**'
-                  - compare-type: ANT
-                    pattern: 'build/**'
-                  - compare-type: ANT
-                    pattern: 'lib/**'
+                    pattern: '**'
+                forbidden-file-paths:
                   - compare-type: ANT
-                    pattern: 'config/**'
+                    pattern: 'apex/tests/**'
                   - compare-type: ANT
-                    pattern: 'apex/**'
+                    pattern: 'docs/**'
 
     properties:
         - logrotate-default
index 514dd49..c878fe6 100644 (file)
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
+                disable-strict-forbidden-file-verification: 'true'
                 file-paths:
                   - compare-type: ANT
-                    pattern: 'ci/**'
-                  - compare-type: ANT
-                    pattern: 'build/**'
-                  - compare-type: ANT
-                    pattern: 'lib/**'
+                    pattern: '**'
+                forbidden-file-paths:
                   - compare-type: ANT
-                    pattern: 'config/**'
+                    pattern: 'apex/tests/**'
                   - compare-type: ANT
-                    pattern: 'apex/**'
+                    pattern: 'docs/**'
 
     properties:
         - logrotate-default
index b27b053..faa5971 100644 (file)
@@ -50,7 +50,7 @@
         # HA scenarios
         - 'os-nosdn-nofeature-ha':
             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
-        - 'os-odl_l3-nofeature-ha':
+        - 'os-odl-nofeature-ha':
             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
 
         # NOHA scenarios
@@ -82,6 +82,7 @@
             use-build-blocker: true
             blocking-jobs:
                 - '{installer}-os-.*?-{pod}-daily-.*'
+                - 'armband-verify-.*'
             block-level: 'NODE'
 
     wrappers:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - '{slave-label}-defaults':
             installer: '{installer}'
         - string:
             name: DEPLOY_SCENARIO
             default: '{scenario}'
-        - armband-ci-parameter:
-            gs-pathname: '{gs-pathname}'
 
     builders:
         - trigger-builds:
         # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
         # 4.not used for release criteria or compliance,
         #   only to debug the dovetail tool bugs with arm pods
-        # 5.only run against scenario os-(nosdn|odl_l3)-(nofeature-bgpvpn)-ha
+        # 5.only run against scenario os-(nosdn|odl)-(nofeature-bgpvpn)-ha
         - conditional-step:
             condition-kind: regex-match
-            regex: os-(nosdn|odl|odl_l3)-(nofeature|bgpvpn)-ha
+            regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha
             label: '{scenario}'
             steps:
                 - trigger-builds:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - '{slave-label}-defaults':
             installer: '{installer}'
         - string:
             name: DEPLOY_SCENARIO
-            default: 'os-odl_l3-nofeature-ha'
-        - armband-ci-parameter:
-            gs-pathname: '{gs-pathname}'
+            default: 'os-odl-nofeature-ha'
 
     scm:
         - git-scm
             recipients: armband@enea.com
         - email-jenkins-admins-on-failure
 
-########################
-# parameter macros
-########################
-- parameter:
-    name: armband-ci-parameter
-    parameters:
-        - string:
-            name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
-            description: "URL to Google Storage."
-        - string:
-            name: SSH_KEY
-            default: "/tmp/mcp.rsa"
-            description: "Path to private SSH key to access environment nodes. For MCP deployments only."
-
 ########################
 # trigger macros
 ########################
 - trigger:
     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
     triggers:
-        - timed: ''
+        - timed: '0 1 * * *'
 - trigger:
     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
+    name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
     triggers:
-        - timed: ''
+        - timed: '0 16 * * *'
 #----------------------------------------------------------------------
 # Enea Armband CI Baremetal Triggers running against euphrates branch
 #----------------------------------------------------------------------
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
     triggers:
         - timed: ''
 #---------------------------------------------------------------
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
+    name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
     triggers:
         - timed: ''
 #--------------------------------------------------------------------
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
     triggers:
-        - timed: ''
\ No newline at end of file
+        - timed: ''
index 56f70d6..c43dc7f 100644 (file)
 #####################################
     phase:
         - 'basic':
-            slave-label: 'opnfv-build-enea'
+            slave-label: 'armband-virtual'
         - 'deploy-virtual':
-            slave-label: 'opnfv-build-enea'
+            slave-label: 'armband-virtual'
         - 'smoke-test':
-            slave-label: 'opnfv-build-enea'
+            slave-label: 'armband-virtual'
 #####################################
 # jobs
 #####################################
             enabled: true
             max-total: 4
             option: 'project'
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - 'fuel-os-.*?-virtual-daily-.*'
+            block-level: 'NODE'
 
     scm:
         - git-scm-gerrit
@@ -94,8 +99,9 @@
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - 'opnfv-build-enea-defaults'
-        - 'armband-verify-defaults':
+        - 'armband-virtual-defaults':
+            installer: '{installer}'
+        - '{installer}-defaults':
             gs-pathname: '{gs-pathname}'
 
     builders:
         - logrotate-default
         - throttle:
             enabled: true
-            max-total: 6
+            max-total: 2
+            max-per-node: 1
             option: 'project'
         - build-blocker:
             use-build-blocker: true
             project: '{project}'
             branch: '{branch}'
         - '{slave-label}-defaults'
-        - '{installer}-defaults'
-        - 'armband-verify-defaults':
+        - 'armband-virtual-defaults':
+            installer: '{installer}'
+        - '{installer}-defaults':
             gs-pathname: '{gs-pathname}'
 
     builders:
 - builder:
     name: 'armband-verify-deploy-virtual-macro'
     builders:
-        - shell: |
-            #!/bin/bash
-
-            echo "Not activated!"
+        - shell:
+            !include-raw: ../fuel/fuel-deploy.sh
 
 - builder:
     name: 'armband-verify-smoke-test-macro'
             #!/bin/bash
 
             echo "Not activated!"
-#####################################
-# parameter macros
-#####################################
-- parameter:
-    name: 'armband-verify-defaults'
-    parameters:
-        - string:
-            name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
-            description: "URL to Google Storage."
index fd0da79..09b0bc2 100644 (file)
@@ -54,6 +54,8 @@
             use-build-blocker: true
             blocking-jobs:
                 - '{installer}-daily-.*'
+                - 'daisy4nfv-merge-build-.*'
+                - 'daisy4nfv-verify-build-.*'
             block-level: 'NODE'
 
     scm:
index 561ffbe..f7a6c13 100644 (file)
             use-build-blocker: true
             blocking-jobs:
                 - '{alias}-merge-{phase}-.*'
+                - '{installer}-daily-.*'
             block-level: 'NODE'
 
     scm:
index dff0ff0..6f6ab0f 100644 (file)
@@ -50,7 +50,7 @@
         - build-blocker:
             use-build-blocker: true
             blocking-jobs:
-                - '{installer}-merge-build-.*'
+                - '{alias}-merge-build-.*'
             block-level: 'NODE'
 
     scm:
         - build-blocker:
             use-build-blocker: true
             blocking-jobs:
-                - '{installer}-merge-build-.*'
+                - '{alias}-merge-build-.*'
                 - '{alias}-verify-build-.*'
+                - '{installer}-daily-.*'
             block-level: 'NODE'
 
     scm:
index 488505e..c30cfed 100644 (file)
         # HA scenarios
         - 'os-nosdn-nofeature-ha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l2-nofeature-ha':
-            auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l3-nofeature-ha':
+        - 'os-odl-nofeature-ha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-onos-sfc-ha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-onos-nofeature-ha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l2-sfc-ha':
-            auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l2-bgpvpn-ha':
-            auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-nosdn-kvm-ha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-nosdn-ovs-ha':
         # NOHA scenarios
         - 'os-nosdn-nofeature-noha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l2-nofeature-noha':
-            auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l3-nofeature-noha':
+        - 'os-odl-nofeature-noha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-onos-sfc-noha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-onos-nofeature-noha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l2-sfc-noha':
-            auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
-        - 'os-odl_l2-bgpvpn-noha':
-            auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-nosdn-kvm-noha':
             auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
         - 'os-nosdn-ovs-noha':
             blocking-jobs:
                 - 'fuel-os-.*?-{pod}-daily-.*'
                 - 'fuel-os-.*?-{pod}-weekly-.*'
+                - 'fuel-verify-.*'
             block-level: 'NODE'
 
     wrappers:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - '{slave-label}-defaults':
             installer: '{installer}'
         - string:
             name: DEPLOY_SCENARIO
             default: '{scenario}'
-        - fuel-ci-parameter:
-            gs-pathname: '{gs-pathname}'
 
     builders:
         - description-setter:
         # 3.only debug testsuite here(refstack, ha, ipv6, bgpvpn)
         # 4.not used for release criteria or compliance,
         #   only to debug the dovetail tool bugs with bgpvpn and nosdn-nofeature
-        # 5.only run against scenario os-odl_l2-bgpvpn-ha(regex used here, can extend to more scenarios future)
-        # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl_l2-bgpvpn-ha, run against danube
+        # 5.only run against scenario os-odl-bgpvpn-ha(regex used here, can extend to more scenarios future)
+        # 6.ZTE pod1, os-nosdn-nofeature-ha and os-odl-bgpvpn-ha, run against danube
         - conditional-step:
             condition-kind: regex-match
-            regex: os-(nosdn-nofeature|odl_l2-bgpvpn)-ha
+            regex: os-(nosdn-nofeature|odl-bgpvpn)-ha
             label: '{scenario}'
             steps:
                 - trigger-builds:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - '{slave-label}-defaults':
             installer: '{installer}'
         - string:
             name: DEPLOY_SCENARIO
-            default: 'os-odl_l2-nofeature-ha'
-        - fuel-ci-parameter:
-            gs-pathname: '{gs-pathname}'
+            default: 'os-odl-nofeature-ha'
         - string:
             name: DEPLOY_TIMEOUT
             default: '150'
         - email-jenkins-admins-on-failure
 
 ########################
-# parameter macros
-########################
-- parameter:
-    name: fuel-ci-parameter
-    parameters:
-        - string:
-            name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
-            description: "URL to Google Storage."
-        - string:
-            name: SSH_KEY
-            default: "/tmp/mcp.rsa"
-            description: "Path to private SSH key to access environment nodes. For MCP deployments only."
-########################
 # trigger macros
 ########################
 #-----------------------------------------------
     triggers:
         - timed: '5 20 * * *'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-baremetal-daily-master-trigger'
-    triggers:
-        - timed: '' # '5 23 * * *'
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-baremetal-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-ha-baremetal-daily-master-trigger'
     triggers:
         - timed: '5 2 * * *'
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-baremetal-daily-master-trigger'
     triggers:
         - timed: '' # '5 8 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-baremetal-daily-master-trigger'
-    triggers:
-        - timed: '' # '5 11 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-baremetal-daily-master-trigger'
-    triggers:
-        - timed: '' # '5 14 * * *'
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-master-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-baremetal-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-baremetal-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-noha-baremetal-daily-master-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-baremetal-daily-master-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-baremetal-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-baremetal-daily-master-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-master-trigger'
     triggers:
     triggers:
         - timed: '' # '0 20 * * *'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-baremetal-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '0 23 * * *'
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-baremetal-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
     triggers:
         - timed: '' # '0 2 * * *'
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-baremetal-daily-euphrates-trigger'
     triggers:
         - timed: '' # '0 8 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-baremetal-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '0 11 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-baremetal-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '0 14 * * *'
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-baremetal-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-baremetal-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-baremetal-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-noha-baremetal-daily-euphrates-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-baremetal-daily-euphrates-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-baremetal-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-baremetal-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-virtual-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-virtual-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-ha-virtual-daily-master-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-virtual-daily-master-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-virtual-daily-master-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-virtual-daily-master-trigger'
     triggers:
     triggers:
         - timed: '5 13 * * *'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-virtual-daily-master-trigger'
-    triggers:
-        - timed: '35 15 * * *'
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-virtual-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-noha-virtual-daily-master-trigger'
     triggers:
         - timed: '5 18 * * *'
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-virtual-daily-master-trigger'
     triggers:
         - timed: '' # '5 23 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-virtual-daily-master-trigger'
-    triggers:
-        - timed: '' # '35 1 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-virtual-daily-master-trigger'
-    triggers:
-        - timed: '' # '5 4 * * *'
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-virtual-daily-master-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-virtual-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-virtual-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-ha-virtual-daily-euphrates-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-virtual-daily-euphrates-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-virtual-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-virtual-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: '' # '0 13 * * *'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-virtual-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '30 15 * * *'
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-virtual-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-noha-virtual-daily-euphrates-trigger'
     triggers:
         - timed: '' # '0 18 * * *'
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-virtual-daily-euphrates-trigger'
     triggers:
         - timed: '' # '0 23 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-virtual-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '30 1 * * *'
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-virtual-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '0 4 * * *'
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-virtual-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-master-trigger'
-    triggers:
-        - timed: '0 10 * * *'
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-master-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-master-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-master-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-master-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-master-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-master-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-master-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-master-trigger'
     triggers:
     triggers:
         - timed: '0 10 * * *'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-zte-pod3-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-zte-pod3-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-master-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-zte-pod3-daily-master-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod3-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-zte-pod3-daily-master-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-zte-pod3-daily-master-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-zte-pod3-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-zte-pod3-daily-master-trigger'
+    name: 'fuel-os-odl-nofeature-noha-zte-pod3-daily-master-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-zte-pod3-daily-master-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-zte-pod3-daily-master-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod3-daily-master-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-zte-pod3-daily-master-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-euphrates-trigger'
-    triggers:
-        - timed: '' # '0 2 * * *'
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-euphrates-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-euphrates-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-euphrates-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-euphrates-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: '' # '0 18 * * *'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-zte-pod3-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-zte-pod3-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-ha-zte-pod3-daily-euphrates-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-zte-pod3-daily-euphrates-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod3-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-zte-pod3-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-zte-pod3-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-zte-pod3-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-zte-pod3-daily-euphrates-trigger'
+    name: 'fuel-os-odl-nofeature-noha-zte-pod3-daily-euphrates-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-zte-pod3-daily-euphrates-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-zte-pod3-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod3-daily-euphrates-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-zte-pod3-daily-euphrates-trigger'
     triggers:
     triggers:
         - timed: '0 2 * * 6'
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-ha-zte-pod1-daily-danube-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-ha-zte-pod1-daily-danube-trigger'
+    name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-danube-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-ha-zte-pod1-daily-danube-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-ha-zte-pod1-daily-danube-trigger'
-    triggers:
-        - timed: '0 2 * * 1,3,5'
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-ha-zte-pod1-daily-danube-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-ha-zte-pod1-daily-danube-trigger'
     triggers:
     triggers:
         - timed: ''
 - trigger:
-    name: 'fuel-os-odl_l2-nofeature-noha-zte-pod1-daily-danube-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l3-nofeature-noha-zte-pod1-daily-danube-trigger'
+    name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-danube-trigger'
     triggers:
         - timed: ''
 - trigger:
     name: 'fuel-os-onos-nofeature-noha-zte-pod1-daily-danube-trigger'
     triggers:
         - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-sfc-noha-zte-pod1-daily-danube-trigger'
-    triggers:
-        - timed: ''
-- trigger:
-    name: 'fuel-os-odl_l2-bgpvpn-noha-zte-pod1-daily-danube-trigger'
-    triggers:
-        - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-danube-trigger'
     triggers:
index ddaebc9..18b2fd7 100755 (executable)
@@ -12,7 +12,7 @@ set -o pipefail
 
 export TERM="vt220"
 
-if [[ "$BRANCH" != 'master' ]]; then
+if [[ "$BRANCH" =~ 'danube' ]]; then
     # source the file so we get OPNFV vars
     source latest.properties
 
@@ -21,11 +21,11 @@ if [[ "$BRANCH" != 'master' ]]; then
 fi
 
 # shellcheck disable=SC2153
-if [[ "${JOB_NAME}" =~ "merge" ]]; then
-    # set simplest scenario for virtual deploys to run for merges
+if [[ "${JOB_NAME}" =~ 'verify' ]]; then
+    # set simplest scenario for virtual deploys to run for verify
     DEPLOY_SCENARIO="os-nosdn-nofeature-ha"
-elif [[ "${BRANCH}" != 'master' ]]; then
-    # for none-merge deployments
+elif [[ "${BRANCH}" =~ 'danube' ]]; then
+    # for Danube deployments (no artifact for current master or newer branches)
     # checkout the commit that was used for building the downloaded artifact
     # to make sure the ISO and deployment mechanism uses same versions
     echo "Checking out ${OPNFV_GIT_SHA1}"
index fa0c88b..02ca103 100755 (executable)
@@ -16,15 +16,9 @@ set -o pipefail
 # use proxy url to replace the normal URL, or googleusercontent.com will be blocked randomly
 [[ "$NODE_NAME" =~ (zte) ]] && GS_URL=${GS_BASE_PROXY%%/*}/$GS_URL
 
-if [[ "$JOB_NAME" =~ "merge" ]]; then
-    echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties"
-    # get the properties file for the Fuel ISO built for a merged change
-    curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties
-else
-    # get the latest.properties file in order to get info regarding latest artifact
-    echo "Downloading http://$GS_URL/latest.properties"
-    curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
-fi
+# get the latest.properties file in order to get info regarding latest artifact
+echo "Downloading http://$GS_URL/latest.properties"
+curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
 
 # check if we got the file
 [[ -f $WORKSPACE/latest.properties ]] || exit 1
@@ -36,21 +30,18 @@ source $WORKSPACE/latest.properties
 OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/}
 echo "Using $OPNFV_ARTIFACT for deployment"
 
-# using ISOs for verify & merge jobs from local storage will be enabled later
-if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
-    # check if we already have the ISO to avoid redownload
-    ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
-    if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
-        echo "ISO exists locally. Skipping the download and using the file from ISO store"
-        ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
-        echo "--------------------------------------------------------"
-        echo
-        ls -al $WORKSPACE/opnfv.iso
-        echo
-        echo "--------------------------------------------------------"
-        echo "Done!"
-        exit 0
-    fi
+# check if we already have the ISO to avoid redownload
+ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}"
+if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then
+    echo "ISO exists locally. Skipping the download and using the file from ISO store"
+    ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
+    echo "--------------------------------------------------------"
+    echo
+    ls -al $WORKSPACE/opnfv.iso
+    echo
+    echo "--------------------------------------------------------"
+    echo "Done!"
+    exit 0
 fi
 
 [[ "$NODE_NAME" =~ (zte) ]] && OPNFV_ARTIFACT_URL=${GS_BASE_PROXY%%/*}/$OPNFV_ARTIFACT_URL
index e850a0a..cfcbf36 100644 (file)
             disabled: true
 
     jobs:
-        - 'fuel-merge-deploy-virtual-{stream}'
         - 'fuel-deploy-generic-daily-{stream}'
 
 ########################
 # job templates
 ########################
-- job-template:
-    name: 'fuel-merge-deploy-virtual-{stream}'
-
-    disabled: true
-
-    concurrent: true
-
-    properties:
-        - logrotate-default
-        - throttle:
-            enabled: true
-            max-total: 2
-            max-per-node: 1
-            option: 'project'
-        - build-blocker:
-            use-build-blocker: true
-            blocking-jobs:
-                - 'fuel-os-.*?-virtual-daily-.*'
-                - 'fuel-merge-deploy-virtual-.*'
-            block-level: 'NODE'
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-            branch: '{branch}'
-        - 'fuel-virtual-defaults':
-            installer: '{installer}'
-        - '{installer}-defaults'
-        - fuel-project-parameter:
-            gs-pathname: '{gs-pathname}'
-    scm:
-        - git-scm
-
-    wrappers:
-        - ssh-agent-wrapper
-
-    triggers:
-        - gerrit:
-            server-name: 'gerrit.opnfv.org'
-            trigger-on:
-                - change-merged-event
-                - comment-added-contains-event:
-                    comment-contains-value: 'remerge'
-            projects:
-              - project-compare-type: 'ANT'
-                project-pattern: '{project}'
-                branches:
-                    - branch-compare-type: 'ANT'
-                      branch-pattern: '**/{branch}'
-                file-paths:
-                  - compare-type: ANT
-                    pattern: 'ci/**'
-                  - compare-type: ANT
-                    pattern: 'mcp/**'
-                disable-strict-forbidden-file-verification: 'true'
-                forbidden-file-paths:
-                  - compare-type: ANT
-                    pattern: 'docs/**'
-            dependency-jobs: 'fuel-merge-build-{stream}'
-
-    builders:
-        - shell:
-            !include-raw-escape: ./fuel-deploy.sh
-        - shell:
-            !include-raw-escape: ./fuel-workspace-cleanup.sh
-
-    publishers:
-        - email:
-            recipients: fzhadaev@mirantis.com
-        - email-jenkins-admins-on-failure
-
 - job-template:
     name: 'fuel-deploy-generic-daily-{stream}'
 
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - string:
             name: GIT_BASE
             default: https://gerrit.opnfv.org/gerrit/$PROJECT
             description: 'Git URL to use on this Jenkins Slave'
         - string:
             name: DEPLOY_SCENARIO
-            default: 'os-odl_l2-nofeature-ha'
+            default: 'os-odl-nofeature-ha'
         - node:
             name: SLAVE_NAME
             description: 'Slave name on Jenkins'
                 - ericsson-pod1
             default-slaves:
                 - ericsson-pod2
-        - fuel-project-parameter:
-            gs-pathname: '{gs-pathname}'
 
     scm:
         - git-scm
     builders:
         - shell:
             !include-raw-escape: ./fuel-deploy.sh
-
-########################
-# parameter macros
-########################
-- parameter:
-    name: fuel-project-parameter
-    parameters:
-        - string:
-            name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
-            description: "URL to Google Storage."
index 899be9a..45197fc 100644 (file)
 #####################################
     phase:
         - 'basic':
-            slave-label: 'opnfv-build-ubuntu'
+            slave-label: 'fuel-virtual'
         - 'deploy-virtual':
-            slave-label: 'opnfv-build-ubuntu'
+            slave-label: 'fuel-virtual'
         - 'smoke-test':
-            slave-label: 'opnfv-build-ubuntu'
+            slave-label: 'fuel-virtual'
 #####################################
 # jobs
 #####################################
             enabled: true
             max-total: 4
             option: 'project'
+        - build-blocker:
+            use-build-blocker: true
+            blocking-jobs:
+                - 'fuel-os-.*?-virtual-daily-.*'
+            block-level: 'NODE'
 
     scm:
         - git-scm-gerrit
@@ -94,8 +99,9 @@
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - 'opnfv-build-ubuntu-defaults'
-        - 'fuel-verify-defaults':
+        - 'fuel-virtual-defaults':
+            installer: '{installer}'
+        - '{installer}-defaults':
             gs-pathname: '{gs-pathname}'
 
     builders:
         - logrotate-default
         - throttle:
             enabled: true
-            max-total: 6
+            max-total: 2
+            max-per-node: 1
             option: 'project'
         - build-blocker:
             use-build-blocker: true
             project: '{project}'
             branch: '{branch}'
         - '{slave-label}-defaults'
-        - '{installer}-defaults'
-        - 'fuel-verify-defaults':
+        - 'fuel-virtual-defaults':
+            installer: '{installer}'
+        - '{installer}-defaults':
             gs-pathname: '{gs-pathname}'
 
     builders:
 - builder:
     name: 'fuel-verify-deploy-virtual-macro'
     builders:
-        - shell: |
-            #!/bin/bash
-
-            echo "Not activated!"
+        - shell:
+            !include-raw: ./fuel-deploy.sh
 
 - builder:
     name: 'fuel-verify-smoke-test-macro'
             #!/bin/bash
 
             echo "Not activated!"
-#####################################
-# parameter macros
-#####################################
-- parameter:
-    name: 'fuel-verify-defaults'
-    parameters:
-        - string:
-            name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
-            description: "URL to Google Storage."
index c681c62..e1563ea 100644 (file)
@@ -72,6 +72,7 @@
             blocking-jobs:
                 - 'fuel-os-.*?-{pod}-daily-.*'
                 - 'fuel-os-.*?-{pod}-weekly-.*'
+                - 'fuel-verify-.*'
             block-level: 'NODE'
 
     wrappers:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - '{slave-label}-defaults':
             installer: '{installer}'
         - string:
             name: DEPLOY_SCENARIO
             default: '{scenario}'
-        - fuel-weekly-parameter:
-            gs-pathname: '{gs-pathname}'
 
     builders:
         - description-setter:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - '{installer}-defaults'
+        - '{installer}-defaults':
+            gs-pathname: '{gs-pathname}'
         - '{slave-label}-defaults':
             installer: '{installer}'
         - string:
             name: DEPLOY_SCENARIO
-            default: 'os-odl_l2-nofeature-ha'
-        - fuel-weekly-parameter:
-            gs-pathname: '{gs-pathname}'
+            default: 'os-odl-nofeature-ha'
         - string:
             name: DEPLOY_TIMEOUT
             default: '150'
         - email-jenkins-admins-on-failure
 
 ########################
-# parameter macros
-########################
-- parameter:
-    name: fuel-weekly-parameter
-    parameters:
-        - string:
-            name: GS_URL
-            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
-            description: "URL to Google Storage."
-########################
 # trigger macros
 ########################
 #-----------------------------------------------
index f0e08e1..cee3026 100644 (file)
@@ -70,7 +70,7 @@ set +e
 
 tiers=(healthcheck smoke features vnf)
 for tier in ${tiers[@]}; do
-    FUNCTEST_IMAGE=ollivier/functest-${tier}
+    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}"
index 02da04f..c25e4ab 100644 (file)
 
     disabled: '{obj:disabled}'
 
+    project-type: 'multijob'
+
     parameters:
         - project-parameter:
             project: '{project}'
             branch: '{branch}'
-        - 'opnfv-build-defaults'
+        - 'opnfv-build-ubuntu-defaults'
 
     scm:
         - git-scm-gerrit
 
     triggers:
-        - 'functest-verify-triggers-macro'
+        - 'functest-verify-triggers-macro':
+            project: '{project}'
+            branch: '{branch}'
 
     builders:
         - shell: |
 
     disabled: '{obj:disabled}'
 
+    wrappers:
+        - ssh-agent-wrapper
+        - build-timeout:
+            timeout: 30
+
     parameters:
         - project-parameter:
             project: '{project}'
         - git-scm
 
     triggers:
-        - 'functest-docs-upload-triggers-macro'
+        - 'functest-docs-upload-triggers-macro':
+            project: '{project}'
+            branch: '{branch}'
 
     builders:
         - functest-upload-doc-artifact
index 10afd6f..ecef6d3 100644 (file)
@@ -44,7 +44,7 @@
           description: 'IP of the salt master (for mcp deployments)'
       - string:
           name: SSH_KEY
-          default: '/tmp/mcp.rsa'
+          default: "$HOME/opnfv/mcp.rsa"
           description: 'Path to private SSH key to access environment nodes'
       - string:
           name: INSTALLER_TYPE
           name: BRIDGE
           default: 'pxebr'
           description: 'Bridge(s) to be used by salt master'
+      - string:
+          name: GS_URL
+          default: '$GS_BASE{gs-pathname}'
+          description: "URL to Google Storage."
 
 - parameter:
     name: 'joid-defaults'
index 75c4323..a4ee4d9 100644 (file)
 #####################################################
 # Parameters for build slaves
 #####################################################
-- parameter:
-    name: 'opnfv-build-enea-defaults'
-    parameters:
-      - label:
-          name: SLAVE_LABEL
-          default: 'opnfv-build-enea'
-      - string:
-          name: GIT_BASE
-          default: https://gerrit.opnfv.org/gerrit/$PROJECT
-          description: 'Git URL to use on this Jenkins Slave'
-      - string:
-          name: BUILD_DIRECTORY
-          default: $WORKSPACE/build_output
-          description: "Directory where the build artifact will be located upon the completion of the build."
-
 - parameter:
     name: 'opnfv-build-centos-defaults'
     parameters:
index 39bdb8f..61d2558 100644 (file)
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
-                file-paths:
-                  - compare-type: ANT
-                    pattern: 'xci/**'
-                disable-strict-forbidden-file-verification: 'true'
+                disable-strict-forbidden-file-verification: 'false'
                 forbidden-file-paths:
                   - compare-type: ANT
                     pattern: 'bifrost/**'
                   - compare-type: ANT
-                    pattern: 'README.rst'
+                    pattern: 'prototypes/**'
+                  - compare-type: ANT
+                    pattern: 'upstream/**'
+                  - compare-type: ANT
+                    pattern: '**/README.rst'
             readable-message: true
 
     parameters:
index a7d8da6..8d0bde2 100644 (file)
@@ -27,3 +27,5 @@ static_path = /usr/local/share/opnfv_testapi
 [lfid]
 # Linux Foundation cas URL
 cas_url = https://identity.linuxfoundation.org/cas/
+#service url used to authenticate to cas
+signin_return = api/v1/auth/signin_return
index 009d3d4..24ba876 100644 (file)
@@ -8,49 +8,14 @@
 ##############################################################################
 import functools
 
-import cas
 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.common.config import CONF
 from opnfv_testapi.db import api as dbapi
 
 
-def login(method):
-    @web.asynchronous
-    @gen.coroutine
-    @functools.wraps(method)
-    def wrapper(self, *args, **kwargs):
-        ticket = self.get_query_argument('ticket', default=None)
-        if ticket:
-            client = cas.CASClient(version='2',
-                                   server_url=CONF.lfid_cas_url,
-                                   service_url=CONF.ui_url)
-            (user, attrs, _) = client.verify_ticket(ticket=ticket)
-            print 'login user: {}'.format(user)
-            login_user = {
-                'user': user,
-                'email': attrs.get('mail'),
-                'fullname': attrs.get('field_lf_full_name'),
-                'groups': constants.TESTAPI_USERS + attrs.get('group', [])
-            }
-            q_user = {'user': user}
-            db_user = yield dbapi.db_find_one(constants.USER_TABLE, q_user)
-            if not db_user:
-                dbapi.db_save(constants.USER_TABLE, login_user)
-            else:
-                dbapi.db_update(constants.USER_TABLE, q_user, login_user)
-
-            self.clear_cookie(constants.TESTAPI_ID)
-            self.set_secure_cookie(constants.TESTAPI_ID, user)
-        ret = yield gen.coroutine(method)(self, *args, **kwargs)
-        raise gen.Return(ret)
-    return wrapper
-
-
 def authenticate(method):
     @web.asynchronous
     @gen.coroutine
index b37ebb3..70c9223 100644 (file)
@@ -2,4 +2,3 @@ TESTAPI_ID = 'testapi_id'
 CSRF_TOKEN = 'csrf_token'
 ROLE = 'role'
 TESTAPI_USERS = ['opnfv-testapi-users']
-USER_TABLE = 'users'
index c038e88..ce0a3ee 100644 (file)
@@ -76,6 +76,7 @@ mappings = [
 
     (r'/', root.RootHandler),
     (r'/api/v1/auth/signin', sign.SigninHandler),
+    (r'/{}'.format(CONF.lfid_signin_return), sign.SigninReturnHandler),
     (r'/api/v1/auth/signout', sign.SignoutHandler),
     (r'/api/v1/profile', user.UserHandler),
 
index 01cd0f7..318473e 100644 (file)
@@ -1,22 +1,59 @@
 from cas import CASClient
+from tornado import gen
+from tornado import web
 
 from opnfv_testapi.common import constants
 from opnfv_testapi.common.config import CONF
+from opnfv_testapi.db import api as dbapi
 from opnfv_testapi.resources import handlers
 
 
-class SigninHandler(handlers.GenericApiHandler):
+class SignBaseHandler(handlers.GenericApiHandler):
+    def __init__(self, application, request, **kwargs):
+        super(SignBaseHandler, self).__init__(application, request, **kwargs)
+        self.table = 'users'
+        self.cas_client = CASClient(version='2',
+                                    server_url=CONF.lfid_cas_url,
+                                    service_url='{}/{}'.format(
+                                        CONF.ui_url,
+                                        CONF.lfid_signin_return))
+
+
+class SigninHandler(SignBaseHandler):
+    def get(self):
+        self.redirect(url=(self.cas_client.get_login_url()))
+
+
+class SigninReturnHandler(SignBaseHandler):
+
+    @web.asynchronous
+    @gen.coroutine
     def get(self):
-        client = CASClient(version='2',
-                           server_url=CONF.lfid_cas_url,
-                           service_url=CONF.ui_url)
-        self.redirect(url=(client.get_login_url()))
+        ticket = self.get_query_argument('ticket', default=None)
+        if ticket:
+            (user, attrs, _) = self.cas_client.verify_ticket(ticket=ticket)
+            login_user = {
+                'user': user,
+                'email': attrs.get('mail'),
+                'fullname': attrs.get('field_lf_full_name'),
+                'groups': constants.TESTAPI_USERS + attrs.get('group', [])
+            }
+            q_user = {'user': user}
+            db_user = yield dbapi.db_find_one(self.table, q_user)
+            if not db_user:
+                dbapi.db_save(self.table, login_user)
+            else:
+                dbapi.db_update(self.table, q_user, login_user)
+
+            self.clear_cookie(constants.TESTAPI_ID)
+            self.set_secure_cookie(constants.TESTAPI_ID, user)
+
+            self.redirect(url=CONF.ui_url)
 
 
-class SignoutHandler(handlers.GenericApiHandler):
+class SignoutHandler(SignBaseHandler):
     def get(self):
         """Handle signout request."""
         self.clear_cookie(constants.TESTAPI_ID)
-        client = CASClient(version='2',
-                           server_url=CONF.lfid_cas_url)
-        self.redirect(url=(client.get_logout_url(redirect_url=CONF.ui_url)))
+        logout_url = self.cas_client.get_logout_url(redirect_url=CONF.ui_url)
+        self.redirect(url=logout_url)
index 576cbdd..286a6b0 100644 (file)
@@ -1,4 +1,3 @@
-from opnfv_testapi.common import check
 from opnfv_testapi.common.config import CONF
 from opnfv_testapi.resources import handlers
 
@@ -7,6 +6,5 @@ class RootHandler(handlers.GenericApiHandler):
     def get_template_path(self):
         return CONF.ui_static_path
 
-    @check.login
     def get(self):
         self.render('testapi-ui/index.html')