Merge "KVMFORNFV: Implementing kvmfornfv daily jobs."
authorAric Gardner <agardner@linuxfoundation.org>
Wed, 7 Dec 2016 18:36:55 +0000 (18:36 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Wed, 7 Dec 2016 18:36:55 +0000 (18:36 +0000)
71 files changed:
jjb/apex/apex.yml
jjb/armband/armband-deploy.sh
jjb/armband/armband-verify-jobs.yml
jjb/availability/availability.yml
jjb/bottlenecks/bottlenecks-project-jobs.yml
jjb/compass4nfv/compass-ci-jobs.yml
jjb/compass4nfv/compass-deploy.sh
jjb/compass4nfv/compass-verify-jobs.yml
jjb/conductor/conductor.yml
jjb/copper/copper.yml
jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
jjb/daisy4nfv/daisy4nfv-virtual-deploy.sh
jjb/doctor/doctor.yml
jjb/domino/domino.yml
jjb/dovetail/dovetail-ci-jobs.yml
jjb/dovetail/dovetail-cleanup.sh
jjb/dovetail/dovetail-project-jobs.yml
jjb/dovetail/dovetail-run.sh
jjb/dpacc/dpacc.yml
jjb/escalator/escalator-basic.sh [new file with mode: 0755]
jjb/escalator/escalator-build.sh [new file with mode: 0755]
jjb/escalator/escalator-upload-artifact.sh [new file with mode: 0755]
jjb/escalator/escalator.yml [new file with mode: 0644]
jjb/fastpathmetrics/fastpathmetrics.yml
jjb/fuel/fuel-project-jobs.yml
jjb/fuel/fuel-verify-jobs-experimental.yml
jjb/fuel/fuel-verify-jobs.yml
jjb/functest/functest-ci-jobs.yml
jjb/functest/functest-project-jobs.yml
jjb/functest/set-functest-env.sh
jjb/global/installer-params.yml [moved from jjb/opnfv/installer-params.yml with 100% similarity]
jjb/global/releng-defaults.yml [moved from jjb/releng-defaults.yaml with 100% similarity]
jjb/global/releng-macros.yml [moved from jjb/releng-macros.yaml with 100% similarity]
jjb/global/slave-params.yml [moved from jjb/opnfv/slave-params.yml with 100% similarity]
jjb/infra/bifrost-verify-jobs.yml
jjb/ipv6/ipv6.yml
jjb/joid/joid-verify-jobs.yml
jjb/kvmfornfv/kvmfornfv.yml
jjb/moon/moon.yml
jjb/multisite/multisite.yml
jjb/netready/netready.yml
jjb/octopus/octopus.yml
jjb/onosfw/onosfw.yml
jjb/opnfv/opnfv-docker.yml [deleted file]
jjb/opnfvdocs/opnfvdocs.yml
jjb/ovsnfv/ovsnfv.yml
jjb/parser/parser.yml
jjb/pharos/pharos.yml
jjb/prediction/prediction.yml
jjb/promise/promise.yml
jjb/qtip/qtip-ci-jobs.yml
jjb/qtip/qtip-project-jobs.yml
jjb/releng/artifact-cleanup.yml [moved from jjb/opnfv/artifact-cleanup.yml with 100% similarity]
jjb/releng/opnfv-docker.sh [moved from jjb/opnfv/opnfv-docker.sh with 60% similarity]
jjb/releng/opnfv-docker.yml [new file with mode: 0644]
jjb/releng/opnfv-docs.yml [moved from jjb/opnfv/opnfv-docs.yml with 97% similarity]
jjb/releng/opnfv-lint.yml [moved from jjb/opnfv/opnfv-lint.yml with 97% similarity]
jjb/releng/opnfv-utils.yml [moved from jjb/opnfv/opnfv-utils.yml with 100% similarity]
jjb/releng/releng-ci-jobs.yml
jjb/releng/verify-releng.sh
jjb/storperf/storperf.yml
jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
jjb/vswitchperf/vswitchperf.yml
jjb/yardstick/yardstick-project-jobs.yml
prototypes/bifrost/playbooks/test-bifrost-infracloud.yaml
prototypes/bifrost/scripts/test-bifrost-deployment.sh
utils/calculate_version.sh [deleted file]
utils/jenkins-jnlp-connect.sh
utils/test/reporting/functest/reporting-status.py
utils/test/testapi/opnfv_testapi/resources/testcase_models.py

index 8bfc53d..6011fe7 100644 (file)
@@ -59,6 +59,7 @@
          - 'os-odl_l2-nofeature-ha'
          - 'os-odl_l2-bgpvpn-ha'
          - 'os-odl_l2-fdio-noha'
+         - 'os-odl_l2-fdio-ha'
          - 'os-odl_l2-sfc-noha'
          - 'os-odl_l3-nofeature-ha'
          - 'os-onos-nofeature-ha'
@@ -97,6 +98,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
                 failure-threshold: 'never'
                 unstable-threshold: 'FAILURE'
         - trigger-builds:
-          - project: 'apex-deploy-baremetal-os-odl_l2-fdio-noha-{stream}'
+          - project: 'apex-deploy-baremetal-os-odl_l2-fdio-ha-{stream}'
             predefined-parameters: |
               BUILD_DIRECTORY=apex-build-{stream}/build
               OPNFV_CLEAN=yes
         - trigger-builds:
           - project: 'functest-apex-{daily-slave}-daily-{stream}'
             predefined-parameters:
-              DEPLOY_SCENARIO=os-odl_l2-fdio-noha
+              DEPLOY_SCENARIO=os-odl_l2-fdio-ha
             block: true
             same-node: true
             block-thresholds:
         - trigger-builds:
           - project: 'yardstick-apex-{slave}-daily-{stream}'
             predefined-parameters:
-              DEPLOY_SCENARIO=os-odl_l2-fdio-noha
+              DEPLOY_SCENARIO=os-odl_l2-fdio-ha
             block: true
             same-node: true
             block-thresholds:
index e0631c4..4df9acf 100755 (executable)
@@ -71,10 +71,23 @@ ISO_FILE=$WORKSPACE/opnfv.iso
 # log file name
 FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
 
+# Deploy Cache (to enable just create the deploy-cache subdir)
+# NOTE: Only available when ISO files are cached using ISOSTORE mechanism
+DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${GIT_BRANCH##*/}/deploy-cache
+if [[ -d "${DEPLOY_CACHE}" ]]; then
+    echo "Deploy cache dir present."
+    echo "--------------------------------------------------------"
+    echo "Fuel@OPNFV deploy cache: ${DEPLOY_CACHE}"
+    DEPLOY_CACHE="-C ${DEPLOY_CACHE}"
+else
+    DEPLOY_CACHE=""
+fi
+
 # construct the command
 DEPLOY_COMMAND="$WORKSPACE/ci/deploy.sh -b ${LAB_CONFIG_URL} \
     -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://${ISO_FILE} \
-    -H -B ${DEFAULT_BRIDGE:-pxebr} -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME"
+    -H -B ${DEFAULT_BRIDGE:-pxebr} -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME \
+    ${DEPLOY_CACHE}"
 
 # log info to console
 echo "Deployment parameters"
index 90fdd7e..f99ed57 100644 (file)
@@ -68,6 +68,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index c42efff..485010d 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 523d363..27eb01a 100644 (file)
@@ -54,6 +54,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -94,6 +95,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index b70bfc6..330c6dd 100644 (file)
         - 'os-nosdn-nofeature-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
         - 'os-odl_l2-nofeature-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
         - 'os-odl_l3-nofeature-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
         - 'os-onos-nofeature-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
         - 'os-ocl-nofeature-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
         - 'os-onos-sfc-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
         - 'os-odl_l2-moon-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: 'xenial'
         - 'os-nosdn-kvm-ha':
             disabled: false
             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
-            openstack-os-version: ''
 
     jobs:
         - 'compass-{scenario}-{pod}-daily-{stream}'
               predefined-parameters: |
                 DEPLOY_SCENARIO={scenario}
                 COMPASS_OS_VERSION={os-version}
-                COMPASS_OS_VERSION_OPTION={openstack-os-version}
               same-node: true
               block: true
         - trigger-builds:
         #dovetail only master by now, not sync with A/B/C branches
         #here the stream means the SUT stream, dovetail stream is defined in its own job
         - trigger-builds:
-            - project: 'dovetail-compass-{pod}-basic-{stream}'
+            - project: 'dovetail-compass-{pod}-debug-{stream}'
               current-parameters: false
               predefined-parameters:
                 DEPLOY_SCENARIO={scenario}
                 - 'mitaka'
                 - 'newton'
                 - 'liberty'
-        - choice:
-            name: COMPASS_OS_VERSION_OPTION
-            choices:
-                - ''
-                - 'xenial'
 
 ########################
 # trigger macros
index 2567179..017741a 100644 (file)
@@ -29,19 +29,9 @@ cd $WORKSPACE
 
 export OS_VERSION=${COMPASS_OS_VERSION}
 export OPENSTACK_VERSION=${COMPASS_OPENSTACK_VERSION}
-if [[ "${COMPASS_OS_VERSION_OPTION}" = "xenial" ]] && [[ "${OPENSTACK_VERSION}" = "mitaka" ]]; then
-    export OPENSTACK_VERSION=${OPENSTACK_VERSION}_${COMPASS_OS_VERSION_OPTION}
-    export OS_VERSION=${COMPASS_OS_VERSION_OPTION}
-fi
-if [[ "${OPENSTACK_VERSION}" = "newton" ]]; then
-    export OS_VERSION="xenial"
-    export OPENSTACK_VERSION=${OPENSTACK_VERSION}_${OS_VERSION}
-fi
-
 
 if [[ "${DEPLOY_SCENARIO}" =~ "-ocl" ]]; then
     export NETWORK_CONF_FILE=network_ocl.yml
-    export OPENSTACK_VERSION=liberty
 elif [[ "${DEPLOY_SCENARIO}" =~ "-onos" ]]; then
     export NETWORK_CONF_FILE=network_onos.yml
 else
@@ -57,7 +47,11 @@ else
     export DHA_CONF=$CONFDIR/hardware_environment/$NODE_NAME/${DEPLOY_SCENARIO}.yml
 fi
 
-./deploy.sh --dha ${DHA_CONF} --network ${NETWORK_CONF}
+export DHA=${DHA_CONF}
+export NETWORK=${NETWORK_CONF}
+
+./ci/deploy_ci.sh
+
 if [ $? -ne 0 ]; then
     echo "depolyment failed!"
     deploy_ret=1
index cc04ad3..a883ad9 100644 (file)
@@ -79,6 +79,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
                   node-parameters: true
                   kill-phase-on: FAILURE
                   abort-all-job: true
-        - multijob:
-            name: smoke-test
-            condition: SUCCESSFUL
-            projects:
-                - name: 'functest-compass-virtual-suite-{stream}'
-                  current-parameters: true
-                  predefined-parameters:
-                    FUNCTEST_SUITE_NAME=healthcheck
-                  node-parameters: true
-                  kill-phase-on: NEVER
-                  abort-all-job: true
+#        - multijob:
+#            name: smoke-test
+#            condition: SUCCESSFUL
+#            projects:
+#                - name: 'functest-compass-virtual-suite-{stream}'
+#                  current-parameters: true
+#                  predefined-parameters:
+#                    FUNCTEST_SUITE_NAME=healthcheck
+#                  node-parameters: true
+#                  kill-phase-on: NEVER
+#                  abort-all-job: true
 
 - job-template:
     name: 'compass-verify-{phase}-{distro}-{stream}'
index a5f556a..15a3b59 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index b504578..80ad929 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index f8c0258..5964adb 100644 (file)
@@ -64,6 +64,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index d893b14..bd9f1b5 100644 (file)
@@ -62,6 +62,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 9de494f..4aa7b0b 100755 (executable)
@@ -10,7 +10,9 @@ if [[ "$NODE_NAME" =~ "-virtual" ]]; then
     export NETWORK_CONF=./deploy/config/vm_environment/$NODE_NAME/network.yml
     export DHA_CONF=./deploy/config/vm_environment/$NODE_NAME/deploy.yml
 else
-    exit 1
+    # TODO: For the time being, we need to pass this script to let contributors merge their work.
+    echo "No support for non-virtual node"
+    exit 0
 fi
 
 ./ci/deploy/deploy.sh ${DHA_CONF} ${NETWORK_CONF}
index 4958ca2..7a5bd22 100644 (file)
@@ -7,12 +7,12 @@
         - master:
             branch: '{stream}'
             gs-pathname: ''
-            docker_tag: 'master'
+            docker-tag: 'master'
             disabled: false
         - colorado:
             branch: 'stable/{stream}'
             gs-pathname: '/{stream}'
-            docker_tag: 'stable'
+            docker-tag: 'stable'
             disabled: false
 
     installer:
             slave-label: 'ool-virtual1'
             pod: 'ool-virtual1'
 
+    inspector:
+        - 'sample'
+        - 'congress'
+
     jobs:
         - 'doctor-verify-{stream}'
-        - 'doctor-verify-{installer}-{stream}'
+        - 'doctor-verify-{installer}-{inspector}-{stream}'
 
 - job-template:
     name: 'doctor-verify-{stream}'
@@ -44,6 +48,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -68,7 +73,7 @@
         - shell: "[ -e tests/run.sh ] && bash -n ./tests/run.sh"
 
 - job-template:
-    name: 'doctor-verify-{installer}-{stream}'
+    name: 'doctor-verify-{installer}-{inspector}-{stream}'
 
     node: '{slave-label}'
 
             default: /home/jenkins/openstack.creds
             description: 'OpenStack credentials'
         - '{slave-label}-defaults'
+        - string:
+            name: INSTALLER_TYPE
+            default: '{installer}'
+            description: 'Installer used for deploying OPNFV on this POD'
+        - string:
+            name: DOCKER_TAG
+            default: '{docker-tag}'
+            description: 'Tag to pull docker image'
+        - string:
+            name: DEPLOY_SCENARIO
+            default: 'os-nosdn-nofeature-ha'
+            description: 'Scenario to deploy and test'
+        # functest-suite-parameter
+        - string:
+            name: FUNCTEST_SUITE_NAME
+            default: '{project}'
+        - string:
+            name: TESTCASE_OPTIONS
+            default: '-e INSPECTOR_TYPE={inspector} -v $WORKSPACE:/home/opnfv/repos/doctor'
+            description: 'Addtional parameters specific to test case(s)'
+        # functest-parameter
+        - string:
+            name: GS_PATHNAME
+            default: '{gs-pathname}'
+            description: "Version directory where the opnfv documents will be stored in gs repository"
+        - string:
+            name: FUNCTEST_REPO_DIR
+            default: "/home/opnfv/repos/functest"
+            description: "Directory where the Functest repository is cloned"
+        - string:
+            name: PUSH_RESULTS_TO_DB
+            default: "true"
+            description: "Push the results of all the tests to the resultDB"
+        - string:
+            name: CI_DEBUG
+            default: 'true'
+            description: "Show debug output information"
 
     scm:
         - gerrit-trigger-scm:
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
                 notbuilt: true
 
     builders:
-        - trigger-builds:
-          - project: 'functest-{installer}-{pod}-suite-{stream}'
-            current-parameters: true
-            predefined-parameters: |
-              CI_DEBUG=true
-              FUNCTEST_SUITE_NAME=doctor
-              DEPLOY_SCENARIO=os-nosdn-nofeature-ha
-              TESTCASE_OPTIONS=-e INSPECTOR_TYPE=sample -v $WORKSPACE:$HOME/opnfv/repos/doctor
-            block: true
-            same-node: true
-          - project: 'functest-{installer}-{pod}-suite-{stream}'
-            current-parameters: true
-            predefined-parameters: |
-              CI_DEBUG=true
-              FUNCTEST_SUITE_NAME=doctor
-              DEPLOY_SCENARIO=os-nosdn-nofeature-ha
-              TESTCASE_OPTIONS=-e INSPECTOR_TYPE=congress -v $WORKSPACE:$HOME/opnfv/repos/doctor
-            block: true
-            same-node: true
+        - 'functest-suite-builder'
+        - shell: |
+            cp $HOME/opnfv/functest/results/{stream}/{project}.log $WORKSPACE/tests/
 
     publishers:
-        - postbuildscript:
-            builders:
-                - functest-copy-suite-log:
-                    suite: '{project}'
         - archive:
-            artifacts: '{project}.log'
-
-- builder:
-    name: functest-copy-suite-log
-    builders:
-        - shell: |
-            cp $HOME/opnfv/functest/results/${{GIT_BRANCH##*/}}/{suite}.log $WORKSPACE/
+            artifacts: 'tests/*.log'
index 7cee984..d34f8fa 100644 (file)
@@ -36,6 +36,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 2921200..f32fba9 100644 (file)
             <<: *master
 #--------------------------------
     testsuite:
-        - 'basic'
+        - 'debug'
+        - 'proposed_tests'
+        - 'compliace_set'
 
     jobs:
         - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}'
             name: CI_DEBUG
             default: 'true'
             description: "Show debug output information"
+        - string:
+            name: TESTSUITE
+            default: '{testsuite}'
+            description: "dovetail testsuite to run"
+        - string:
+            name: DOVETAIL_REPO_DIR
+            default: "/home/opnfv/dovetail"
+            description: "Directory where the dovetail repository is cloned"
 
     scm:
         - git-scm:
         - description-setter:
             description: "POD: $NODE_NAME"
         - 'dovetail-cleanup'
-        - 'dovetail-{testsuite}'
+        - 'dovetail-run'
 
     publishers:
         - archive:
 # builder macros
 ########################
 - builder:
-    name: dovetail-basic
+    name: dovetail-run
     builders:
         - shell:
             !include-raw: ./dovetail-run.sh
 
+
 - builder:
     name: dovetail-fetch-os-creds
     builders:
index 297222b..f215278 100755 (executable)
@@ -1,20 +1,21 @@
 #!/bin/bash
+
 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
 
 echo "Cleaning up docker containers/images..."
 # Remove previous running containers if exist
 if [[ ! -z $(docker ps -a | grep opnfv/dovetail) ]]; then
     echo "Removing existing opnfv/dovetail containers..."
-    docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >$redirect
+    docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >${redirect}
 fi
 
 # Remove existing images if exist
 if [[ ! -z $(docker images | grep opnfv/dovetail) ]]; then
     echo "Docker images to remove:"
-    docker images | head -1 && docker images | grep opnfv/dovetail
+    docker images | head -1 && docker images | grep opnfv/dovetail >${redirect}
     image_tags=($(docker images | grep opnfv/dovetail | awk '{print $2}'))
     for tag in "${image_tags[@]}"; do
         echo "Removing docker image opnfv/dovetail:$tag..."
-        docker rmi opnfv/dovetail:$tag >$redirect
+        docker rmi opnfv/dovetail:$tag >${redirect}
     done
 fi
index 41fd8cd..07106f6 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -79,6 +80,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index 098b7db..a41a989 100755 (executable)
@@ -22,7 +22,7 @@ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
 elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
     # If production lab then creds may be retrieved dynamically
     # creds are on the jumphost, always in the same folder
-    labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/openrc"
+    labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/functest/conf/openstack.creds"
     # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
     # replace the default one by the customized one provided by jenkins config
 fi
@@ -32,26 +32,45 @@ if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FOR
     sudo iptables -I FORWARD -j RETURN
 fi
 
-opts="--privileged=true --rm"
+opts="--privileged=true -id"
 envs="-e CI_DEBUG=${CI_DEBUG} \
       -e INSTALLER_TYPE=${INSTALLER_TYPE} \
       -e INSTALLER_IP=${INSTALLER_IP} \
       -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
-      -e DEPLOY_TYPE=${DEPLOY_TYPE} \
-      -v /var/run/docker.sock:/var/run/docker.sock \
-      -v /home/opnfv/dovetail/results:/home/opnfv/dovetail/results"
+      -e DEPLOY_TYPE=${DEPLOY_TYPE}"
+results_envs="-v /var/run/docker.sock:/var/run/docker.sock \
+              -v /home/opnfv/dovetail/results:/home/opnfv/dovetail/results"
 
 # Pull the image with correct tag
 echo "Dovetail: Pulling image opnfv/dovetail:${DOCKER_TAG}"
 docker pull opnfv/dovetail:$DOCKER_TAG >$redirect
 
-# Run docker
-echo "Dovetail: docker running..."
-sudo docker run ${opts} ${envs} ${labconfig} ${sshkey} opnfv/dovetail:${DOCKER_TAG} \
-"/home/opnfv/dovetail/dovetail/run.py"
+cmd="sudo docker run ${opts} ${envs} ${results_envs} ${labconfig} ${sshkey} \
+     opnfv/dovetail:${DOCKER_TAG} /bin/bash"
+echo "Dovetail: running docker run command: ${cmd}"
+${cmd} >${redirect}
+sleep 5
+container_id=$(docker ps | grep "opnfv/dovetail:${DOCKER_TAG}" | awk '{print $1}' | head -1)
+echo "Container ID=${container_id}"
+if [ -z ${container_id} ]; then
+    echo "Cannot find opnfv/dovetail container ID ${container_id}. Please check if it is existing."
+    docker ps -a
+    exit 1
+fi
+echo "COntainer Start: docker start ${container_id}"
+docker start ${container_id}
+sleep 5
+docker ps >${redirect}
+if [ $(docker ps | grep "opnfv/dovetail:${DOCKER_TAG}" | wc -l) == 0 ]; then
+    echo "The container opnfv/dovetail with ID=${container_id} has not been properly started. Exiting..."
+    exit 1
+fi
+
+exec_cmd="python ${DOVETAIL_REPO_DIR}/dovetail/run.py --testsuite ${TESTSUITE}"
+echo "Container exec command: ${exec_cmd}"
+docker exec ${container_id} ${exec_cmd}
 
-echo "Dovetail: store results..."
-sudo cp -r /home/opnfv/dovetail/results ./
+sudo cp -r ${DOVETAIL_REPO_DIR}/results ./
 #To make sure the file owner is jenkins, for the copied results files in the above line
 #if not, there will be error when next time to wipe workspace
 sudo chown -R jenkins:jenkins ${WORKSPACE}/results
index c660af5..bcad2a3 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
diff --git a/jjb/escalator/escalator-basic.sh b/jjb/escalator/escalator-basic.sh
new file mode 100755 (executable)
index 0000000..9c739c4
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/bash
+echo "--------------------------------------------------------"
+echo "This is escalator basic job!"
+echo "--------------------------------------------------------"
+
diff --git a/jjb/escalator/escalator-build.sh b/jjb/escalator/escalator-build.sh
new file mode 100755 (executable)
index 0000000..0e35c27
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/bash
+echo "--------------------------------------------------------"
+echo "This is escalator build job!"
+echo "--------------------------------------------------------"
+
+# set OPNFV_ARTIFACT_VERSION
+if [[ "$JOB_NAME" =~ "merge" ]]; then
+    echo "Building Escalator TAR for a merged change"
+    export OPNFV_ARTIFACT_VERSION="gerrit-$GERRIT_CHANGE_NUMBER"
+else
+    export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
+fi
+
+# build output directory
+OUTPUT_DIR=$WORKSPACE/build_output
+mkdir -p $OUTPUT_DIR
+
+# start the build
+cd $WORKSPACE
+./ci/build.sh $OUTPUT_DIR $OPNFV_ARTIFACT_VERSION
+
+# save information regarding artifact into file
+(
+    echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION"
+    echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)"
+    echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)"
+    echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.bin"
+    echo "OPNFV_BUILD_URL=$BUILD_URL"
+) > $WORKSPACE/opnfv.properties
+
+echo
+echo "--------------------------------------------------------"
+echo "Done!"
diff --git a/jjb/escalator/escalator-upload-artifact.sh b/jjb/escalator/escalator-upload-artifact.sh
new file mode 100755 (executable)
index 0000000..781fb3e
--- /dev/null
@@ -0,0 +1,89 @@
+#!/bin/bash
+echo "--------------------------------------------------------"
+echo "This is escalator upload job!"
+echo "--------------------------------------------------------"
+
+set -o pipefail
+
+# check if we built something
+if [ -f $WORKSPACE/.noupload ]; then
+    echo "Nothing new to upload. Exiting."
+    /bin/rm -f $WORKSPACE/.noupload
+    exit 0
+fi
+
+# source the opnfv.properties to get ARTIFACT_VERSION
+source $WORKSPACE/opnfv.properties
+
+importkey () {
+# clone releng repository
+echo "Cloning releng repository..."
+[ -d releng ] && rm -rf releng
+git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng/ &> /dev/null
+#this is where we import the siging key
+if [ -f $WORKSPACE/releng/utils/gpg_import_key.sh ]; then
+  source $WORKSPACE/releng/utils/gpg_import_key.sh
+fi
+}
+
+signtar () {
+gpg2 -vvv --batch --yes --no-tty \
+  --default-key opnfv-helpdesk@rt.linuxfoundation.org  \
+  --passphrase besteffort \
+  --detach-sig $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz
+
+gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz.sig gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz.sig
+echo "TAR signature Upload Complete!"
+}
+
+uploadtar () {
+# log info to console
+echo "Uploading $INSTALLER_TYPE artifact. This could take some time..."
+echo
+
+cd $WORKSPACE
+# upload artifact and additional files to google storage
+gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz \
+    gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz > gsutil.tar.log 2>&1
+gsutil cp $WORKSPACE/opnfv.properties \
+    gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1
+if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
+    gsutil cp $WORKSPACE/opnfv.properties \
+    gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
+elif [[ "$JOB_NAME" =~ "merge" ]]; then
+    echo "Uploaded Escalator TAR for a merged change"
+fi
+
+gsutil -m setmeta \
+    -h "Content-Type:text/html" \
+    -h "Cache-Control:private, max-age=0, no-transform" \
+    gs://$GS_URL/latest.properties \
+    gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > /dev/null 2>&1
+
+gsutil -m setmeta \
+    -h "Cache-Control:private, max-age=0, no-transform" \
+    gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz > /dev/null 2>&1
+
+# disabled errexit due to gsutil setmeta complaints
+#   BadRequestException: 400 Invalid argument
+# check if we uploaded the file successfully to see if things are fine
+gsutil ls gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz > /dev/null 2>&1
+if [[ $? -ne 0 ]]; then
+    echo "Problem while uploading artifact!"
+    echo "Check log $WORKSPACE/gsutil.bin.log on the machine where this build is done."
+    exit 1
+fi
+
+echo "Done!"
+echo
+echo "--------------------------------------------------------"
+echo
+echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.tar.gz"
+echo
+echo "--------------------------------------------------------"
+echo
+}
+
+importkey
+signtar
+uploadtar
diff --git a/jjb/escalator/escalator.yml b/jjb/escalator/escalator.yml
new file mode 100644 (file)
index 0000000..11da789
--- /dev/null
@@ -0,0 +1,328 @@
+- project:
+    name: 'escalator'
+
+    project: 'escalator'
+#####################################
+# branch definitions
+#####################################
+    stream:
+        - master:
+            branch: '{stream}'
+            gs-pathname: ''
+            disabled: false
+#####################################
+# phases
+#####################################
+    phase:
+        - 'basic':
+            slave-label: 'opnfv-build-centos'
+        - 'build':
+            slave-label: 'opnfv-build-centos'
+#####################################
+# jobs
+#####################################
+    jobs:
+        - 'escalator-verify-{stream}'
+        - 'escalator-verify-{phase}-{stream}'
+        - 'escalator-merge-{stream}'
+        - 'escalator-merge-{phase}-{stream}'
+#####################################
+# job templates
+#####################################
+- job-template:
+    name: 'escalator-verify-{stream}'
+
+    project-type: multijob
+
+    disabled: false
+
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 4
+            option: 'project'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+
+    triggers:
+        - gerrit:
+            server-name: 'gerrit.opnfv.org'
+            trigger-on:
+                - patchset-created-event:
+                    exclude-drafts: 'false'
+                    exclude-trivial-rebase: 'false'
+                    exclude-no-code-change: 'false'
+                - draft-published-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'recheck'
+                - comment-added-contains-event:
+                    comment-contains-value: 'reverify'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: '{project}'
+                branches:
+                  - branch-compare-type: 'ANT'
+                    branch-pattern: '**/{branch}'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**|.gitignore'
+            readable-message: true
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - 'opnfv-build-defaults'
+        - 'escalator-defaults':
+            gs-pathname: '{gs-pathname}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - multijob:
+            name: basic
+            condition: SUCCESSFUL
+            projects:
+                - name: 'escalator-verify-basic-{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
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'escalator-verify-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
+
+- job-template:
+    name: 'escalator-verify-{phase}-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: true
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - '{slave-label}-defaults'
+        - 'escalator-defaults':
+            gs-pathname: '{gs-pathname}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - '{project}-verify-{phase}-macro'
+
+- job-template:
+    name: 'escalator-merge-{stream}'
+
+    project-type: multijob
+
+    disabled: false
+
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 4
+            option: 'project'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+
+    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}'
+                forbidden-file-paths:
+                  - compare-type: ANT
+                    pattern: 'docs/**|.gitignore'
+            readable-message: true
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - 'opnfv-build-defaults'
+        - 'escalator-defaults':
+            gs-pathname: '{gs-pathname}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - multijob:
+            name: basic
+            condition: SUCCESSFUL
+            projects:
+                - name: 'escalator-merge-basic-{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
+        - multijob:
+            name: build
+            condition: SUCCESSFUL
+            projects:
+                - name: 'escalator-merge-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
+
+- job-template:
+    name: 'escalator-merge-{phase}-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: true
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: '$GERRIT_REFSPEC'
+            choosing-strategy: 'gerrit'
+
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
+        - timeout:
+            timeout: 360
+            fail: true
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: '{branch}'
+        - '{slave-label}-defaults'
+        - 'escalator-defaults':
+            gs-pathname: '{gs-pathname}'
+
+    builders:
+        - description-setter:
+            description: "Built on $NODE_NAME"
+        - '{project}-merge-{phase}-macro'
+#####################################
+# builder macros
+#####################################
+- builder:
+    name: 'escalator-verify-basic-macro'
+    builders:
+        - shell:
+            !include-raw: ./escalator-basic.sh
+
+- builder:
+    name: 'escalator-verify-build-macro'
+    builders:
+        - shell:
+            !include-raw: ./escalator-build.sh
+
+- builder:
+    name: 'escalator-merge-basic-macro'
+    builders:
+        - shell:
+            !include-raw: ./escalator-basic.sh
+
+- builder:
+    name: 'escalator-merge-build-macro'
+    builders:
+        - shell:
+            !include-raw:
+                - ./escalator-build.sh
+                - ./escalator-upload-artifact.sh
+#####################################
+# parameter macros
+#####################################
+- parameter:
+    name: 'escalator-defaults'
+    parameters:
+        - string:
+            name: BUILD_DIRECTORY
+            default: $WORKSPACE/build_output
+            description: "Directory where the build artifact will be located upon the completion of the build."
+        - string:
+            name: CACHE_DIRECTORY
+            default: $HOME/opnfv/cache/$INSTALLER_TYPE
+            description: "Directory where the cache to be used during the build is located."
+        - string:
+            name: GS_URL
+            default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+            description: "URL to Google Storage."
index 40df385..6be6a52 100644 (file)
@@ -42,6 +42,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index 588ab0c..2aa17ab 100644 (file)
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index ae83b08..cc16133 100644 (file)
@@ -73,6 +73,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index f4bdbdd..7b86568 100644 (file)
@@ -68,6 +68,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index afeb1f9..1cded61 100644 (file)
         - string:
             name: TESTCASE_OPTIONS
             default: ''
-            description: 'Addtional parameters specific to test case(s)'
+            description: 'Additional parameters specific to test case(s)'
 - parameter:
     name: functest-parameter
     parameters:
             name: CI_DEBUG
             default: 'false'
             description: "Show debug output information"
+        - string:
+            name: RC_FILE_PATH
+            default: ''
+            description: "Path to the OS credentials file if given"
 ########################
 # trigger macros
 ########################
index 236b95d..888f0ed 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index bc30ffa..583ce80 100755 (executable)
@@ -2,8 +2,23 @@
 
 set -e
 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
-# labconfig is used only for joid
-labconfig=""
+# LAB_CONFIG is used only for joid
+
+
+if [[ ${INSTALLER_TYPE} == 'joid' ]]; then
+    # If production lab then creds may be retrieved dynamically
+    # creds are on the jumphost, always in the same folder
+    rc_file_vol="-v $LAB_CONFIG/admin-openrc:/home/opnfv/functest/conf/openstack.creds"
+    # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
+    # replace the default one by the customized one provided by jenkins config
+fi
+
+if [[ ${RC_FILE_PATH} != '' ]] && [[ -f ${RC_FILE_PATH} ]] ; then
+    # volume if credentials file path is given to Functest
+    rc_file_vol="-v $RC_FILE_PATH:/home/opnfv/functest/conf/openstack.creds"
+fi
+
+
 if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
     ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
     if sudo virsh list | grep instack; then
@@ -17,9 +32,9 @@ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
         exit 1
     fi
     INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'})
-    sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
+    sshkey_vol="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa"
     sudo scp $ssh_options root@${INSTALLER_IP}:/home/stack/stackrc ${HOME}/stackrc
-    stackrc="-v ${HOME}/stackrc:/home/opnfv/functest/conf/stackrc"
+    stackrc_vol="-v ${HOME}/stackrc:/home/opnfv/functest/conf/stackrc"
 
     if sudo iptables -C FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable 2> ${redirect}; then
         sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
@@ -27,15 +42,10 @@ if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
     if sudo iptables -C FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable 2> ${redirect}; then
         sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
     fi
-
-elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then
-    # If production lab then creds may be retrieved dynamically
-    # creds are on the jumphost, always in the same folder
-    labconfig="-v $LAB_CONFIG/admin-openrc:/home/opnfv/functest/conf/openstack.creds"
-    # If dev lab, credentials may not be the default ones, just provide a path to put them into docker
-    # replace the default one by the customized one provided by jenkins config
 fi
 
+
+
 # Set iptables rule to allow forwarding return traffic for container
 if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
     sudo iptables -I FORWARD -j RETURN
@@ -45,22 +55,28 @@ DEPLOY_TYPE=baremetal
 [[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt
 
 echo "Functest: Start Docker and prepare environment"
-envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
-    -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
-    -e BUILD_TAG=${BUILD_TAG} -e CI_DEBUG=${CI_DEBUG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"
+
 branch=${GIT_BRANCH##*/}
 dir_result="${HOME}/opnfv/functest/results/${branch}"
 mkdir -p ${dir_result}
 sudo rm -rf ${dir_result}/*
-res_volume="-v ${dir_result}:/home/opnfv/functest/results"
+results_vol="-v ${dir_result}:/home/opnfv/functest/results"
 custom_params=
 test -f ${HOME}/opnfv/functest/custom/params_${DOCKER_TAG} && custom_params=$(cat ${HOME}/opnfv/functest/custom/params_${DOCKER_TAG})
 
+envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
+    -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
+    -e BUILD_TAG=${BUILD_TAG} -e CI_DEBUG=${CI_DEBUG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"
+
+
+volumes="${results_vol} ${sshkey_vol} ${stackrc_vol} ${rc_file_vol}"
+
+
 echo "Functest: Pulling image opnfv/functest:${DOCKER_TAG}"
 docker pull opnfv/functest:$DOCKER_TAG >/dev/null
 
-cmd="sudo docker run --privileged=true -id ${envs} ${labconfig} ${sshkey} \
-     ${res_volume} ${custom_params} ${stackrc} ${TESTCASE_OPTIONS} \
+cmd="sudo docker run --privileged=true -id ${envs} ${volumes} \
+     ${custom_params} ${TESTCASE_OPTIONS} \
      opnfv/functest:${DOCKER_TAG} /bin/bash"
 echo "Functest: Running docker run command: ${cmd}"
 ${cmd} >${redirect}
index 751aa0c..be3cf9a 100644 (file)
             disabled: false
             dib-os-release: 'trusty'
             dib-os-element: 'ubuntu-minimal'
-            dib-os-packages: 'openssh-server,vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
+            dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
+            extra-dib-elements: 'openssh-server'
         - 'centos7':
             disabled: false
             dib-os-release: '7'
             dib-os-element: 'centos7'
-            dib-os-packages: 'openssh-server,vim,less,bridge-utils,iputils,rsyslog,curl'
+            dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
+            extra-dib-elements: 'openssh-server'
         - 'suse':
-            disabled: true
-            dib-os-release: 'suse'
-            dib-os-element: 'suse'
-            dib-os-packages: ''
+            disabled: false
+            dib-os-release: '42.2'
+            dib-os-element: 'opensuse-minimal'
+            # python-xml is needed until https://review.openstack.org/#/c/400150/ is merged
+            dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl,python-xml'
+            extra-dib-elements: 'openssh-server'
+            vm-disk: '30'
+            vm-memory: '4096'
+            vm-cpu: '2'
 #--------------------------------
 # type
 #--------------------------------
 #--------------------------------
     jobs:
         - '{project}-bifrost-verify-{distro}-{type}-{stream}'
+
+#--------------------------------
+# VM defaults
+#--------------------------------
+- defaults:
+    name: vm_defaults
+    vm-disk: '100'
+    vm-memory: '8192'
+    vm-cpu: '4'
+
 #--------------------------------
 # job templates
 #--------------------------------
@@ -53,6 +70,8 @@
 
     disabled: '{obj:disabled}'
 
+    defaults: vm_defaults
+
     concurrent: false
 
     properties:
         - string:
             name: DIB_OS_ELEMENT
             default: '{dib-os-element}'
+        - string:
+            name: EXTRA_DIB_ELEMENTS
+            default: '{extra-dib-elements}'
         - string:
             name: DIB_OS_PACKAGES
             default: '{dib-os-packages}'
+        - string:
+            name: VM_DISK
+            default: '{vm-disk}'
+        - string:
+            name: VM_MEMORY
+            default: '{vm-memory}'
+        - string:
+            name: VM_CPU
+            default: '{vm-cpu}'
         - string:
             name: CLEAN_DIB_IMAGES
             default: 'true'
index d9dafdf..069599e 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 9d362d8..649c31b 100644 (file)
@@ -73,6 +73,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 53f2e22..1c2bf50 100644 (file)
@@ -62,6 +62,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index 55d593f..a52cf2c 100644 (file)
@@ -29,6 +29,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -53,4 +54,4 @@
         - shell:
             #!/bin/bash
             echo "launch Moon unit tests"
-            nosetest $WORKSPACE/keystone-moon/keystone/tests/moon/unit
\ No newline at end of file
+            nosetest $WORKSPACE/keystone-moon/keystone/tests/moon/unit
index 24c03fd..8e54299 100644 (file)
@@ -46,6 +46,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 3e2f95a..cc6769e 100644 (file)
@@ -34,6 +34,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index c4e34ca..741aa09 100644 (file)
@@ -39,6 +39,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 0c90c57..33ede47 100644 (file)
@@ -43,6 +43,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml
deleted file mode 100644 (file)
index f313b3b..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-##############################################
-# job configuration for docker build and push
-##############################################
-
-- project:
-
-    name: opnfv-docker
-
-    project:
-        - 'bottlenecks'
-        - 'cperf'
-        - 'functest'
-        - 'storperf'
-        - 'qtip'
-
-    jobs:
-        - '{project}-docker-build-push-{stream}'
-        - 'yardstick-docker-build-push-{stream}'
-        #dovetail not sync with release, an independent job
-        #only master by now, will adjust accordingly in future
-        - 'dovetail-docker-build-push-{dovetailstream}'
-
-    stream:
-        - master:
-            branch: '{stream}'
-            disabled: false
-        - colorado:
-            branch: 'stable/{stream}'
-            disabled: false
-    dovetailstream:
-        - master:
-            branch: '{dovetailstream}'
-            disabled: false
-
-########################
-# job templates
-########################
-- job-template:
-    name: '{project}-docker-build-push-{stream}'
-
-    disabled: '{obj:disabled}'
-
-    parameters:
-        - project-parameter:
-            project: '{project}'
-        - 'opnfv-build-ubuntu-defaults'
-        - string:
-            name: PUSH_IMAGE
-            default: "true"
-            description: "To enable/disable pushing the image to Dockerhub."
-        - string:
-            name: BASE_VERSION
-            default: "colorado.0"
-            description: "Base version to be used."
-        - string:
-            name: DOCKER_REPO_NAME
-            default: "opnfv/{project}"
-            description: "Dockerhub repo to be pushed to."
-        - string:
-            name: UPDATE_LATEST_STABLE
-            default: "false"
-            description: "This will update the latest_stable image only."
-        - string:
-            name: STABLE_TAG
-            description: "If above option is true, this is the tag to be pulled."
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{branch}'
-
-    builders:
-        - shell:
-            !include-raw-escape: ./opnfv-docker.sh
-
-    triggers:
-        - pollscm:
-            cron: "*/30 * * * *"
-
-- job-template:
-    name: 'yardstick-docker-build-push-{stream}'
-
-    disabled: '{obj:disabled}'
-
-    parameters:
-        - project-parameter:
-            project: 'yardstick'
-        - 'opnfv-build-ubuntu-defaults'
-        - string:
-            name: PUSH_IMAGE
-            default: "true"
-            description: "To enable/disable pushing the image to Dockerhub."
-        - string:
-            name: BASE_VERSION
-            default: "colorado.0"
-            description: "Base version to be used."
-        - string:
-            name: DOCKER_REPO_NAME
-            default: "opnfv/yardstick"
-            description: "Dockerhub repo to be pushed to."
-        - string:
-            name: UPDATE_LATEST_STABLE
-            default: "false"
-            description: "This will update the latest_stable image only."
-        - string:
-            name: STABLE_TAG
-            description: "If above option is true, this is the tag to be pulled."
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{branch}'
-
-    builders:
-        - shell:
-            !include-raw-escape: ./opnfv-docker.sh
-
-    triggers:
-        - pollscm:
-            cron: "*/30 * * * *"
-
-- job-template:
-    name: 'dovetail-docker-build-push-{dovetailstream}'
-
-    disabled: '{obj:disabled}'
-
-    parameters:
-        - project-parameter:
-            project: 'dovetail'
-        - 'opnfv-build-ubuntu-defaults'
-        - string:
-            name: PUSH_IMAGE
-            default: "true"
-            description: "To enable/disable pushing the image to Dockerhub."
-        #BASE_VERSION parameter is used for version control
-        #by now, only master branch is used, this parameter takes no effect
-        #once branch control settled, should be adjusted togather with
-        #opnfv-docker.sh and caculate_version.sh
-        - string:
-            name: BASE_VERSION
-            default: "1.0"
-            description: "Base version to be used."
-        - string:
-            name: DOCKER_REPO_NAME
-            default: "opnfv/dovetail"
-            description: "Dockerhub repo to be pushed to."
-        - string:
-            name: UPDATE_LATEST_STABLE
-            default: "false"
-            description: "This will update the latest_stable image only."
-        - string:
-            name: STABLE_TAG
-            description: "If above option is true, this is the tag to be pulled."
-
-    scm:
-        - git-scm:
-            credentials-id: '{ssh-credentials}'
-            refspec: ''
-            branch: '{branch}'
-
-    builders:
-        - shell:
-            !include-raw-escape: ./opnfv-docker.sh
-
-    triggers:
-        - pollscm:
-            cron: "*/30 * * * *"
index 2bf87c2..724ef6a 100644 (file)
@@ -49,6 +49,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -96,6 +97,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index c6f3e4a..28d2683 100644 (file)
@@ -42,6 +42,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -96,6 +97,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index 7f73a13..cd6c6e0 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index f7ea622..92216ee 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index a95cd98..951188c 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 1a4d628..f620f6f 100644 (file)
@@ -40,6 +40,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index cca8cee..1c62df6 100644 (file)
@@ -85,7 +85,7 @@
 
     publishers:
         - email:
-            recipients: nauman.ahad@xflowresearch.com, mofassir.arif@xflowresearch.com, vikram@nvirters.com, zhang.yujunz@zte.com.cn
+            recipients: wu.zhihui1@zte.com.cn, zhang.yujunz@zte.com.cn
 
 ###########################
 #biuilder macros
index f192e86..8b406fe 100644 (file)
@@ -37,6 +37,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
similarity index 60%
rename from jjb/opnfv/opnfv-docker.sh
rename to jjb/releng/opnfv-docker.sh
index e637f7b..6f8d81a 100644 (file)
@@ -20,7 +20,7 @@ echo
 if [[ -n $(ps -ef|grep 'docker build'|grep -v grep) ]]; then
     echo "There is already another build process in progress:"
     echo $(ps -ef|grep 'docker build'|grep -v grep)
-    # Abort this job since it will colide and might mess up the current one.
+    # Abort this job since it will collide and might mess up the current one.
     echo "Aborting..."
     exit 1
 fi
@@ -51,20 +51,6 @@ if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then
     done
 fi
 
-# If we just want to update the latest_stable image
-if [[ "$UPDATE_LATEST_STABLE" == "true" ]]; then
-    echo "Pulling $DOCKER_REPO_NAME:$STABLE_TAG ..."
-    docker pull $DOCKER_REPO_NAME:$STABLE_TAG
-    if [[ $? -ne 0 ]]; then
-        echo "ERROR: The image $DOCKER_REPO_NAME with tag $STABLE_TAG does not exist."
-        exit 1
-    fi
-    docker tag $DOCKER_REPO_NAME:$STABLE_TAG $DOCKER_REPO_NAME:latest_stable
-    echo "Pushing $DOCKER_REPO_NAME:latest_stable ..."
-    docker push $DOCKER_REPO_NAME:latest_stable
-    exit 0
-fi
-
 
 # cd to directory where Dockerfile is located
 cd $WORKSPACE/docker
@@ -78,35 +64,26 @@ branch="${GIT_BRANCH##origin/}"
 echo "Current branch: $branch"
 
 if [[ "$branch" == "master" ]]; then
-    DOCKER_TAG="master"
-    DOCKER_BRANCH_TAG="latest"
+    DOCKER_TAG="latest"
 else
-    git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng
-
-    DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
-        -n $DOCKER_REPO_NAME)
-    DOCKER_BRANCH_TAG="stable"
-
-    ret_val=$?
-    if [[ $ret_val -ne 0 ]]; then
-        echo "Error retrieving the version tag."
-        exit 1
+    if [[ "$RELEASE_VERSION" != "" ]]; then
+        release=$(echo $branch|sed 's/.*\///')
+        DOCKER_TAG=${release}.${RELEASE_VERSION}
+        # e.g. colorado.1.0, colorado.2.0, colorado.3.0
+    else:
+        DOCKER_TAG="stable"
     fi
 fi
-echo "Tag version to be build and pushed: $DOCKER_TAG"
-
 
 # Start the build
-echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG"
+echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG"
+echo "--------------------------------------------------------"
+echo
+cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$branch ."
 
-if [[ $DOCKER_REPO_NAME == *"functest"* ]]; then
-    docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG --build-arg BRANCH=$branch .
-else
-    docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG .
-fi
+echo ${cmd}
+${cmd}
 
-echo "Creating tag '$DOCKER_TAG'..."
-docker tag $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG $DOCKER_REPO_NAME:$DOCKER_TAG
 
 # list the images
 echo "Available images are:"
@@ -117,10 +94,5 @@ if [[ "$PUSH_IMAGE" == "true" ]]; then
     echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG to the docker registry..."
     echo "--------------------------------------------------------"
     echo
-    # Push to the Dockerhub repository
-    echo "Pushing $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG ..."
-    docker push $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG
-
-    echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG ..."
     docker push $DOCKER_REPO_NAME:$DOCKER_TAG
 fi
diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml
new file mode 100644 (file)
index 0000000..7a4c9af
--- /dev/null
@@ -0,0 +1,86 @@
+##############################################
+# job configuration for docker build and push
+##############################################
+
+- project:
+
+    name: opnfv-docker
+
+    master: &master
+        stream: master
+        branch: '{stream}'
+        disabled: false
+    colorado: &colorado
+        stream: colorado
+        branch: 'stable/{stream}'
+        disabled: false
+
+    project:
+        # projects with jobs for master
+        - 'bottlenecks':
+            <<: *master
+        - 'cperf':
+            <<: *master
+        - 'dovetail':
+            <<: *master
+        - 'functest':
+            <<: *master
+        - 'qtip':
+            <<: *master
+        - 'storperf':
+            <<: *master
+        - 'yardstick':
+            <<: *master
+        # projects with jobs for stable
+        - 'bottlenecks':
+            <<: *colorado
+        - 'functest':
+            <<: *colorado
+        - 'storperf':
+            <<: *colorado
+        - 'yardstick':
+            <<: *colorado
+
+    jobs:
+        - '{project}-docker-build-push-{stream}'
+
+
+########################
+# job templates
+########################
+- job-template:
+    name: '{project}-docker-build-push-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - 'opnfv-build-ubuntu-defaults'
+        - string:
+            name: PUSH_IMAGE
+            default: "true"
+            description: "To enable/disable pushing the image to Dockerhub."
+        - string:
+            name: DOCKER_REPO_NAME
+            default: "opnfv/{project}"
+            description: "Dockerhub repo to be pushed to."
+        - string:
+            name: RELEASE_VERSION
+            default: ""
+            description: "Release version, e.g. 1.0, 2.0, 3.0"
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    builders:
+        - shell:
+            !include-raw-escape: ./opnfv-docker.sh
+
+    triggers:
+        - pollscm:
+            cron: "*/30 * * * *"
+
similarity index 97%
rename from jjb/opnfv/opnfv-docs.yml
rename to jjb/releng/opnfv-docs.yml
index 442e8ea..a183745 100644 (file)
@@ -46,6 +46,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -98,6 +99,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
similarity index 97%
rename from jjb/opnfv/opnfv-lint.yml
rename to jjb/releng/opnfv-lint.yml
index 6860dd0..c2624de 100644 (file)
@@ -43,6 +43,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -55,7 +56,7 @@
                     comment-contains-value: 'reverify'
             projects:
               - project-compare-type: 'REG_EXP'
-                project-pattern: 'functest|sdnvpn|qtip|daisy|sfc'
+                project-pattern: 'functest|sdnvpn|qtip|daisy|sfc|escalator'
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
index ccfe11e..fc77c2d 100644 (file)
@@ -23,6 +23,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -77,6 +78,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index 5c2dbff..682a8be 100755 (executable)
@@ -8,7 +8,7 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 #test for non-ascii characters, these can pass the test and end up breaking things in production
-for x in $(find . -name *\.yml); do
+for x in $(find . -name *\.yml -or -name *\.yaml); do
 
   if LC_ALL=C grep -q '[^[:print:][:space:]]' "$x"; then
     echo "file "$x" contains non-ascii characters"
index 026b643..4e72af5 100644 (file)
@@ -43,6 +43,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index c988c06..6dd3acf 100644 (file)
@@ -34,6 +34,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
index 5f952de..cda5128 100644 (file)
@@ -85,6 +85,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index abc6eeb..afa6b78 100644 (file)
@@ -45,6 +45,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - patchset-created-event:
                     exclude-drafts: 'false'
@@ -88,6 +89,7 @@
 
     triggers:
         - gerrit:
+            server-name: 'gerrit.opnfv.org'
             trigger-on:
                 - change-merged-event
                 - comment-added-contains-event:
index a0bc285..541a1f7 100644 (file)
@@ -53,7 +53,8 @@
       dib_imagename: "{{deploy_image}}"
       dib_os_element: "{{ lookup('env','DIB_OS_ELEMENT') }}"
       dib_os_release: "{{ lookup('env', 'DIB_OS_RELEASE') }}"
-      dib_elements: "vm serial-console simple-init devuser infra-cloud-bridge puppet growroot {{ extra_dib_elements|default('') }}"
+      extra_dib_elements: "{{ lookup('env', 'EXTRA_DIB_ELEMENTS') | default('') }}"
+      dib_elements: "vm serial-console simple-init devuser infra-cloud-bridge puppet growroot {{ extra_dib_elements }}"
       dib_packages: "{{ lookup('env', 'DIB_OS_PACKAGES') }}"
       when: create_image_via_dib | bool == true and transform_boot_image | bool == false
   environment:
index 32a0663..6e751fe 100755 (executable)
@@ -18,7 +18,7 @@ ENABLE_VENV="false"
 USE_DHCP="false"
 USE_VENV="false"
 BUILD_IMAGE=true
-PROVISION_WAIT_TIMEOUT=${PROVISION_WAIT_TIMEOUT:-2400}
+PROVISION_WAIT_TIMEOUT=${PROVISION_WAIT_TIMEOUT:-3600}
 
 # Set defaults for ansible command-line options to drive the different
 # tests.
@@ -65,6 +65,9 @@ export DIB_OS_ELEMENT=${DIB_OS_ELEMENT:-ubuntu-minimal}
 # for centos 7: "openssh-server,vim,less,bridge-utils,iputils,rsyslog,curl"
 export DIB_OS_PACKAGES=${DIB_OS_PACKAGES:-"openssh-server,vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl"}
 
+# Additional dib elements
+export EXTRA_DIB_ELEMENTS=${EXTRA_DIB_ELEMENTS:-}
+
 # Source Ansible
 # NOTE(TheJulia): Ansible stable-1.9 source method tosses an error deep
 # under the hood which -x will detect, so for this step, we need to suspend
diff --git a/utils/calculate_version.sh b/utils/calculate_version.sh
deleted file mode 100755 (executable)
index cf929dd..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# Calculates and generates the version tag for the OPNFV objects:
-#     - Docker images
-#     - ISOs
-#     - Artifacts
-
-info ()  {
-    logger -s -t "Calculate_version.info" "$*"
-}
-
-
-error () {
-    logger -s -t "Calculate_version.error" "$*"
-    exit 1
-}
-
-
-#Functions which calculate the version
-function docker_version() {
-    docker_image=$1
-    url_repo="https://registry.hub.docker.com/v2/repositories/${docker_image}/"
-    url_tag="https://registry.hub.docker.com/v2/repositories/${docker_image}/tags/"
-    status=$(curl -s --head -w %{http_code} ${url_repo} -o /dev/null)
-    if [ "${status}" != "200" ]; then
-        error "Cannot access ${url_repo}. Does the image ${docker_image} exist?"
-    fi
-    tag_json=$(curl $url_tag 2>/dev/null | python -mjson.tool | grep ${BASE_VERSION} | head -1)
-    #e.g. tag_json= "name": "brahmaputra.0.2",
-    #special case, for dovetail, not sync with release, tag_json name not headed with arno, etc
-    if [ "${tag_json}" == "" ]; then
-        echo ${BASE_VERSION}.0
-    else
-        tag=$(echo $tag_json | awk '{print $2}' | sed 's/\,//' | sed 's/\"//g')
-        #e.g.: tag=brahmaputra.0.2
-        #special case, for dovetail, not sync with release
-        tag_current_version=$(echo $tag | sed 's/.*\.//')
-        tag_new_version=$(($tag_current_version+1))
-        #e.g.: tag=brahmaputra.0.3
-        echo ${BASE_VERSION}.${tag_new_version}
-    fi
-}
-
-
-function artifact_version() {
-    # To be done
-    error "Not supported yet..."
-}
-
-
-STORAGE_TYPES=(docker artifactrepo)
-TYPE=""
-NAME=""
-
-
-usage="Calculates the version text of one of the following objects.
-
-usage:
-    bash $(basename "$0") [-h|--help] -t|--type docker|artifactrepo -n|--name <object_name>
-
-where:
-    -h|--help      show this help text
-    -t|--type      specify the storage location
-    -n|--name      name of the repository/object
-
-examples:
-    $(basename "$0") -t docker -n opnfv/functest
-    $(basename "$0") -t artifactrepo -n fuel"
-
-
-
-
-# Parse parameters
-while [[ $# > 0 ]]
-    do
-    key="$1"
-    case $key in
-        -h|--help)
-            echo "$usage"
-            exit 0
-            shift
-        ;;
-        -t|--type)
-            TYPE="$2"
-            shift
-        ;;
-        -n|--name)
-            NAME="$2"
-            shift
-        ;;
-        *)
-            error "unknown option $1"
-            exit 1
-        ;;
-    esac
-    shift # past argument or value
-done
-
-if [ -z "$BASE_VERSION" ]; then
-    error "Base version must be specified as environment variable. Ex.: export BASE_VERSION='brahmaputra.0'"
-fi
-
-if [ "${TYPE}" == "" ]; then
-    error "Please specify the type of object to get the version from. $usage"
-fi
-
-if [ "${NAME}" == "" ]; then
-    error "Please specify the name for the given storage type. $usage"
-fi
-
-not_in=1
-for i in "${STORAGE_TYPES[@]}"; do
-    if [[ "${TYPE}" == "$i" ]]; then
-        not_in=0
-    fi
-done
-if [ ${not_in} == 1 ]; then
-    error "Unknown type: ${TYPE}. Available storage types are: [${STORAGE_TYPES[@]}]"
-fi
-
-
-#info "Calculating version for object '${TYPE}' with arguments '${INFO}'..."
-if [ "${TYPE}" == "docker" ]; then
-    docker_version $NAME
-
-elif [ "${TYPE}" == "artifactrepo" ]; then
-    artifact_version $NAME
-fi
index 9ef4298..8337684 100755 (executable)
@@ -30,8 +30,6 @@ EOF
 }
 
 main () {
-    dir=$(cd $(dirname $0); pwd)
-
     #tests
     if [[ -z $jenkinsuser || -z $jenkinshome ]]; then
         echo "jenkinsuser or home not defined, please edit this file to define it"
@@ -60,17 +58,6 @@ main () {
       fi
     fi
 
-
-    if [ -d /etc/monit/conf.d ]; then
-        monitconfdir="/etc/monit/conf.d/"
-    elif [ -d /etc/monit.d ]; then
-        monitconfdir="/etc/monit.d"
-    else
-        echo "Could not determine the location of the monit configuration file."
-        echo "Make sure monit is installed."
-        exit 1
-    fi
-
     #make pid dir
     pidfile="/var/run/$jenkinsuser/jenkins_jnlp_pid"
     if ! [ -d /var/run/$jenkinsuser/ ]; then
@@ -94,29 +81,39 @@ main () {
                 exit 1
             fi
         fi
-    fi
 
-    makemonit () {
-        echo "Writing the following as monit config:"
+        if [ -d /etc/monit/conf.d ]; then
+            monitconfdir="/etc/monit/conf.d/"
+        elif [ -d /etc/monit.d ]; then
+            monitconfdir="/etc/monit.d"
+        else
+            echo "Could not determine the location of the monit configuration file."
+            echo "Make sure monit is installed."
+            exit 1
+        fi
+
+        makemonit () {
+            echo "Writing the following as monit config:"
         cat << EOF | tee $monitconfdir/jenkins
 check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid
-start program = "/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $dir; export started_monit=true; $0 $@' with timeout 60 seconds"
+start program = "/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds"
 stop program = "/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'"
 EOF
-    }
+        }
 
-    if [[ -f $monitconfdir/jenkins ]]; then
-        #test for diff
-        if [[ "$(diff $monitconfdir/jenkins <(echo "\
+        if [[ -f $monitconfdir/jenkins ]]; then
+            #test for diff
+            if [[ "$(diff $monitconfdir/jenkins <(echo "\
 check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid
-start program = \"/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $dir; export started_monit=true; $0 $@' with timeout 60 seconds\"
+start program = \"/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds\"
 stop program = \"/bin/bash -c '/bin/kill \$(/bin/cat /var/run/$jenkinsuser/jenkins_jnlp_pid)'\"\
 ") )" ]]; then
-            echo "Updating monit config..."
+                echo "Updating monit config..."
+                makemonit $@
+            fi
+        else
             makemonit $@
         fi
-    else
-        makemonit $@
     fi
 
 if [[ $started_monit == "true" ]]; then
@@ -167,7 +164,8 @@ usage: $0 [OPTIONS]
  -t  test the connection string by connecting without monit
  -f  test firewall
 
-Example: $0 -j /home/jenkins/ -u jenkins -n lab1 -s 727fdefoofoofoofoofoofoofof800
+Example: $0 -j /home/jenkins -u jenkins -n lab1 -s 727fdefoofoofoofoofoofoofof800
+note: a trailing slash on -j /home/jenkins will break the script
 EOF
 
     exit 1
index cb13b09..66bdd57 100755 (executable)
@@ -55,25 +55,25 @@ logger.info("*******************************************")
 # Retrieve test cases of Tier 1 (smoke)
 config_tiers = functest_yaml_config.get("tiers")
 
-# we consider Tier 1 (smoke),2 (sdn suites) and 3 (features)
+# we consider Tier 1 (smoke),2 (features)
 # to validate scenarios
 # Tier > 4 are not used to validate scenarios but we display the results anyway
 # tricky thing for the API as some tests are Functest tests
 # other tests are declared directly in the feature projects
 for tier in config_tiers:
-    if tier['order'] > 0 and tier['order'] < 3:
+    if tier['order'] > 0 and tier['order'] < 2:
         for case in tier['testcases']:
             if case['name'] not in blacklist:
                 testValid.append(tc.TestCase(case['name'],
                                              "functest",
                                              case['dependencies']))
-    elif tier['order'] == 3:
+    elif tier['order'] == 2:
         for case in tier['testcases']:
             if case['name'] not in blacklist:
                 testValid.append(tc.TestCase(case['name'],
                                              case['name'],
                                              case['dependencies']))
-    elif tier['order'] > 3:
+    elif tier['order'] > 2:
         for case in tier['testcases']:
             if case['name'] not in blacklist:
                 otherTestCases.append(tc.TestCase(case['name'],
index c9dce60..e1f2fb6 100644 (file)
@@ -41,7 +41,8 @@ class TestcaseUpdateRequest(object):
 
 @swagger.model()
 class Testcase(object):
-    def __init__(self):
+    def __init__(self, _id=None, name=None, project_name=None,
+                 description=None, url=None, creation_date=None):
         self._id = None
         self.name = None
         self.project_name = None