Merge "do not upload Apex artifacts when daily fails"
authorTim Rozet <trozet@redhat.com>
Mon, 30 Nov 2015 17:19:36 +0000 (17:19 +0000)
committerGerrit Code Review <gerrit@172.30.200.206>
Mon, 30 Nov 2015 17:19:36 +0000 (17:19 +0000)
48 files changed:
docs/etc/conf.py
docs/how-to-use-docs/documentation-example.rst
docs/how-to-use-docs/index.rst
docs/jenkins-job-builder/index.rst
docs/jenkins-job-builder/opnfv-jjb-usage.rst
jjb/apex/apex.yml
jjb/armband/armband.yml
jjb/availability/availability.yml
jjb/bottlenecks/bottlenecks.yml
jjb/bottlenecks/docu-build.sh [deleted file]
jjb/compass4nfv/compass4nfv.yml
jjb/conductor/conductor.yml
jjb/doctor/doctor.yml
jjb/dpacc/dpacc.yml
jjb/fastpathmetrics/fastpathmetrics.yml
jjb/fuel/fuel-build.sh
jjb/fuel/fuel-deploy-virtual.sh [new file with mode: 0755]
jjb/fuel/fuel-deploy.sh
jjb/fuel/fuel-virtual-deploy.sh [deleted file]
jjb/fuel/fuel.yml
jjb/functest/functest-docker.sh [deleted file]
jjb/functest/functest.yml
jjb/genesis/genesis-docs.yml
jjb/genesis/genesis-foreman.yml
jjb/genesis/genesis-fuel.yml
jjb/genesis/genesis-juju.yml
jjb/ipv6/ipv6.yml
jjb/kvmfornfv/kvmfornfv.yml
jjb/octopus/octopus.yml
jjb/opnfv/opnfv-docker.sh [new file with mode: 0644]
jjb/opnfv/opnfv-docker.yml [moved from jjb/functest/functest-docker.yml with 66% similarity]
jjb/opnfv/opnfv-docs.yml
jjb/oscar/oscar.yml
jjb/ovsnfv/ovsnfv.yml
jjb/parser/parser.yml
jjb/pharos/pharos.yml
jjb/prediction/prediction.yml
jjb/qtip/qtip.yml
jjb/releng-defaults.yaml
jjb/releng-jobs.yaml
jjb/releng-macros.yaml
jjb/storperf/storperf.yml
jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml
jjb/vswitchperf/vswitchperf.yml
jjb/yardstick/yardstick.yml
utils/docu-build-new.sh [deleted file]
utils/jenkins-jnlp-connect.sh
utils/test/result_collection_api/dashboard/vsperf2Dashboard.py [new file with mode: 0755]

index 6719653..f42b110 100644 (file)
@@ -1,27 +1,27 @@
-import datetime
-import sys
-import os
+'''
+Base configuration file for sphinx-build.
 
-needs_sphinx = '1.3'
+You can override this configuration by putting 'conf.py' in the document
+directory (e.g. how-to-use-docs/conf.py). If there is no 'conf.py' in the
+document directory, this file will be copied to that directory before the
+document builder jobs in 'opnfv-docs-verify' and 'opnfv-docs-merge'.
+The logo image (opnfv-logo.png) will be also copied from
+docs/etc/opnfv-logo.png during the build jobs.
+'''
 
-numfig = True
+import datetime
 
-source_suffix = '.rst'
+needs_sphinx = '1.3'
 master_doc = 'index'
 pygments_style = 'sphinx'
-html_use_index = False
 
-pdf_documents = [('index', u'Copper', u'Copper Project', u'OPNFV')]
-pdf_fit_mode = "shrink"
-pdf_stylesheets = ['sphinx','kerning','a4']
-#latex_domain_indices = False
-#latex_use_modindex = False
+html_use_index = False
+numfig = True
+html_logo = 'opnfv-logo.png'
 
-latex_elements = {
-    'printindex': '',
-}
+latex_elements = {'printindex': ''}
+latex_logo = 'opnfv-logo.png'
 
-project = u'Copper: Virtual Infrastructure Deployment Policies'
 copyright = u'%s, OPNFV' % datetime.date.today().year
 version = u'1.0.0'
 release = u'1.0.0'
index afcf758..e18ce59 100644 (file)
@@ -1,12 +1,3 @@
-.. two dots create a comment. please leave this logo at the top of each of your rst files.
-.. image:: ../etc/opnfv-logo.png 
-  :height: 40
-  :width: 200
-  :alt: OPNFV
-  :align: left
-.. these two pipes are to seperate the logo from the first title
-|
-|
 How to create documentation for your OPNFV project
 ==================================================
 
@@ -28,8 +19,9 @@ This index file must refence your other rst files.
 
 .. code-block:: bash
 
-  Example Documentation table of contents
-  =======================================
+  =====================
+  Example Documentation
+  =====================
 
   Contents:
 
@@ -39,10 +31,8 @@ This index file must refence your other rst files.
 
      documentation-example.rst
 
-  Indices and tables
-  ==================
-
-  * :ref:`search`
+  ..
+      Leave these at the bottom of 'index.rst' file
 
   Revision: _sha1_
 
@@ -55,11 +45,12 @@ The Sphinx Build
 When you push documentation changes to gerrit a jenkins job will create html documentation.
 
 * Verify Jobs
+
 For verify jobs a link to the documentation will show up as a comment in gerrit for you to see the result.
 
 * Merge jobs
 
-Once you are happy with the look of your documentation you can submit the patchset the merge job will 
+Once you are happy with the look of your documentation you can submit the patchset the merge job will
 copy the output of each documentation directory to http://artifacts.opnfv.org/$project/docs/$name_of_your_folder/index.html
 
 Here are some quick examples of how to use rst markup
@@ -77,10 +68,3 @@ links are easy to add: Here is a link to sphinx, the tool that we are using to g
 .. code-block:: bash
 
   echo "Heres is a code block with bash syntax highlighting"
-
-
-Leave these at the bottom of each of your documents they are used internally
-
-Revision: _sha1_
-
-Build date: |today|
index 36710b3..0965eb3 100644 (file)
@@ -1,18 +1,9 @@
-.. OPNFV Release Engineering documentation, created by
-   sphinx-quickstart on Tue Jun  9 19:12:31 2015.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
+..
+    This is new template created on Thu Nov 26 16:18:09 JST 2015
 
-.. image:: ../etc/opnfv-logo.png
-  :height: 40
-  :width: 200
-  :alt: OPNFV
-  :align: left
-
-Example Documentation table of contents
-=======================================
-
-Contents:
+=====================
+Example Documentation
+=====================
 
 .. toctree::
    :numbered:
@@ -20,10 +11,8 @@ Contents:
 
    documentation-example.rst
 
-Indices and tables
-==================
-
-* :ref:`search`
+..
+    Leave these at the bottom of 'index.rst' file
 
 Revision: _sha1_
 
index 1ea4a95..f8f5683 100644 (file)
@@ -1,33 +1,13 @@
-.. OPNFV Release Engineering documentation, created by
-   sphinx-quickstart on Tue Jun  9 19:12:31 2015.
-   You can adapt this file completely to your liking, but it should at least
-   contain the root `toctree` directive.
-
-.. image:: ../etc/opnfv-logo.png
-  :height: 40
-  :width: 200
-  :alt: OPNFV
-  :align: left
-
-|
-|
-
+===========================
 Release Engineering Project
 ===========================
 
-Contents:
-
 .. toctree::
    :numbered:
    :maxdepth: 8
 
    opnfv-jjb-usage.rst
 
-Indices and tables
-==================
-
-* :ref:`search`
-
 Revision: _sha1_
 
 Build date: |today|
index 8e4a1a8..4aecc6d 100644 (file)
@@ -1,12 +1,3 @@
-.. image:: ../etc/opnfv-logo.png
-  :height: 40
-  :width: 200
-  :alt: OPNFV
-  :align: left
-
-|
-|
-
 Creating/Configuring/Verifying Jenkins Jobs
 ============================================
 
@@ -69,22 +60,22 @@ The Current merge and verify jobs for jenkins job builder as pulled from the rep
      jobs:
          - 'builder-verify-jjb'
          - 'builder-merge'
+
      project: 'releng'
+
  - job-template:
      name: builder-verify-jjb
+
      node: master
+
      project-type: freestyle
+
      logrotate:
          daysToKeep: 30
          numToKeep: 10
          artifactDaysToKeep: -1
          artifactNumToKeep: -1
+
      parameters:
          - project-parameter:
              project: '{project}'
@@ -95,11 +86,11 @@ The Current merge and verify jobs for jenkins job builder as pulled from the rep
              credentials-id: '{ssh-credentials}'
              refspec: '$GERRIT_REFSPEC'
              choosing-strategy: 'gerrit'
+
      wrappers:
          - ssh-agent-credentials:
              user: '{ssh-credentials}'
+
      triggers:
          - gerrit:
              trigger-on:
@@ -123,45 +114,45 @@ The Current merge and verify jobs for jenkins job builder as pulled from the rep
                        pattern: jjb/**
                      - compare-type: ANT
                        pattern: jjb-templates/**
+
+
      builders:
          - shell:
              !include-raw verify-releng
+
  - job-template:
      name: 'builder-merge'
+
      node: master
+
      # builder-merge job to run JJB update
      #
      # This job's purpose is to update all the JJB
+
      project-type: freestyle
+
      logrotate:
          daysToKeep: 30
          numToKeep: 40
          artifactDaysToKeep: -1
          artifactNumToKeep: 5
+
      parameters:
          - project-parameter:
              project: '{project}'
          - gerrit-parameter:
              branch: 'master'
+
      scm:
          - gerrit-trigger-scm:
              credentials-id: '{ssh-credentials}'
              refspec: ''
              choosing-strategy: 'default'
+
      wrappers:
          - ssh-agent-credentials:
              user: '{ssh-credentials}'
+
      triggers:
          - gerrit:
              trigger-on:
@@ -177,17 +168,10 @@ The Current merge and verify jobs for jenkins job builder as pulled from the rep
                  file-paths:
                      - compare-type: ANT
                        pattern: jjb/**
+
      builders:
          - shell: |
                  source /opt/virtualenv/jenkins-job-builder/bin/activate
                  cd /opt/jenkins-ci/releng
                  git pull
                  jenkins-jobs update --delete-old jjb/
-
-
-Revision: _sha1_
-
-Build date: |today| 
index 60554b3..cb0a0f3 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - 'apex-{stream}'
 
         - 'apex-deploy-virtual'
         - 'apex-upload-artifact'
         - 'apex-workspace-cleanup'
+        - trigger-builds:
+          - project: 'functest-apex-{stream}'
+            block: true
+            block-thresholds:
+                build-step-failure-threshold: 'never'
+                failure-threshold: 'never'
+                unstable-threshold: 'FAILURE'
 
 ########################
 # parameter macros
index 021b365..81710d2 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 73c9050..6bb068b 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 0baf7ba..049a51e 100644 (file)
@@ -6,6 +6,8 @@
     jobs:
         - 'bottlenecks-test'
         - 'bottlenecks-verify'
+        - 'bottlenecks-daily-{stream}'
+        - 'bottlenecks-merge'
 
     # stream:    branch with - in place of / (eg. stable-arno)
     # branch:    branch (eg. stable/arno)
 
     project: 'bottlenecks'
     somevar: 'foo'
-
-########################
-# job templates
-########################
-
+###############################
+# Job templates
+##############################
 - job-template:
     name: 'bottlenecks-test'
 
         - shell: |
             echo "Hello world from bottlenecks"
 
+- job-template:
+    name: 'bottlenecks-daily-{stream}'
+
+    node: master
+
+    # Job template for daily builders
+    #
+    # Required Variables:
+    #     stream:    branch with - in place of / (eg. stable)
+    #     branch:    branch (eg. stable)
+
+    project-type: freestyle
+    varsetabove: '{somevar}'
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 10
+        artifactDaysToKeep: -1
+        artifactNumToKeep: -1
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+
+    scm:
+        - git-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            branch: '{branch}'
+
+    triggers:
+        - timed: 'H H * * *'
+
+    prebuilders:
+        - test-macro
+
+    builders:
+        - shell: |
+            echo "hello world"
+
+    postbuilders:
+        - test-macro
 
 - job-template:
     name: 'bottlenecks-verify'
             project: '{project}'
         - gerrit-parameter:
             branch: 'master'
-
     scm:
         - gerrit-trigger-scm:
             credentials-id: '{ssh-credentials}'
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                     branch-pattern: '**/master'
 
     builders:
-       - shell:
-            !include-raw docu-build.sh
+        - shell: |
+            echo "hello world"
+
+- job-template:
+    name: 'bottlenecks-merge'
+
+    node: master
+
+    # builder-merge job to run JJB update
+    #
+    # This job's purpose is to update all the JJB
+
+    project-type: freestyle
+
+    logrotate:
+        daysToKeep: 30
+        numToKeep: 40
+        artifactDaysToKeep: -1
+        artifactNumToKeep: 5
+
+    parameters:
+        - project-parameter:
+            project: '{project}'
+        - gerrit-parameter:
+            branch: 'master'
+
+    scm:
+        - gerrit-trigger-scm:
+            credentials-id: '{ssh-credentials}'
+            refspec: ''
+            choosing-strategy: 'default'
+
+    triggers:
+        - gerrit:
+            trigger-on:
+                - change-merged-event
+                - comment-added-contains-event:
+                    comment-contains-value: 'remerge'
+            projects:
+              - project-compare-type: 'ANT'
+                project-pattern: 'bottlenecks'
+                branches:
+                    - branch-compare-type: 'ANT'
+                      branch-pattern: '**/master'
+
+    builders:
+        - shell: |
+            echo "hello world"
+
diff --git a/jjb/bottlenecks/docu-build.sh b/jjb/bottlenecks/docu-build.sh
deleted file mode 100644 (file)
index c560692..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-set -e
-set -o pipefail
-
-project="$(git remote -v | head -n1 | awk '{{print $2}}' | sed -e 's,.*:\(.*/\)\?,,' -e 's/\.git$//')"
-export PATH=$PATH:/usr/local/bin/
-
-git_sha1="$(git rev-parse HEAD)"
-docu_build_date="$(date)"
-
-if [[ $JOB_NAME =~ "verify" ]] ; then
-      subdir="/$GERRIT_CHANGE_NUMBER"
-fi
-
-files=()
-while read -r -d ''; do
-       files+=("$REPLY")
-done < <(find * -type f -iname '*.rst' -print0)
-
-for file in "${{files[@]}}"; do
-
-       file_cut="${{file%.*}}"
-       gs_cp_folder="${{file_cut}}"
-
-       # sed part
-       sed -i "s/_sha1_/$git_sha1/g" $file
-       sed -i "s/_date_/$docu_build_date/g" $file
-
-       # rst2html part
-       echo "rst2html $file"
-       rst2html $file | gsutil cp -L gsoutput.txt - \
-       gs://artifacts.opnfv.org/"$project""$subdir"/"$gs_cp_folder".html
-       gsutil setmeta -h "Content-Type:text/html" \
-                       -h "Cache-Control:private, max-age=0, no-transform" \
-                       gs://artifacts.opnfv.org/"$project""$subdir"/"$gs_cp_folder".html
-       cat gsoutput.txt
-       rm -f gsoutput.txt
-
-       echo "rst2pdf $file"
-       rst2pdf $file -o - | gsutil cp -L gsoutput.txt - \
-       gs://artifacts.opnfv.org/"$project""$subdir"/"$gs_cp_folder".pdf
-       gsutil setmeta -h "Content-Type:application/pdf" \
-                       -h "Cache-Control:private, max-age=0, no-transform" \
-                       gs://artifacts.opnfv.org/"$project""$subdir"/"$gs_cp_folder".pdf
-       cat gsoutput.txt
-       rm -f gsoutput.txt
-
-  links+="http://artifacts.opnfv.org/"$project""$subdir"/"$gs_cp_folder".html \n"
-  links+="http://artifacts.opnfv.org/"$project""$subdir"/"$gs_cp_folder".pdf \n"
-
-done
-
-images=()
-while read -r -d ''; do
-        images+=("$REPLY")
-done < <(find * -type f \( -iname \*.jpg -o -iname \*.png \) -print0)
-
-for img in "${{images[@]}}"; do
-
-       # uploading found images
-       echo "uploading $img"
-        cat "$img" | gsutil cp -L gsoutput.txt - \
-        gs://artifacts.opnfv.org/"$project""$subdir"/"$img"
-        gsutil setmeta -h "Content-Type:image/jpeg" \
-                        -h "Cache-Control:private, max-age=0, no-transform" \
-                        gs://artifacts.opnfv.org/"$project""$subdir"/"$img"
-        cat gsoutput.txt
-        rm -f gsoutput.txt
-
-done
-
-if [[ $GERRIT_EVENT_TYPE = "change-merged" ]] ; then
-    subdir="/$GERRIT_CHANGE_NUMBER"
-    if [ ! -z "$subdir" ]; then
-      gsutil rm gs://artifacts.opnfv.org/"$project""$subdir"/** || true
-    fi
-fi
-
-echo -e "$links"
-
index 0732d16..0e41e1b 100644 (file)
@@ -76,9 +76,6 @@
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
 
     triggers:
         - gerrit:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 26abe45..01ccdaf 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index aa58664..ddc6efd 100644 (file)
     parameters:
         - project-parameter:
             project: '{project}'
-    wrappers:
-        - ssh-agent-credentials:
-            users:
-                - '{ssh-credentials}'
 
 - job-template:
     name: '{project}-verify'
index 2e46c55..d027f47 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 0facb10..6c7edaa 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index cffd867..00617ce 100755 (executable)
@@ -19,9 +19,16 @@ else
     export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
 fi
 
+NOCACHE_PATTERN="verify: no-cache"
+if [[ "$JOB_NAME" =~ "verify" && "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "$NOCACHE_PATTERN" ]]; then
+    echo "The cache will not be used for this build!"
+    NOCACHE_ARG="-f P"
+fi
+NOCACHE_ARG=${{NOCACHE_ARG:-}}
+
 # start the build
-cd $WORKSPACE/$INSTALLER/ci
-./build.sh -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
+cd $WORKSPACE/ci
+./build.sh -v $OPNFV_ARTIFACT_VERSION $NOCACHE_ARG -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
 
 # list the build artifacts
 ls -al $BUILD_DIRECTORY
diff --git a/jjb/fuel/fuel-deploy-virtual.sh b/jjb/fuel/fuel-deploy-virtual.sh
new file mode 100755 (executable)
index 0000000..a65395b
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+
+# source the file so we get OPNFV vars
+source latest.properties
+
+# echo the info about artifact that is used during the deployment
+echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f3) for deployment"
+
+# create TMPDIR if it doesn't exist
+export TMPDIR=$HOME/tmpdir
+[[ -d $TMPDIR ]] || mkdir -p $TMPDIR
+
+# change permissions down to TMPDIR
+chmod a+x $HOME
+chmod a+x $TMPDIR
+
+# set CONFDIR, BRIDGE
+CONFDIR=$WORKSPACE/deploy/templates/virtual_environment/conf
+BRIDGE=pxebr
+
+# log info to console
+echo "Starting the deployment for a merged change using $INSTALLER. This could take some time..."
+echo "--------------------------------------------------------"
+echo
+
+# start the deployment
+echo "Issuing command"
+echo "sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh"
+
+sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh
+
+echo
+echo "--------------------------------------------------------"
+echo "Virtual deployment is done! Removing the intermediate files from artifact repo"
+
+PROPERTIES_FILE=$(echo $OPNFV_ARTIFACT_URL | sed 's/iso/properties/')
+gsutil rm gs://$OPNFV_ARTIFACT_URL
+gsutil rm gs://$PROPERTIES_FILE
index 2ec5195..b617bcf 100755 (executable)
@@ -18,7 +18,7 @@ chmod a+x $HOME
 chmod a+x $TMPDIR
 
 # set CONFDIR, BRIDGE
-CONFDIR=$WORKSPACE/fuel/deploy/templates/hardware_environment/conf/linux_foundation_lab/pod2
+CONFDIR=$WORKSPACE/deploy/templates/hardware_environment/conf/linux_foundation_lab/pod2
 BRIDGE=pxebr
 
 # clone genesis repo and checkout the SR1 tag
@@ -41,9 +41,9 @@ echo
 
 # start the deployment
 echo "Issuing command"
-echo "sudo $WORKSPACE/fuel/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh"
+echo "sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh"
 
-sudo $WORKSPACE/fuel/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh
+sudo $WORKSPACE/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh
 
 echo
 echo "--------------------------------------------------------"
diff --git a/jjb/fuel/fuel-virtual-deploy.sh b/jjb/fuel/fuel-virtual-deploy.sh
deleted file mode 100755 (executable)
index 4e0b2dc..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-echo "Placeholder for Fuel virtual deploy"
index e809592..c0ba580 100644 (file)
@@ -12,7 +12,7 @@
     jobs:
         - 'fuel-verify-build-{stream}'
         - 'fuel-merge-build-{stream}'
-        - 'fuel-merge-virtual-deploy-{stream}'
+        - 'fuel-merge-deploy-virtual-{stream}'
         - 'fuel-daily-{stream}'
         - 'fuel-build-{stream}'
         - 'fuel-deploy-{stream}'
@@ -64,7 +64,7 @@
 
     wrappers:
         - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+            users: '{ssh-credentials}'
         - timeout:
             timeout: 360
             fail: true
@@ -87,6 +87,7 @@
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/{branch}'
+            readable-message: true
 
     builders:
         - shell:
 
     wrappers:
         - ssh-agent-credentials:
-            user: '{ssh-credentials}'
+            users: '{ssh-credentials}'
         - timeout:
             timeout: 360
             fail: true
             !include-raw ./fuel-workspace-cleanup.sh
 
 - job-template:
-    name: 'fuel-merge-virtual-deploy-{stream}'
+    name: 'fuel-merge-deploy-virtual-{stream}'
 
     project-type: freestyle
 
-    node: ericsson-build
+    node: fuel-deploy-virtual
 
     concurrent: true
 
         - shell:
             !include-raw ./fuel-download-artifact.sh
         - shell:
-            !include-raw ./fuel-virtual-deploy.sh
+            !include-raw ./fuel-deploy-virtual.sh
         - shell:
             !include-raw ./fuel-workspace-cleanup.sh
 
+    publishers:
+        - email:
+            recipients: jonas.bjurel@ericsson.com stefan.k.berg@ericsson.com
+
 - job-template:
     name: 'fuel-daily-{stream}'
 
diff --git a/jjb/functest/functest-docker.sh b/jjb/functest/functest-docker.sh
deleted file mode 100644 (file)
index c73bcf9..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-set -o errexit
-set -o nounset
-set -o pipefail
-
-
-echo "Starting the build of Functest Docker."
-echo "--------------------------------------------------------"
-echo
-
-DOCKER_IMAGE_NAME="opnfv/functest"
-
-
-# Get tag version
-cd $WORKSPACE
-git clone https://gerrit.opnfv.org/gerrit/releng
-
-DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
-    -n $DOCKER_IMAGE_NAME)
-
-ret_val=$?
-if [ $ret_val -ne 0 ]; then
-    echo "Error retrieving the version tag."
-    exit 1
-else
-    echo "Tag version to be build and pushed: $DOCKER_TAG"
-fi
-
-
-# Remove previous running containers if exist
-if [[ ! -z $(docker ps -a | grep $DOCKER_IMAGE_NAME) ]]; then
-    echo "Removing existing $DOCKER_IMAGE_NAME containers..."
-    docker ps | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker stop
-    docker ps -a | grep $DOCKER_IMAGE_NAME | awk '{{print $1}}' | xargs docker rm
-fi
-
-
-# Remove existing images if exist
-if [[ ! -z $(docker images | grep $DOCKER_IMAGE_NAME) ]]; then
-    echo "Docker images to remove:"
-    docker images | head -1 && docker images | grep $DOCKER_IMAGE_NAME
-    image_tags=($(docker images | grep $DOCKER_IMAGE_NAME | awk '{{print $2}}'))
-    for tag in "${{image_tags[@]}}"; do
-        echo "Removing docker image $DOCKER_IMAGE_NAME:$tag..."
-        docker rmi $DOCKER_IMAGE_NAME:$tag
-    done
-fi
-
-
-# Start the build
-echo "Building docker image: $DOCKER_IMAGE_NAME:$DOCKER_TAG..."
-cd $WORKSPACE/docker
-docker build -t $DOCKER_IMAGE_NAME:$DOCKER_TAG .
-echo "Creating tag 'latest'..."
-docker tag $DOCKER_IMAGE_NAME:$DOCKER_TAG $DOCKER_IMAGE_NAME:latest
-
-# list the images
-echo "Available images are:"
-docker images
-
-
-if [ "$PUSH_IMAGE" == "true" ]; then
-    echo "Pushing $DOCKER_IMAGE_NAME:$DOCKER_TAG to the docker registry..."
-    echo "--------------------------------------------------------"
-    echo
-    # Push to the Dockerhub repository
-    docker push $DOCKER_IMAGE_NAME:$DOCKER_TAG
-
-    echo "Updating $DOCKER_IMAGE_NAME:latest to the docker registry..."
-    docker push $DOCKER_IMAGE_NAME:latest
-fi
index 4df779d..47024e2 100644 (file)
@@ -9,18 +9,19 @@
             node: 'opnfv-jump-2'
             installer_type: 'fuel'
             installer_ip: '10.20.0.2'
-            functest_repo_dir:  '/home/opnfv/repos/functest'
         - foreman:
             node: 'opnfv-jump-2'
             installer_type: 'foreman'
             installer_ip: '172.30.10.73'
-            functest_repo_dir:  '/home/opnfv/repos/functest'
+        - apex:
+            node: 'opnfv-jump-1'
+            installer_type: 'apex'
+            installer_ip: '192.168.X.X'
     pod:
         - orange-build:
             node: 'orange-build'
             installer_type: 'foreman'
             installer_ip: '172.30.10.73'
-            functest_repo_dir:  '/home/opnfv/repos/functest'
 
     jobs:
         - 'set-functest-env-{pod}'
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
             name: INSTALLER_IP
             default: '{installer_ip}'
             description: "Installer IP."
-        - string:
-            name: FUNCTEST_REPO_DIR
-            default: '{functest_repo_dir}'
-            description: "Directory where the root functest repo is cloned in the docker."
         - '{pod}'
 
     scm:
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
             name: INSTALLER_IP
             default: '{installer_ip}'
             description: "Installer IP."
-        - string:
-            name: FUNCTEST_REPO_DIR
-            default: '{functest_repo_dir}'
-            description: "Directory where the root functest repo is cloned in the docker."
         - string:
             name: GIT_BASE
             default: ssh://gerrit.opnfv.org:29418/$PROJECT
     parameters:
         - project-parameter:
             project: '{project}'
+        - functest-parameter
         - string:
             name: INSTALLER_TYPE
             default: '{installer_type}'
             name: INSTALLER_IP
             default: '{installer_ip}'
             description: "Installer IP."
-        - string:
-            name: FUNCTEST_REPO_DIR
-            default: '{functest_repo_dir}'
-            description: "Directory where the root functest repo is cloned in the docker."
         - string:
             name: GIT_BASE
             default: ssh://gerrit.opnfv.org:29418/$PROJECT
             refspec: ''
             branch: '{stream}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - 'functest-{stream}'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             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"
 
 - parameter:
     name: orange-build
         - shell: |
             #!/bin/bash
             set +e
-
+            if [[ ${INSTALLER_TYPE} == 'apex' ]]; then
+                INSTALLER_IP=$(cat instack /var/lib/libvirt/dnsmasq/default.leases \
+                    |sed 's/.*192/192/g' | sed 's/\ in.*//g')
+            fi
             echo "Functest: Start Docker and prepare environment"
             envs="INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP}"
             docker pull opnfv/functest:latest_stable
     builders:
         - shell: |
             #!/bin/bash
-            set +e
 
-            # cleanup: remove any docker containers leftovers
-            echo "Removing existing Functest Docker containers..."
-            docker rm -f $(docker ps | grep opnfv/functest | awk '{print $1}')
-            echo "Removing existing Functest Docker image..."
-            docker rmi -f $(docker images | grep opnfv/functest | awk '{print $3}')
+            echo "Cleaning up docker containers/images..."
+
+            # Remove previous running containers if exist
+            if [[ ! -z $(docker ps -a | grep opnfv/functest) ]]; then
+                echo "Removing existing opnfv/functest containers..."
+                docker ps | grep opnfv/functest | awk '{print $1}' | xargs docker stop
+                docker ps -a | grep opnfv/functest | awk '{print $1}' | xargs docker rm
+            fi
+
+
+            # Remove existing images if exist
+            if [[ ! -z $(docker images | grep opnfv/functest) ]]; then
+                echo "Docker images to remove:"
+                docker images | head -1 && docker images | grep opnfv/functest
+                image_tags=($(docker images | grep opnfv/functest | awk '{print $2}'))
+                for tag in "${image_tags[@]}"; do
+                    echo "Removing docker image opnfv/functest:$tag..."
+                    docker rmi opnfv/functest:$tag
+                done
+            fi
index 6a1a804..7f78337 100644 (file)
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
 
     triggers:
         - gerrit:
index e9dfa8c..69a69d3 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index a957a69..04dcfcd 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 8e17a7b..3ecb74c 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 5957a93..7d19830 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 345edca..69dad77 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index e11ccc5..5f77e8a 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - 'octopus-{stream}'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
 
     triggers:
         - gerrit:
diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh
new file mode 100644 (file)
index 0000000..2b42938
--- /dev/null
@@ -0,0 +1,93 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+
+
+echo "Starting opnfv-docker for $DOCKER_REPO_NAME ..."
+echo "--------------------------------------------------------"
+echo
+
+
+# Remove previous running containers if exist
+if [[ ! -z $(docker ps -a | grep $DOCKER_REPO_NAME) ]]; then
+    echo "Removing existing $DOCKER_REPO_NAME containers..."
+    docker ps | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker stop
+    docker ps -a | grep $DOCKER_REPO_NAME | awk '{{print $1}}' | xargs docker rm
+fi
+
+
+# Remove existing images if exist
+if [[ ! -z $(docker images | grep $DOCKER_REPO_NAME) ]]; then
+    echo "Docker images to remove:"
+    docker images | head -1 && docker images | grep $DOCKER_REPO_NAME
+    image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{{print $2}}'))
+    for tag in "${{image_tags[@]}}"; do
+        echo "Removing docker image $DOCKER_REPO_NAME:$tag..."
+        docker rmi $DOCKER_REPO_NAME:$tag
+    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
+
+
+# Get tag version
+cd $WORKSPACE
+git clone https://gerrit.opnfv.org/gerrit/releng
+
+DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
+    -n $DOCKER_REPO_NAME)
+
+ret_val=$?
+if [ $ret_val -ne 0 ]; then
+    echo "Error retrieving the version tag."
+    exit 1
+else
+    echo "Tag version to be build and pushed: $DOCKER_TAG"
+fi
+
+
+# cd to directory where Dockerfile is located
+if [[ "$DOCKER_REPO_NAME" == "opnfv/functest" ]]; then
+    cd $WORKSPACE/docker
+elif [[ "$DOCKER_REPO_NAME" == "opnfv/yardstick" ]]; then
+    cd $WORKSPACE/ci/docker/yardstick-ci
+else
+    echo "ERROR: DOCKER_REPO_NAME parameter not valid: $DOCKER_REPO_NAME"
+    exit 1
+fi
+
+# Start the build
+echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG..."
+
+docker build -t $DOCKER_REPO_NAME:$DOCKER_TAG .
+echo "Creating tag 'latest'..."
+docker tag $DOCKER_REPO_NAME:$DOCKER_TAG $DOCKER_REPO_NAME:latest
+
+# list the images
+echo "Available images are:"
+docker images
+
+# Push image to Dockerhub
+if [[ "$PUSH_IMAGE" == "true" ]]; then
+    echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG to the docker registry..."
+    echo "--------------------------------------------------------"
+    echo
+    # Push to the Dockerhub repository
+    docker push $DOCKER_REPO_NAME:$DOCKER_TAG
+
+    echo "Updating $DOCKER_REPO_NAME:latest to the docker registry..."
+    docker push $DOCKER_REPO_NAME:latest
+fi
similarity index 66%
rename from jjb/functest/functest-docker.yml
rename to jjb/opnfv/opnfv-docker.yml
index ee5adc6..dfff050 100644 (file)
@@ -1,15 +1,17 @@
 ##############################################
-# job configuration for functest docker build
+# job configuration for docker build and push
 ##############################################
 
 - project:
 
-    name: functest-docker
+    name: opnfv-docker
 
-    project: 'functest'
+    project:
+        - 'functest'
+        - 'yardstick'
 
     jobs:
-        - 'functest-docker-build-push-{stream}'
+        - '{project}-docker-build-push-{stream}'
 
     stream:
         - master:
@@ -18,9 +20,8 @@
 ########################
 # job templates
 ########################
-
 - job-template:
-    name: 'functest-docker-build-push-{stream}'
+    name: '{project}-docker-build-push-{stream}'
 
     project-type: freestyle
 
     parameters:
         - project-parameter:
             project: '{project}'
-        - functest-docker-parameter
-
+        - string:
+            name: GIT_BASE
+            default: "https://gerrit.opnfv.org/gerrit/$PROJECT"
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
+        - string:
+            name: PUSH_IMAGE
+            default: "true"
+            description: "To enable/disable pushing the image to Dockerhub."
+        - string:
+            name: BASE_VERSION
+            default: "brahmaputra.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:
 
     builders:
         - shell:
-            !include-raw ./functest-docker.sh
+            !include-raw ./opnfv-docker.sh
 
     triggers:
         - pollscm: "*/30 * * * *"
-
-
-########################
-# parameter macros
-########################
-- parameter:
-    name: functest-docker-parameter
-    parameters:
-        - string:
-            name: GIT_BASE
-            default: "https://gerrit.opnfv.org/gerrit/$PROJECT"
-            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
-        - string:
-            name: PUSH_IMAGE
-            default: "true"
-            description: "To enable/disable pushing the image to Dockerhub."
-        - string:
-            name: BASE_VERSION
-            default: "brahmaputra.0"
-            description: "Base version to be used."
index efb6b5b..f7e4c5b 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
@@ -65,7 +61,7 @@
             projects:
               - project-compare-type: 'REG_EXP'
 #Left out arno projects oscar|octopus|functest|genesis
-                project-pattern: 'vswitchperf|yardstick|apex|availability|bottlenecks|compass4nfv|conductor|copper|doctor|dovetail|dpacc|escalator|fastpathmetrics|fuel|inspector|ipv6|joid|kvmfornfv|lsoapi|moon|movie|multisite|onosfw|ovsnfv|parser|prediction|promise|qtip|releng|rs|sfc|vnf_forwarding_graph|enfv|pinpoint|pharos|opnfvdocs'
+                project-pattern: 'vswitchperf|yardstick|apex|availability|bottlenecks|compass4nfv|conductor|copper|doctor|dovetail|dpacc|escalator|fastpathmetrics|fuel|inspector|ipv6|joid|kvmfornfv|lsoapi|moon|movie|multisite|onosfw|ovsnfv|parser|prediction|promise|qtip|releng|rs|sdnvpn|sfc|vnf_forwarding_graph|enfv|pinpoint|pharos|opnfvdocs'
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/master'
@@ -74,8 +70,7 @@
                     pattern: 'docs/**'
 
     builders:
-       - shell:
-           !include-raw ../../utils/docu-build-new.sh
+        - upload-review-docs
 
 - job-template:
     name: 'opnfv-docs-merge'
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
 
     triggers:
         - gerrit:
                     comment-contains-value: 'remerge'
             projects:
               - project-compare-type: 'REG_EXP'
-                project-pattern: 'vswitchperf|yardstick|apex|availability|bottlenecks|compass4nfv|conductor|copper|doctor|dovetail|dpacc|escalator|fastpathmetrics|fuel|inspector|ipv6|joid|kvmfornfv|lsoapi|moon|movie|multisite|onosfw|ovsnfv|parser|prediction|promise|qtip|releng|rs|sfc|vnf_forwarding_graph|enfv|pinpoint|pharos|opnfvdocs'
+                project-pattern: 'vswitchperf|yardstick|apex|availability|bottlenecks|compass4nfv|conductor|copper|doctor|dovetail|dpacc|escalator|fastpathmetrics|fuel|inspector|ipv6|joid|kvmfornfv|lsoapi|moon|movie|multisite|onosfw|ovsnfv|parser|prediction|promise|qtip|releng|rs|sdnvpn|sfc|vnf_forwarding_graph|enfv|pinpoint|pharos|opnfvdocs'
                 branches:
                   - branch-compare-type: 'ANT'
                     branch-pattern: '**/master'
                     pattern: 'docs/**'
 
     builders:
-       - shell:
-           !include-raw ../../utils/docu-build-new.sh
+        - upload-merged-docs
index 6585feb..9beb575 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index f7dd1ce..1c5810a 100644 (file)
@@ -1,12 +1,10 @@
 - project:
     name: ovsnfv
     jobs:
-        - 'ovsnfv-verify'
-        - 'ovsnfv-merge'
+        - 'ovsnfv-verify-{stream}'
+        - 'ovsnfv-merge-{stream}'
         - 'ovsnfv-daily-{stream}'
 
-    # stream:    branch with - in place of / (eg. stable-arno)
-    # branch:    branch (eg. stable/arno)
     stream:
         - master:
             branch: 'master'
@@ -14,9 +12,9 @@
     project: 'ovsnfv'
 
 - job-template:
-    name: 'ovsnfv-verify'
+    name: 'ovsnfv-verify-{stream}'
 
-    node: ericsson-build
+    node: opnfv-build
 
     project-type: freestyle
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                     branch-pattern: '**/master'
 
     builders:
-        - shell:
-            echo "Hello World"
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
 
-- job-template:
-    name: 'ovsnfv-merge'
+            cd $WORKSPACE/ci
+            ./build.sh
 
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
+- job-template:
+    name: 'ovsnfv-merge-{stream}'
 
-    node: master
+    node: opnfv-build
 
     project-type: freestyle
 
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                       branch-pattern: '**/master'
 
     builders:
-        - shell:
-            echo "Hello World"
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+
+            cd $WORKSPACE/ci
+            ./build.sh
 
 
 - job-template:
     name: 'ovsnfv-daily-{stream}'
 
-    # Job template for daily builders
-    #
-    # Required Variables:
-    #     stream:    branch with - in place of / (eg. stable)
-    #     branch:    branch (eg. stable)
-    node: master
+    node: opnfv-build
 
     disabled: true
 
     parameters:
         - project-parameter:
             project: '{project}'
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
 
     scm:
         - git-scm:
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
-        - timed: 'H H * * *'
+        - timed: '@midnight'
 
     builders:
-        - shell:
-             echo "Hello World"
+        - shell: |
+            #!/bin/bash
+            set -o errexit
+            set -o nounset
+            set -o pipefail
+
+            cd $WORKSPACE/ci
+            ./build.sh
index 4e9b251..22324c5 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                     branch-pattern: '**/master'
 
     builders:
-        - shell:
-            !include-raw docu-build.sh
+        - shell: |
+            echo "Hello world from parser"
 
 - job-template:
     name: 'parser-merge'
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
 
     triggers:
         - gerrit:
index c763899..ab6705b 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - 'pharos-{stream}'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 7f7dd3b..072affd 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
 
     triggers:
         - gerrit:
index e874088..0b863f7 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index a78a37e..3ba2a23 100644 (file)
@@ -9,4 +9,7 @@
     build-artifact-num-to-keep: 5
 
     ssh-credentials: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
-
+    wrappers:
+        - ssh-agent-credentials:
+            users:
+                - '{ssh-credentials}'
index d732b1f..6194bcd 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
@@ -59,9 +55,6 @@
                       pattern: jjb-templates/**
                     - compare-type: ANT
                       pattern: utils/**
-                forbidden-file-paths:
-                    - compare-type: ANT
-                      pattern: docs/**
 
 
     builders:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
                       pattern: jjb/**
                     - compare-type: ANT
                       pattern: utils/**
-                forbidden-file-paths:
-                    - compare-type: ANT
-                      pattern: docs/**
 
     builders:
         - shell: |
index 2c694c8..3afe848 100644 (file)
     name: jacoco-nojava-workaround
     builders:
         - shell: 'mkdir -p $WORKSPACE/target/classes'
+
+
+# New Releng macros
+
+- builder:
+    name: build-html-and-pdf-docs-output
+    builders:
+        - shell: |
+            #!/bin/bash -e
+            set -o pipefail
+            export PATH=$PATH:/usr/local/bin/
+
+            [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
+
+            _get_title_script="
+            import os
+            from docutils import core, nodes
+            with open('index.rst', 'r') as file:
+                data = file.read()
+            doctree = core.publish_doctree(data,
+                settings_overrides={'report_level': 5,
+                                    'halt_level': 5})
+            if isinstance(doctree[0], nodes.title):
+                title = doctree[0]
+            else:
+                for c in doctree.children:
+                    if isinstance(c, nodes.section):
+                        title = c[0]
+                        break
+            print title.astext()"
+            _git_sha1="$(git rev-parse HEAD)"
+
+            git clone ssh://gerrit.opnfv.org:29418/releng
+            [[ -d releng ]]
+
+            find docs/ -name 'index.rst' -printf '%h\n' | while read dir
+            do
+                _name="${dir##*/}"
+                _build="$dir/build"
+                _output="docs/output/$_name"
+
+                echo
+                echo "#################${dir//?/#}"
+                echo "Building DOCS in $dir"
+                echo "#################${dir//?/#}"
+                echo
+
+                sed -i "s/_sha1_/$_git_sha1/g" "$dir/index.rst"
+
+                if [[ ! -f "$dir/conf.py" ]] ; then
+                    cp releng/docs/etc/conf.py "$dir/conf.py"
+                    _title=$(cd $dir; python -c "$_get_title_script")
+                    echo "latex_documents = [('index', '$_name.tex', \"$_title\", 'OPNFV', 'manual'),]" >> "$dir/conf.py"
+                fi
+                cp -f releng/docs/etc/opnfv-logo.png "$dir/opnfv-logo.png"
+
+                mkdir -p "$_output"
+
+                sphinx-build -b html -E "$dir" "$_output"
+
+                # Note: PDF creation may fail in project doc builds.
+                #       We allow this test to be marked as succeeded with
+                #       failure in PDF creation, but leave message to fix it.
+                #       Any failure has to be fixed before B release.
+                {
+                    sphinx-build -b latex -E "$dir" "$_build"
+                    make -C "$_build" LATEXOPTS='--interaction=nonstopmode' all-pdf
+                    mv "$_build/$_name.pdf" "$_output"
+                } || {
+                    _msg="Error: PDF creation for $dir has failed, please fix source rst file(s)."
+                    echo
+                    echo "$_msg"
+                    echo
+                    echo "$_msg" >> gerrit_comment.txt
+                }
+            done
+
+- builder:
+    name: upload-under-review-docs-to-opnfv-artifacts
+    builders:
+        - shell: |
+            #!/bin/bash -e
+            set -o pipefail
+            export PATH=$PATH:/usr/local/bin/
+
+            [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
+            [[ -d docs/output ]]
+
+            echo
+            echo "###########################"
+            echo "UPLOADING DOCS UNDER REVIEW"
+            echo "###########################"
+            echo
+
+            gs_base="artifacts.opnfv.org/review"
+            gs_path="$gs_base/$GERRIT_CHANGE_NUMBER"
+            local_path="docs/$GERRIT_CHANGE_NUMBER"
+
+            mv docs/output "$local_path"
+            gsutil -m cp -r "$local_path" "gs://$gs_base"
+
+            if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
+                gsutil -m setmeta \
+                    -h "Content-Type:text/html" \
+                    -h "Cache-Control:private, max-age=0, no-transform" \
+                    "gs://$gs_path"/**.html
+            fi
+
+            echo "Document link(s):" >> gerrit_comment.txt
+            find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
+                sed -e "s|^$local_path|    http://$gs_path|" >> gerrit_comment.txt
+
+- builder:
+    name: upload-merged-docs-to-opnfv-artifacts
+    builders:
+        - shell: |
+            #!/bin/bash -e
+            set -o pipefail
+            export PATH=$PATH:/usr/local/bin/
+
+            [[ -d docs/output ]]
+
+            echo
+            echo "#####################"
+            echo "UPLOADING MERGED DOCS"
+            echo "#####################"
+            echo
+
+            if [[ "$GERRIT_BRANCH" == "master" ]] ; then
+                gs_base="artifacts.opnfv.org/$GERRIT_PROJECT"
+            else
+                gs_base="artifacts.opnfv.org/$GERRIT_PROJECT/$GERRIT_BRANCH"
+            fi
+            gs_path="$gs_base/docs"
+            local_path="docs/docs"
+
+            mv docs/output "$local_path"
+            gsutil -m cp -r "$local_path" "gs://$gs_base"
+
+            if gsutil ls "gs://$gs_path" | grep -e 'html$' > /dev/null 2>&1 ; then
+                gsutil -m setmeta \
+                    -h "Content-Type:text/html" \
+                    -h "Cache-Control:private, max-age=0, no-transform" \
+                    "gs://$gs_path"/**.html
+            fi
+
+            echo "Document link(s):" >> gerrit_comment.txt
+            find "$local_path" | grep -e 'index.html$' -e 'pdf$' | \
+                sed -e "s|^$local_path|    http://$gs_path|" >> gerrit_comment.txt
+
+- builder:
+    name: report-docs-build-result-to-gerrit
+    builders:
+        - shell: |
+            #!/bin/bash -e
+            export PATH=$PATH:/usr/local/bin/
+            if [[ -e gerrit_comment.txt ]] ; then
+                echo
+                echo "posting review comment to gerrit..."
+                echo
+                cat gerrit_comment.txt
+                echo
+                ssh -p 29418 gerrit.opnfv.org \
+                    "gerrit review -p $GERRIT_PROJECT \
+                     -m '$(cat gerrit_comment.txt)' \
+                     $GERRIT_PATCHSET_REVISION"
+            fi
+
+- builder:
+    name: remove-old-docs-from-opnfv-artifacts
+    builders:
+        - shell: |
+            #!/bin/bash -e
+            export PATH=$PATH:/usr/local/bin/
+
+            [[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
+
+            gs_path="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
+
+            if gsutil ls "gs://$gs_path" > /dev/null 2>&1 ; then
+                echo
+                echo "Deleting Out-of-dated Documents..."
+                gsutil -m rm -r "gs://$gs_path"
+            fi
+
+- builder:
+    name: upload-review-docs
+    builders:
+        - build-html-and-pdf-docs-output
+        - upload-under-review-docs-to-opnfv-artifacts
+        - report-docs-build-result-to-gerrit
+
+- builder:
+    name: upload-merged-docs
+    builders:
+        - build-html-and-pdf-docs-output
+        - upload-merged-docs-to-opnfv-artifacts
+        - report-docs-build-result-to-gerrit
+        - remove-old-docs-from-opnfv-artifacts
index f1250cb..2a3c42a 100644 (file)
@@ -1,8 +1,8 @@
 - project:
     name: storperf
     jobs:
-        - 'storperf-verify'
-        - 'storperf-merge'
+        - 'storperf-verify-{stream}'
+        - 'storperf-merge-{stream}'
         - 'storperf-daily-{stream}'
 
     # stream:    branch with - in place of / (eg. stable-arno)
@@ -14,9 +14,9 @@
     project: 'storperf'
 
 - job-template:
-    name: 'storperf-verify'
+    name: 'storperf-verify-{stream}'
 
-    node: ericsson-build
+    node: intel-jp-build-1
 
     project-type: freestyle
 
             project: '{project}'
         - gerrit-parameter:
             branch: 'master'
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
 
     scm:
         - gerrit-trigger-scm:
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
 
 
 - job-template:
-    name: 'storperf-merge'
+    name: 'storperf-merge-{stream}'
 
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
-    node: ericsson-build
+    node: intel-jp-build-1
 
     project-type: freestyle
 
             project: '{project}'
         - gerrit-parameter:
             branch: 'master'
+        - string:
+            name: GIT_BASE
+            default: https://gerrit.opnfv.org/gerrit/$PROJECT
+            description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
 
     scm:
         - gerrit-trigger-scm:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
     # Required Variables:
     #     stream:    branch with - in place of / (eg. stable)
     #     branch:    branch (eg. stable)
-    node: ericsson-build
+    node: intel-jp-build-1
 
     disabled: true
 
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
index 67c9ebb..0d7e8b7 100644 (file)
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 07ce114..9f767ce 100644 (file)
@@ -1,10 +1,9 @@
 - project:
     name: vswitchperf
     jobs:
-        - 'vswitchperf-test'
         - 'vswitchperf-daily-{stream}'
-        - 'vswitchperf-merge'
-        - 'vswitchperf-verify'
+        - 'vswitchperf-merge-{stream}'
+        - 'vswitchperf-verify-{stream}'
 
     # stream:    branch with - in place of / (eg. stable-helium)
     # branch:    branch (eg. stable/helium)
     project: 'vswitchperf'
     somevar: 'foo'
 
-- job-template:
-    name: vswitchperf-test
-
-    project-type: freestyle
-
-    logrotate:
-        daysToKeep: 30
-        numToKeep: 10
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
-    builders:
-        - shell: |
-            echo "Hello world from vswitchperf"
 
 - job-template:
     name: 'vswitchperf-daily-{stream}'
@@ -41,7 +26,7 @@
 
     project-type: freestyle
     varsetabove: '{somevar}'
-    node: ericsson-build
+    node: opnfv-build
 
     logrotate:
         daysToKeep: '{build-days-to-keep}'
             refspec: ''
             branch: '{branch}'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - timed: 'H H * * *'
 
         - test-macro
 
 - job-template:
-    name: 'vswitchperf-verify'
+    name: 'vswitchperf-verify-{stream}'
 
     project-type: freestyle
-    node: ericsson-build
+
+    node: opnfv-build
+
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 3
+            max-per-node: 2
 
     logrotate:
         daysToKeep: 30
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             make sanity
 
 - job-template:
-    name: 'vswitchperf-merge'
+    name: 'vswitchperf-merge-{stream}'
 
     # builder-merge job to run JJB update
     #
     # This job's purpose is to update all the JJB
 
     project-type: freestyle
-    node: ericsson-build
+
+    node: opnfv-build
+
+    concurrent: true
+
+    properties:
+        - throttle:
+            enabled: true
+            max-total: 3
+            max-per-node: 2
 
     logrotate:
         daysToKeep: 30
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
index 60344fa..5afaaf7 100644 (file)
             refspec: '$GERRIT_REFSPEC'
             choosing-strategy: 'gerrit'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
             refspec: ''
             choosing-strategy: 'default'
 
-    wrappers:
-        - ssh-agent-credentials:
-            user: '{ssh-credentials}'
-
     triggers:
         - gerrit:
             trigger-on:
diff --git a/utils/docu-build-new.sh b/utils/docu-build-new.sh
deleted file mode 100755 (executable)
index 67a62e3..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-set -e
-set -o pipefail
-
-export PATH=$PATH:/usr/local/bin/
-git_sha1="$(git rev-parse HEAD)"
-
-clean() {{
-if [[ -d docs/output ]]; then
-rm -rf docs/output
-echo "cleaning up output directory"
-fi
-}}
-
-trap clean EXIT TERM INT SIGTERM SIGHUP
-
-#set git_sha1
-files=()
-while read -r -d ''; do
-  files+=("$REPLY")
-done < <(find docs/ -type f -iname '*.rst' -print0)
-for file in "${{files[@]}}"; do
-  sed -i "s/_sha1_/$git_sha1/g" $file
-done
-
-directories=()
-while read -d $'\n'; do
-  directories+=("$REPLY")
-done < <(find docs/ -name 'index.rst' -printf '%h\n' | sort -u )
-
-for dir in "${{directories[@]}}"; do
-  _name="${{dir##*/}}"
-  _build="${{dir}}/build"
-  _output="docs/output/${{_name}}"
-  echo
-  echo "#################${{_name//?/#}}"
-  echo "Building DOCS in ${{_name}}"
-  echo "#################${{_name//?/#}}"
-  echo
-
-  mkdir -p "${{_output}}"
-
-  sphinx-build -b html -E -c docs/etc "${{dir}}" "${{_output}}"
-
-  sphinx-build -b latex -E -c docs/etc "${{dir}}" "${{_build}}"
-  make -C "${{_build}}" LATEXOPTS='--interaction=nonstopmode' all-pdf
-  mv "${{_build}}"/*.pdf "${{_output}}"
-
-done
-
-# NOTE: make sure source parameters for GS paths are not empty.
-[[ $GERRIT_CHANGE_NUMBER =~ .+ ]]
-[[ $GERRIT_PROJECT =~ .+ ]]
-[[ $GERRIT_BRANCH =~ .+ ]]
-
-gs_path_review="artifacts.opnfv.org/review/$GERRIT_CHANGE_NUMBER"
-
-if [[ $GERRIT_BRANCH = "master" ]] ; then
-  gs_path_branch="artifacts.opnfv.org/$GERRIT_PROJECT"
-else
-  gs_path_branch="artifacts.opnfv.org/$GERRIT_PROJECT/${{GERRIT_BRANCH##*/}}"
-fi
-
-for dir in "${{directories[@]}}"; do
-  echo
-  echo "#############################"
-  echo "UPLOADING DOCS in ${{dir##*/}}"
-  echo "#############################"
-  echo
-
-
-  if [[ $JOB_NAME =~ "verify" ]] ; then
-
-    #upload artifacts for verify job
-    gsutil cp -r docs/output/"${{dir##*/}}/" "gs://$gs_path_review/"
-
-    # post link to gerrit as comment
-    gerrit_comment="$(echo '"Document is available at 'http://$gs_path_review/"${{dir##*/}}"/index.html' for review"')"
-    echo "$gerrit_comment"
-    ssh -p 29418 gerrit.opnfv.org gerrit review -p $GERRIT_PROJECT -m \
-    "$gerrit_comment" $GERRIT_PATCHSET_REVISION
-
-    #set cache to 0
-    for x in $(gsutil ls gs://$gs_path_review/"${{dir##*/}}" | grep html);
-    do
-      gsutil setmeta -h "Content-Type:text/html" \
-      -h "Cache-Control:private, max-age=0, no-transform" \
-      "$x"
-    done
-
-  else
-
-    #upload artifacts for merge job
-    gsutil cp -r docs/output/"${{dir##*/}}" "gs://$gs_path_branch/docs/"
-    echo "Latest document is available at http://$gs_path_branch/docs/"${{dir##*/}}"/index.html"
-
-    #set cache to 0
-    for x in $(gsutil ls gs://$gs_path_branch/"${{dir}}" | grep html);
-    do
-      gsutil setmeta -h "Content-Type:text/html" \
-      -h "Cache-Control:private, max-age=0, no-transform" \
-      "$x"
-    done
-
-    #Clean up review when merging
-    if gsutil ls "gs://$gs_path_review" > /dev/null 2>&1 ; then
-      echo
-      echo "Deleting Out-of-dated Documents..."
-      gsutil rm -r "gs://$gs_path_review"
-    fi
-
-  fi
-
-done
index d263b19..00c1997 100755 (executable)
@@ -100,7 +100,7 @@ fi
 
 if [[ $started_monit == "true" ]]; then
 wget --timestamping https://build.opnfv.org/ci/jnlpJars/slave.jar && true
-chown $jenkinsuser $jenkinsuser slave.jar
+chown $jenkinsuser:$jenkinsuser slave.jar
 
 if [[ -f /var/run/$jenkinsuser/jenkins_jnlp_pid ]];
 then echo "pid file found"
diff --git a/utils/test/result_collection_api/dashboard/vsperf2Dashboard.py b/utils/test/result_collection_api/dashboard/vsperf2Dashboard.py
new file mode 100755 (executable)
index 0000000..323d391
--- /dev/null
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+
+# Copyright 2015 Intel Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"),
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+def get_vsperf_cases():
+    """
+    get the list of the supported test cases
+    TODO: update the list when adding a new test case for the dashboard
+    """
+    return ["tput_ovsdpdk", "tput_ovs",
+            "b2b_ovsdpdk", "b2b_ovs",
+            "tput_mod_vlan_ovsdpdk", "tput_mod_vlan_ovs",
+            "cont_ovsdpdk", "cont_ovs",
+            "pvp_cont_ovsdpdkuser", "pvp_cont_ovsdpdkcuse", "pvp_cont_ovsvirtio",
+            "pvvp_cont_ovsdpdkuser", "pvvp_cont_ovsdpdkcuse", "pvvp_cont_ovsvirtio",
+            "scalability_ovsdpdk", "scalability_ovs",
+            "pvp_tput_ovsdpdkuser", "pvp_tput_ovsdpdkcuse", "pvp_tput_ovsvirtio",
+            "pvp_b2b_ovsdpdkuser", "pvp_b2b_ovsdpdkcuse", "pvp_b2b_ovsvirtio",
+            "pvvp_tput_ovsdpdkuser", "pvvp_tput_ovsdpdkcuse", "pvvp_tput_ovsvirtio",
+            "pvvp_b2b_ovsdpdkuser", "pvvp_b2b_ovsdpdkcuse", "pvvp_b2b_ovsvirtio",
+            "cpu_load_ovsdpdk", "cpu_load_ovs",
+            "mem_load_ovsdpdk", "mem_load_ovs"]
+
+
+def check_vsperf_case_exist(case):
+    """
+    check if the testcase exists
+    if the test case is not defined or not declared in the list
+    return False
+    """
+    vsperf_cases = get_vsperf_cases()
+    if (case is None or case not in vsperf_cases):
+        return False
+    else:
+        return True
+
+
+def format_vsperf_for_dashboard(case, results):
+    """
+    generic method calling the method corresponding to the test case
+    check that the testcase is properly declared first
+    then build the call to the specific method
+    """
+    if check_vsperf_case_exist(case):
+        res = format_common_for_dashboard(case, results)
+    else:
+        res = []
+        print "Test cases not declared"
+    return res
+
+
+def format_common_for_dashboard(case, results):
+    """
+    Common post processing
+    """
+    test_data_description = case + " results for Dashboard"
+    test_data = [{'description': test_data_description}]
+
+    graph_name = ''
+    if "b2b" in case:
+        graph_name = "B2B frames"
+    else:
+        graph_name = "Rx frames per second"
+
+    # Graph 1: Rx fps = f(time)
+    # ********************************
+    new_element = []
+    for data in results:
+        new_element.append({'x': data['creation_date'],
+                            'y1': data['details']['64'],
+                            'y2': data['details']['128'],
+                            'y3': data['details']['512'],
+                            'y4': data['details']['1024'],
+                            'y5': data['details']['1518']})
+
+    test_data.append({'name': graph_name,
+                      'info': {'type': "graph",
+                               'xlabel': 'time',
+                               'y1label': 'frame size 64B',
+                               'y2label': 'frame size 128B',
+                               'y3label': 'frame size 512B',
+                               'y4label': 'frame size 1024B',
+                               'y5label': 'frame size 1518B'},
+                      'data_set': new_element})
+
+    return test_data
+
+
+
+
+############################  For local test  ################################
+import os
+
+def _test():
+    ans = [{'creation_date': '2015-09-12', 'project_name': 'vsperf', 'version': 'ovs_master', 'pod_name': 'pod1-vsperf', 'case_name': 'tput_ovsdpdk', 'installer': 'build_sie', 'details': {'64': '26.804', '1024': '1097.284', '512': '178.137', '1518': '12635.860', '128': '100.564'}},
+           {'creation_date': '2015-09-33', 'project_name': 'vsperf', 'version': 'ovs_master', 'pod_name': 'pod1-vsperf', 'case_name': 'tput_ovsdpdk', 'installer': 'build_sie', 'details': {'64': '16.804', '1024': '1087.284', '512': '168.137', '1518': '12625.860', '128': '99.564'}}]
+
+    result = format_vsperf_for_dashboard("pvp_cont_ovsdpdkcuse", ans)
+    print result
+
+    result = format_vsperf_for_dashboard("b2b_ovsdpdk", ans)
+    print result
+
+    result = format_vsperf_for_dashboard("non_existing", ans)
+    print result
+
+if __name__ == '__main__':
+    _test()