Merge "new project-csit for policy"
diff --git a/global-jjb b/global-jjb
index 413bdb2..43e8d01 160000
--- a/global-jjb
+++ b/global-jjb
@@ -1 +1 @@
-Subproject commit 413bdb2e77dcc2055e05476930f13874a2fae244
+Subproject commit 43e8d01716072314eb7d90cb1da1db4b431bb6cd
diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg
index a8d9328..7b095be 100644
--- a/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg
@@ -1,4 +1,4 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200720-175313.316
+IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20210129-195204.476
 LABELS=ubuntu1804-builder-4c-4g
 HARDWARE_ID=v2-highcpu-4
 VOLUME_SIZE=20
diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-8c-8g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-8c-8g.cfg
index dc4d62f..9f24c4b 100644
--- a/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-8c-8g.cfg
+++ b/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-8c-8g.cfg
@@ -1,4 +1,4 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - x86_64 - 20200720-202227.181
+IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - x86_64 - 20210129-195200.311
 LABELS=ubuntu1804-docker-8c-8g
 HARDWARE_ID=v2-highcpu-8
 VOLUME_SIZE=20
diff --git a/jjb/aai/aai-oom.yaml b/jjb/aai/aai-oom.yaml
index 4ea6eb8..be2c84d 100644
--- a/jjb/aai/aai-oom.yaml
+++ b/jjb/aai/aai-oom.yaml
@@ -19,8 +19,8 @@
     stream:
       - 'master':
           branch: 'master'
-      - 'frankfurt':
-          branch: 'frankfurt'
+      - 'guilin':
+          branch: 'guilin'
 
     mvn-settings: 'aai-oom-settings'
     files: '**'
diff --git a/jjb/ccsdk/ccsdk-csit.yaml b/jjb/ccsdk/ccsdk-csit.yaml
index ecabee0..fc634fd 100644
--- a/jjb/ccsdk/ccsdk-csit.yaml
+++ b/jjb/ccsdk/ccsdk-csit.yaml
@@ -2,9 +2,12 @@
 - project:
     name: ccsdk-distribution-csit
     jobs:
-      - '{project-name}-{stream}-project-csit'
-      - '{project-name}-review-verification-{stream}'
-      - '{project-name}-merge-verification-{stream}'
+      - '{project-name}-review-verification-maven-{stream}':
+          mvn-params: '-Dmaven.test.skip=true -Ddocker.skip.push=true -P docker'
+          maven-versions-plugin: true
+      - '{project-name}-merge-verification-maven-{stream}':
+          mvn-params: '-Dmaven.test.skip=true -Ddocker.skip.push=true -P docker'
+          maven-versions-plugin: true
     project-name: 'ccsdk-distribution'
     recipients: 'dtimoney@att.com'
     # project name in gerrit
@@ -12,11 +15,7 @@
     stream:
       - 'master':
           branch: 'master'
-    artifact-type: 'maven'
-    java-version: openjdk11
-    mvn-version: 'mvn36'
     mvn-settings: 'ccsdk-distribution-settings'
-    mvn-global-settings: global-settings
     robot-options: ''
     branch: 'master'
 
diff --git a/jjb/ccsdk/ccsdk-oran.yaml b/jjb/ccsdk/ccsdk-oran.yaml
index 7b98112..27d146c 100644
--- a/jjb/ccsdk/ccsdk-oran.yaml
+++ b/jjb/ccsdk/ccsdk-oran.yaml
@@ -38,6 +38,24 @@
     nexus-snapshot-repo: 'snapshots'
 
 - project:
+    name: ccsdk-oran-clm
+    jobs:
+      - gerrit-maven-clm
+    nexus-iq-namespace: 'onap-'
+    project: 'ccsdk/oran'
+    project-name: 'ccsdk-oran'
+    stream:
+      - 'master':
+          branch: 'master'
+      - 'guilin':
+          branch: 'guilin'
+    java-version: openjdk11
+    mvn-version: 'mvn36'
+    mvn-settings: 'ccsdk-oran-settings'
+    mvn-opts: '-Ddocker.skip=true'
+    build-node: ubuntu1804-builder-4c-4g
+
+- project:
     name: ccsdk-oran-info
     project: ccsdk/oran
     project-name: ccsdk-oran
diff --git a/jjb/ccsdk/distribution.yaml b/jjb/ccsdk/distribution.yaml
index f962c14..ba20563 100644
--- a/jjb/ccsdk/distribution.yaml
+++ b/jjb/ccsdk/distribution.yaml
@@ -20,15 +20,6 @@
           cron: '@daily'
       - '{project-name}-gerrit-release-jobs':
           build-node: centos7-docker-8c-8g
-      - gerrit-maven-docker-snapshot:
-          build-node: ubuntu1804-docker-8c-8g
-          container-public-registry: 'nexus3.onap.org:10001'
-          container-snapshot-registry: 'nexus3.onap.org:10003'
-          mvn-params: '-Dmaven.test.skip=true -Ddocker.skip.push=true -P docker'
-          maven-versions-plugin: true
-      - '{project-name}-{stream}-docker-staging':
-          script:
-            !include-raw-escape: 'tag-ccsdk-distribution-images-staging.sh'
 
     project: 'ccsdk/distribution'
     stream:
diff --git a/jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh b/jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh
deleted file mode 100755
index b965cfe..0000000
--- a/jjb/ccsdk/tag-ccsdk-distribution-images-staging.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-echo '=========== CALLING SCRIPT TO TAG DOCKER IMAGES AS STAGING ==========='
-echo "=========== Unique docker tag: ${UNIQUE_DOCKER_TAG}"
-
-chmod 755 ./deployment/*.sh
-cd ./deployment
-./tag-docker-staging.sh
diff --git a/jjb/cps/cps.yaml b/jjb/cps/cps.yaml
index 5593b10..2750c3c 100644
--- a/jjb/cps/cps.yaml
+++ b/jjb/cps/cps.yaml
@@ -25,7 +25,7 @@
       project-name: 'cps'
       branch: 'master'
       mvn-settings: 'cps-settings'
-      build-node: ubuntu1804-builder-4c-4g
+      build-node: centos7-docker-8c-8g
 
 - project:
     name: cps
@@ -77,3 +77,17 @@
     mvn-settings: 'cps-settings'
     mvn-goals: 'clean install'
     mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+
+- project:
+    name: cps-whitesource
+    project-name: cps
+    jobs:
+      - gerrit-whitesource-scan
+    java-version: openjdk11
+    mvn-version: 'mvn36'
+    mvn-settings: 'cps-settings'
+    wss-product-name: cps
+    mvn-clean-install: true
+    project: cps
+    branch: master
+
diff --git a/jjb/dcaegen2/dcaegen2-collectors-snmptrap.yaml b/jjb/dcaegen2/dcaegen2-collectors-snmptrap.yaml
index adf6310..f15beef 100644
--- a/jjb/dcaegen2/dcaegen2-collectors-snmptrap.yaml
+++ b/jjb/dcaegen2/dcaegen2-collectors-snmptrap.yaml
@@ -2,28 +2,28 @@
 - project:
     name: dcaegen2-collectors-snmptrap
     project-name: 'dcaegen2-collectors-snmptrap'
-    jobs:
-      - '{project-name}-{stream}-verify-java'
-      - '{project-name}-{stream}-merge-java'
-      - '{project-name}-{stream}-release-version-java-daily'
-      - '{project-name}-gerrit-release-jobs':
-          build-node: centos7-docker-8c-8g
-
     project: 'dcaegen2/collectors/snmptrap'
+    python-version: python3.6
+    tox-dir: '.'
+    tox-envs: ''
     stream:
       - 'master':
           branch: 'master'
       - 'guilin':
           branch: 'guilin'
+    build-node: ubuntu1804-docker-8c-8g
     mvn-settings: 'dcaegen2-collectors-snmptrap-settings'
-    # due to a strange macro / variable translation problem this needs
-    # to be passed as a string block to properly get the properties
-    # correctly defined in the job
-    maven-deploy-properties: |
-      deployAtEnd=true
+    subproject:
+      - 'snmptrap':
+          pattern: '**'
+          path: 'snmptrap'
+    jobs:
+      - '{project-name}-{stream}-{subproject}-verify-python'
+      - '{project-name}-{subproject}-python-staging-{stream}'
+      - '{project-name}-{subproject}-python-release-{stream}'
+      - '{project-name}-{stream}-release-version-java-daily'
     files: '**'
     archive-artifacts: ''
-    build-node: 'ubuntu1804-docker-8c-8g'
 
 - project:
     name: dcaegen2-collectors-snmptrap-sonar
diff --git a/jjb/dcaegen2/dcaegen2-platform-policy-handler.yaml b/jjb/dcaegen2/dcaegen2-platform-policy-handler.yaml
index dfa440b..a71b9fa 100644
--- a/jjb/dcaegen2/dcaegen2-platform-policy-handler.yaml
+++ b/jjb/dcaegen2/dcaegen2-platform-policy-handler.yaml
@@ -15,7 +15,7 @@
     mvn-settings: 'dcaegen2-platform-policy-handler-settings'
     subproject:
       - 'policy-handler':
-          pattern: 'policyhandler/**'
+          pattern: '**'
           path: 'policyhandler'
     jobs:
       - '{project-name}-{stream}-{subproject}-verify-python'
diff --git a/jjb/dcaegen2/dcaegen2-services-kpi-computation-ms.yaml b/jjb/dcaegen2/dcaegen2-services-kpi-computation-ms.yaml
new file mode 100644
index 0000000..9ab5171
--- /dev/null
+++ b/jjb/dcaegen2/dcaegen2-services-kpi-computation-ms.yaml
@@ -0,0 +1,85 @@
+---
+- project:
+    name: dcaegen2-services-kpi-computation-ms-verify
+    project-name: 'dcaegen2-services'
+    project: 'dcaegen2/services'
+    jobs:
+      - '{project-name}-{stream}-{subproject}-verify-java'
+      - '{project-name}-{stream}-{subproject}-merge-java'
+    subproject:
+      - 'kpi-computation-ms':
+          pom: 'components/kpi-computation-ms/pom.xml'
+          pattern: 'components/kpi-computation-ms/**'
+    stream:
+      - 'master':
+          branch: 'master'
+    java-version: openjdk11
+    mvn-settings: 'dcaegen2-services-settings'
+    files: '**'
+    archive-artifacts: ''
+    build-node: 'ubuntu1804-docker-8c-8g'
+    maven-deploy-properties: |
+      deployAtEnd=true
+
+- project:
+    name: dcaegen2-services-kpi-computation-ms-release
+    project-name: 'dcaegen2-services-kpi-computation-ms'
+    project: 'dcaegen2/services'
+    jobs:
+      - gerrit-maven-stage:
+          sign-artifacts: true
+          build-node: centos7-docker-8c-8g
+          maven-versions-plugin: true
+          mvn-pom: 'components/kpi-computation-ms/pom.xml'
+          mvn-params: '-f components/kpi-computation-ms/pom.xml'
+          pattern: 'components/kpi-computation-ms/**'
+      - gerrit-maven-docker-stage:
+          build-node: ubuntu1804-docker-8c-8g
+          container-public-registry: 'nexus3.onap.org:10001'
+          container-staging-registry: 'nexus3.onap.org:10003'
+          mvn-goals: 'clean package docker:build -DpushImageTag'
+          mvn-params: '-f components/kpi-computation-ms/pom.xml'
+          pattern: 'components/kpi-computation-ms/**'
+    stream:
+      - 'master':
+          branch: 'master'
+    java-version: openjdk11
+    mvn-settings: 'dcaegen2-services-settings'
+    files: '**'
+    archive-artifacts: ''
+    build-node: 'ubuntu1804-docker-8c-8g'
+    maven-deploy-properties: |
+      deployAtEnd=true
+
+- project:
+    name: dcaegen2-services-kpi-computation-ms-sonar
+    java-version: openjdk11
+    jobs:
+      - gerrit-maven-sonar
+    sonarcloud: true
+    sonarcloud-project-organization: '{sonarcloud_project_organization}'
+    sonarcloud-api-token: '{sonarcloud_api_token}'
+    sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}'
+    sonar-mvn-goal: '{sonar_mvn_goal}'
+    cron: '@daily'
+    build-node: ubuntu1804-docker-8c-8g
+    project: 'dcaegen2/services'
+    project-name: 'dcaegen2-services-kpi-computation-ms'
+    branch: 'master'
+    mvn-settings: 'dcaegen2-services-settings'
+    mvn-goals: 'clean install'
+    mvn-params: '-f components/kpi-computation-ms/pom.xml'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+
+- project:
+    name: dcaegen2-services-kpi-computation-ms-clm
+    java-version: openjdk11
+    jobs:
+      - gerrit-maven-clm
+    nexus-iq-namespace: 'onap-'
+    project: dcaegen2/services
+    build-node: ubuntu1804-docker-8c-8g
+    project-name: 'dcaegen2-services-kpi-computation-ms-clm'
+    mvn-params: '-f components/kpi-computation-ms/pom.xml'
+    branch: 'master'
+    mvn-settings: 'dcaegen2-services-settings'
diff --git a/jjb/global-templates-docker.yaml b/jjb/global-templates-docker.yaml
index c340b1e..23a554b 100644
--- a/jjb/global-templates-docker.yaml
+++ b/jjb/global-templates-docker.yaml
@@ -303,51 +303,3 @@
 
     publishers:
       - lf-infra-publish
-
-- job-template:
-    # Job template for tagging snapshot docker images
-    # identified by given unique tag as STAGING
-    # in project-specific CSIT versioning flow
-    # The purpose of this job template is to run:
-    #  1. login to the docker registry
-    #  2. run a specified shell builder for tagging
-    #
-
-    name: '{project-name}-{stream}-docker-staging'
-    project-type: freestyle
-    node: 'ubuntu1804-docker-8c-8g'
-    disabled: '{disabled}'
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - integration-unique-docker-tag:
-          unique-docker-tag: ''
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          submodule-recursive: '{submodule-recursive}'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    builders:
-      - lf-infra-pre-build
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-
-      - docker-login
-
-      - shell: '{script}'
-
-    publishers:
-      - lf-infra-publish
diff --git a/jjb/global-templates-golang.yaml b/jjb/global-templates-golang.yaml
index b19fe38..72004dc 100644
--- a/jjb/global-templates-golang.yaml
+++ b/jjb/global-templates-golang.yaml
@@ -198,57 +198,3 @@
 
     publishers:
       - lf-infra-publish
-
-- job-template:
-    # Job template for building and pushing uniquely tagged
-    # snapshot docker images in project-specific CSIT flow
-    #
-    # golangver can be set to golang110 or golang111
-    # depending on what version is needed by the project
-    # default is golang110
-    #
-    # The purpose of this job template is to run:
-    #  1. login to the docker registry
-    #  2. run a specified shell builder
-    #
-
-    name: '{project-name}-{stream}-golang-docker-snapshot'
-    golangver: 'golang110'
-    project-type: freestyle
-    node: 'ubuntu1804-docker-8c-8g'
-    disabled: '{disabled}'
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - integration-unique-docker-tag:
-          unique-docker-tag: ''
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          submodule-recursive: '{submodule-recursive}'
-
-    wrappers:
-      - '{golangver}'
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    builders:
-      - lf-infra-pre-build
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-
-      - docker-login
-
-      - shell: '{script}'
-
-    publishers:
-      - lf-infra-publish
diff --git a/jjb/integration/integration-macros.yaml b/jjb/integration/integration-macros.yaml
index 918d67c..66c8b70 100644
--- a/jjb/integration/integration-macros.yaml
+++ b/jjb/integration/integration-macros.yaml
@@ -47,14 +47,6 @@
           default: '{terragrunt-version}'
           description: 'Terragrunt version to install on minion'
 
-- parameter:
-    name: integration-unique-docker-tag
-    parameters:
-     - string:
-          name: UNIQUE_DOCKER_TAG
-          default: '{unique-docker-tag}'
-          description: 'Unique docker tag to identify specific version'
-
 - builder:
     name: integration-install-robotframework
     builders:
diff --git a/jjb/integration/integration-maven-jobs.yaml b/jjb/integration/integration-maven-jobs.yaml
deleted file mode 100644
index 259fb4e..0000000
--- a/jjb/integration/integration-maven-jobs.yaml
+++ /dev/null
@@ -1,157 +0,0 @@
-####################
-# COMMON FUNCTIONS #
-####################
-
-- integration_maven_common: &integration_maven_common
-    # This common maven base template is based on
-    # lf-maven-common in global-jjb/jjb/lf-maven-jobs.yaml
-    # and adjusted for jobs in project-specific CSIT flow
-
-    name: integration-maven-common
-
-    ######################
-    # Default parameters #
-    ######################
-
-    archive-artifacts: >
-      **/*.log
-      **/hs_err_*.log
-      **/target/**/feature.xml
-      **/target/failsafe-reports/failsafe-summary.xml
-      **/target/surefire-reports/*-output.txt
-
-    #####################
-    # Job Configuration #
-    #####################
-
-    project-type: freestyle
-    node: "{build-node}"
-
-    properties:
-      - lf-infra-properties:
-          build-days-to-keep: "{build-days-to-keep}"
-
-    parameters:
-      - lf-infra-parameters:
-          project: "{project}"
-          branch: "{branch}"
-          stream: "{stream}"
-      - lf-infra-maven-parameters:
-          mvn-opts: "{mvn-opts}"
-          mvn-params: "{mvn-params}"
-          mvn-version: "{mvn-version}"
-      - string:
-          name: ARCHIVE_ARTIFACTS
-          default: "{archive-artifacts}"
-          description: Artifacts to archive to the logs server.
-
-    scm:
-      - lf-infra-gerrit-scm:
-          jenkins-ssh-credential: "{jenkins-ssh-credential}"
-          git-url: "{git-url}"
-          refspec: "$GERRIT_REFSPEC"
-          branch: "$GERRIT_BRANCH"
-          submodule-recursive: "{submodule-recursive}"
-          submodule-timeout: "{submodule-timeout}"
-          submodule-disable: "{submodule-disable}"
-          choosing-strategy: "gerrit"
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: "{build-timeout}"
-          jenkins-ssh-credential: "{jenkins-ssh-credential}"
-
-    publishers:
-      - lf-infra-publish
-
-#############################
-# Maven Snapshot for Docker #
-#############################
-
-- integration_maven_docker_snapshot: &integration_maven_docker_snapshot
-    name: integration-maven-docker-snapshot
-
-    builders:
-      - lf-infra-pre-build
-      - lf-jacoco-nojava-workaround
-      - lf-maven-install:
-          mvn-version: "{mvn-version}"
-      - lf-update-java-alternatives:
-          java-version: "{java-version}"
-      - lf-infra-docker-login:
-          global-settings-file: "{mvn-global-settings}"
-          settings-file: "{mvn-settings}"
-      # must provide maven settings AFTER docker-login due to its cleanup
-      - lf-provide-maven-settings:
-          global-settings-file: "{mvn-global-settings}"
-          settings-file: "{mvn-settings}"
-      - lf-maven-versions-plugin:
-          maven-versions-plugin: "{maven-versions-plugin}"
-          version-properties-file: "{version-properties-file}"
-          mvn-version: "{mvn-version}"
-          mvn-pom: "{mvn-pom}"
-          mvn-settings: "{mvn-settings}"
-      - inject:
-          properties-content: |
-            CONTAINER_PULL_REGISTRY={container-public-registry}
-            CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
-      - lf-maven-build:
-          mvn-goals: "{mvn-goals}"
-      - lf-sigul-sign-dir:
-          sign-artifacts: "{sign-artifacts}"
-          sign-dir: "$WORKSPACE/m2repo"
-          sign-mode: "{sign-mode}"
-      - lf-provide-maven-settings-cleanup
-
-- job-template:
-    # Job template for creating snapshot docker images
-    # identified by given unique tag with maven
-    # in project-specific CSIT flow
-
-    name: "{project-name}-{stream}-maven-docker-snapshot"
-    id: gerrit-maven-docker-snapshot
-    <<: *integration_maven_common
-    # yamllint disable-line rule:key-duplicates
-    <<: *integration_maven_docker_snapshot
-
-    ######################
-    # Default parameters #
-    ######################
-
-    branch: master
-    build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
-    build-timeout: 60
-    disable-job: false
-    git-url: "$GIT_URL/$PROJECT"
-    github-url: "https://github.com"
-    java-version: openjdk8
-    maven-versions-plugin: false
-    version-properties-file: version.properties
-    mvn-central: false
-    mvn-global-settings: global-settings
-    mvn-goals: clean deploy
-    mvn-opts: ""
-    mvn-params: ""
-    maven-version: mvn36
-    ossrh-profile-id: ""
-    mvn-pom: ""
-    sign-artifacts: false
-    sign-mode: serial
-    stream: master
-    submodule-recursive: true
-    submodule-timeout: 10
-    submodule-disable: false
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-      - maven-params:
-          mvn-params: '{mvn-params}'
-
-      - integration-unique-docker-tag:
-          unique-docker-tag: ''
diff --git a/jjb/integration/integration-templates-csit.yaml b/jjb/integration/integration-templates-csit.yaml
index f07e6e4..fea8402 100644
--- a/jjb/integration/integration-templates-csit.yaml
+++ b/jjb/integration/integration-templates-csit.yaml
@@ -129,213 +129,153 @@
           notify-every-unstable-build: false
           send-to-individuals: true
 
-- job-template:
-    # Job template for project-specific CSIT jobs
-    #
-    # The purpose of this job template is to execute
-    # project-specific CSIT test cases for docker image versions 
-    # identified by unique docker tag input parameter
-    #
+- verification_maven_job_boiler_plate: &verification_maven_job_boiler_plate
+    name: verification_maven_job_boiler_plate
 
-    name: '{project-name}-{stream}-project-csit'
+    ######################
+    # Default parameters #
+    ######################
+
+    branch: master
+    build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
+    build-node: ubuntu1804-docker-8c-8g
+    build-timeout: 60
+    container-public-registry: 'nexus3.onap.org:10001'
+    git-url: "$GIT_URL/$PROJECT"
+    github-url: "https://github.com"
+    maven-versions-plugin: false
+    version-properties-file: version.properties
+    mvn-central: false
+    mvn-global-settings: global-settings
+    mvn-goals: clean deploy
+    mvn-opts: ""
+    mvn-pom: ""
+    mvn-version: mvn36
+    stream: master
+    submodule-recursive: true
+    submodule-timeout: 10
+    submodule-disable: false
+
     disabled: '{disabled}'
+    archive-artifacts: >
+      **/*.log
+      **/hs_err_*.log
+      **/target/**/feature.xml
+      **/target/failsafe-reports/failsafe-summary.xml
+      **/target/surefire-reports/*-output.txt
+
     project-type: freestyle
-    build-node: 'ubuntu1804-docker-8c-8g'
     node: '{build-node}'
-    recipients: ''
     java-version: 'openjdk11'
-    python-version: python3
+
+    #####################
+    # Job Configuration #
+    #####################
 
     properties:
       - lf-infra-properties:
           project: '{project}'
           build-days-to-keep: '{build-days-to-keep}'
-
     parameters:
       - infra-parameters:
           project: '{project}'
           branch: '{branch}'
           refspec: 'refs/heads/{branch}'
           artifacts: '{archive-artifacts}'
+      - lf-infra-maven-parameters:
+          mvn-opts: "{mvn-opts}"
+          mvn-params: "{mvn-params}"
+          mvn-version: "{mvn-version}"
+      - string:
+          name: ARCHIVE_ARTIFACTS
+          default: "{archive-artifacts}"
+          description: Artifacts to archive to the logs server.
       - integration-test-options:
           test-options: '{robot-options}'
-      - integration-unique-docker-tag:
-          unique-docker-tag: ''
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          submodule-recursive: '{submodule-recursive}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    builders:
-      - lf-infra-pre-build
-      - lf-update-java-alternatives:
-          java-version: '{java-version}'
-      - integration-install-robotframework
-      - inject:
-          properties-file: 'env.properties'
-      - integration-run-project-test
-
-    publishers:
-      - integration-project-robot:
-          unstable-if: 0.0
-          pass-if: 100.0
-      - lf-infra-publish
-      - email:
-          recipients: '{recipients}'
-          notify-every-unstable-build: false
-          send-to-individuals: true
-
-- job-template:
-    # Job template for review verification jobs in 
-    # project-specific CSIT flow
-    #
-    # The purpose of this job template is to:
-    #  1. trigger snapshot docker build job
-    #  2. trigger CSIT job
-    #  3. give a verify vote to the triggering review
-    #
-
-    name: '{project-name}-review-verification-{stream}'
-    disabled: '{disabled}'
-    project-type: freestyle
-    build-node: 'ubuntu1804-docker-8c-8g'
-    java-version: 'openjdk11'
-
-    properties:
-      - lf-infra-properties:
-          project: '{project}'
-          build-days-to-keep: '{build-days-to-keep}'
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-          submodule-recursive: '{submodule-recursive}'
     wrappers:
       - lf-infra-wrappers:
           build-timeout: '{build-timeout}'
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
     builders:
       - lf-infra-pre-build
+      - lf-jacoco-nojava-workaround
       - lf-maven-install:
           mvn-version: "{mvn-version}"
       - lf-update-java-alternatives:
           java-version: "{java-version}"
+      - lf-infra-docker-login:
+          global-settings-file: "{mvn-global-settings}"
+          settings-file: "{mvn-settings}"
+      # must provide maven settings AFTER docker-login due to its cleanup
       - lf-provide-maven-settings:
           global-settings-file: "{mvn-global-settings}"
           settings-file: "{mvn-settings}"
-      - trigger-builds:
-         -  project: "{project-name}-{stream}-{artifact-type}-docker-snapshot"
-            predefined-parameters: |
-              UNIQUE_DOCKER_TAG=$BUILD_TAG
-              PROJECT=$PROJECT
-              BRANCH=$BRANCH
-              GERRIT_REFSPEC=$GERRIT_REFSPEC
-            block: true
-      - trigger-builds:
-         -  project: "{project-name}-{stream}-project-csit"
-            predefined-parameters: |
-              UNIQUE_DOCKER_TAG=$BUILD_TAG
-              PROJECT=$PROJECT
-              BRANCH=$BRANCH
-              GERRIT_REFSPEC=$GERRIT_REFSPEC
-            block: true
+      - lf-maven-versions-plugin:
+          maven-versions-plugin: "{maven-versions-plugin}"
+          version-properties-file: "{version-properties-file}"
+          mvn-version: "{mvn-version}"
+          mvn-pom: "{mvn-pom}"
+          mvn-settings: "{mvn-settings}"
+      - inject:
+          properties-content: |
+            CONTAINER_PULL_REGISTRY={container-public-registry}
+      - lf-maven-build:
+          mvn-goals: "{mvn-goals}"
+      - integration-install-robotframework
+      - inject:
+          properties-file: 'env.properties'
+      - integration-run-project-test
+      - lf-provide-maven-settings-cleanup
+    publishers:
+      - lf-infra-publish
+
+- job-template:
+    # Job template for unified review verification jobs in
+    # project-specific CSIT flow for projects built with maven
+    #
+    # The purpose of this job template is to:
+    #  1. build local snapshot docker images with maven
+    #  2. run CSIT job with the local images
+    #  3. give a verify vote to the triggering review
+    #
+
+    name: '{project-name}-review-verification-maven-{stream}'
+
+    <<: *verification_maven_job_boiler_plate
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+          submodule-recursive: '{submodule-recursive}'
     triggers:
       - gerrit-trigger-patch-submitted:
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
           files: '**'
-    publishers:
-      - lf-infra-publish
 
 - job-template:
-    # Job template for merge verification jobs in 
-    # project-specific CSIT flow
+    # Job template for unified merge verification jobs in
+    # project-specific CSIT flow for projects built with maven
     #
-    # The purpose of this job template is to trigger
-    # the following jobs in sequence:
-    #  1. snapshot docker build job
-    #  2. CSIT job
-    #  3. docker staging job
+    # The purpose of this job template is to:
+    #  1. build local snapshot docker images from master with maven
+    #  2. run CSIT job with the local images
     #
 
-    name: '{project-name}-merge-verification-{stream}'
-    disabled: '{disabled}'
-    project-type: freestyle
-    build-node: 'ubuntu1804-docker-8c-8g'
-    java-version: 'openjdk11'
+    name: '{project-name}-merge-verification-maven-{stream}'
 
-    properties:
-      - lf-infra-properties:
-          project: '{project}'
-          build-days-to-keep: '{build-days-to-keep}'
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
+    <<: *verification_maven_job_boiler_plate
+
     scm:
       - gerrit-trigger-scm:
           refspec: ''
           choosing-strategy: 'default'
           submodule-recursive: '{submodule-recursive}'
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-    builders:
-      - lf-infra-pre-build
-      - lf-maven-install:
-          mvn-version: "{mvn-version}"
-      - lf-update-java-alternatives:
-          java-version: "{java-version}"
-      - lf-provide-maven-settings:
-          global-settings-file: "{mvn-global-settings}"
-          settings-file: "{mvn-settings}"
-      - trigger-builds:
-         -  project: "{project-name}-{stream}-{artifact-type}-docker-snapshot"
-            predefined-parameters: |
-              UNIQUE_DOCKER_TAG=$BUILD_TAG
-              PROJECT=$PROJECT
-              BRANCH=$BRANCH
-              GERRIT_REFSPEC=$GERRIT_REFSPEC
-            block: true
-      - trigger-builds:
-         -  project: "{project-name}-{stream}-project-csit"
-            predefined-parameters: |
-              UNIQUE_DOCKER_TAG=$BUILD_TAG
-              PROJECT=$PROJECT
-              BRANCH=$BRANCH
-              GERRIT_REFSPEC=$GERRIT_REFSPEC
-            block: true
-      - trigger-builds:
-         -  project: "{project-name}-{stream}-docker-staging"
-            predefined-parameters: |
-              UNIQUE_DOCKER_TAG=$BUILD_TAG
-              PROJECT=$PROJECT
-              BRANCH=$BRANCH
-              GERRIT_REFSPEC=$GERRIT_REFSPEC
-            block: true
     triggers:
       - gerrit-trigger-patch-merged:
           server: '{server-name}'
           project: '{project}'
           branch: '{branch}'
           files: '**'
-    publishers:
-      - lf-infra-publish
-
diff --git a/jjb/integration/simulators/integration-core-nssmf-simulator.yaml b/jjb/integration/simulators/integration-core-nssmf-simulator.yaml
new file mode 100644
index 0000000..8c77db7
--- /dev/null
+++ b/jjb/integration/simulators/integration-core-nssmf-simulator.yaml
@@ -0,0 +1,34 @@
+---
+- project:
+    name: integration-simulators-core-nssmf-simulator-info
+    project: integration/simulators/core-nssmf-simulator
+    project-name: integration-simulators-core-nssmf-simulator
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
+
+- project:
+    name: integration-simulators-core-nssmf-simulator
+    project: integration/simulators/core-nssmf-simulator
+    project-name: integration-simulators-core-nssmf-simulator
+    stream:
+      - 'master':
+          branch: 'master'
+    mvn-settings: 'integration-simulators-core-nssmf-simulator-settings'
+    files: '**'
+    maven-deploy-properties: |
+        deployAtEnd=true
+    archive-artifacts: ''
+    build-node: ubuntu1804-docker-8c-8g
+    jobs:
+        - '{project-name}-{stream}-verify-java':
+            mvn-goals: 'clean install'
+        - '{project-name}-{stream}-merge-java':
+            mvn-goals: 'clean deploy'
+        -  '{project-name}-gerrit-release-jobs':
+            build-node: centos7-docker-8c-8g
+        - gerrit-maven-stage:
+            sign-artifacts: true
+            build-node: centos7-docker-8c-8g
+            maven-versions-plugin: true
+            mvn-goals: 'clean deploy'
diff --git a/jjb/integration/simulators/integration-pnf-simulator.yaml b/jjb/integration/simulators/integration-pnf-simulator.yaml
index 481aca9..f426209 100644
--- a/jjb/integration/simulators/integration-pnf-simulator.yaml
+++ b/jjb/integration/simulators/integration-pnf-simulator.yaml
@@ -15,7 +15,7 @@
       build-node: ubuntu1804-docker-8c-8g
       jobs:
           - '{project-name}-{stream}-verify-java':
-                mvn-goals: 'clean install'
+                mvn-goals: 'clean install -P docker,integration -DskipNexusStagingDeployMojo=true -DskipDockerPush=true'
           - '{project-name}-{stream}-merge-java':
                 mvn-goals: 'clean deploy'
           -  '{project-name}-gerrit-release-jobs':
diff --git a/jjb/music/music-distributed-kv-store-csit.yaml b/jjb/music/music-distributed-kv-store-csit.yaml
index 3f53eea..ab49147 100644
--- a/jjb/music/music-distributed-kv-store-csit.yaml
+++ b/jjb/music/music-distributed-kv-store-csit.yaml
@@ -1,18 +1,25 @@
----
-- project:
-    name: music-distributed-kv-store-csit
-    jobs:
-      - '{project-name}-{stream}-project-csit'
-      - '{project-name}-review-verification-{stream}'
-      - '{project-name}-merge-verification-{stream}'
-    project-name: 'music-distributed-kv-store'
-    project: 'music/distributed-kv-store'
-    disabled: true
-    stream: 'master'
-    artifact-type: 'golang'
-    java-version: openjdk11
-    mvn-version: 'mvn36'
-    mvn-settings: 'music-distributed-kv-store-settings'
-    mvn-global-settings: global-settings
-    robot-options: ''
-    branch: 'master'
+# Integration templates no longer support these 
+# job definitions; if Music CSIT needs to be restored,
+# '{project-name}-review-verification-golang-{stream}'
+# '{project-name}-merge-verification-golag-{stream}'
+# would have to be added to integration templates and 
+# applied here
+#  
+#---
+#- project:
+#    name: music-distributed-kv-store-csit
+#    jobs:
+#      - '{project-name}-{stream}-project-csit'
+#      - '{project-name}-review-verification-{stream}'
+#      - '{project-name}-merge-verification-{stream}'
+#    project-name: 'music-distributed-kv-store'
+#    project: 'music/distributed-kv-store'
+#    disabled: true
+#    stream: 'master'
+#    artifact-type: 'golang'
+#    java-version: openjdk11
+#    mvn-version: 'mvn36'
+#    mvn-settings: 'music-distributed-kv-store-settings'
+#    mvn-global-settings: global-settings
+#    robot-options: ''
+#    branch: 'master'
diff --git a/jjb/music/music-distributed-kv-store.yaml b/jjb/music/music-distributed-kv-store.yaml
index 6812484..0985d66 100644
--- a/jjb/music/music-distributed-kv-store.yaml
+++ b/jjb/music/music-distributed-kv-store.yaml
@@ -9,12 +9,6 @@
       - '{project-name}-{stream}-docker-golang-shell-daily':
           script:
             !include-raw-escape: 'build-music-distributed-kv-store-image.sh'
-      - '{project-name}-{stream}-golang-docker-snapshot':
-          script:
-            !include-raw-escape: 'build-music-distributed-kv-store-image.sh'
-      - '{project-name}-{stream}-docker-staging':
-          script:
-            !include-raw-escape: 'tag-music-distributed-kv-store-image-staging.sh'
     project: 'music/distributed-kv-store'
     stream:
       - 'master':
diff --git a/jjb/portal-sdk/portal-sdk.yaml b/jjb/portal-sdk/portal-sdk.yaml
index a4d46a5..0c54744 100644
--- a/jjb/portal-sdk/portal-sdk.yaml
+++ b/jjb/portal-sdk/portal-sdk.yaml
@@ -24,8 +24,8 @@
     stream:
       - 'master':
           branch: 'master'
-      - 'release-3.3.0':
-          branch: 'release-3.3.0'
+      - 'release-3.4.0':
+          branch: 'release-3.4.0'
     mvn-settings: 'portal-sdk-settings'
     files: '**'
     archive-artifacts: ''
diff --git a/jjb/so/so-adapters-so-cnf-adapter.yaml b/jjb/so/so-adapters-so-cnf-adapter.yaml
new file mode 100644
index 0000000..eac74c8
--- /dev/null
+++ b/jjb/so/so-adapters-so-cnf-adapter.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: so-adapters-so-cnf-adapter-project-view
+    project-name: so-adapters-so-cnf-adapter
+    views:
+      - project-view
+
+- project:
+    name: so-adapters-so-cnf-adapter-info
+    project: so/adapters/so-cnf-adapter
+    project-name: so-adapters-so-cnf-adapter
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/so/so-adapters-so-etsi-sol003-adapter.yaml b/jjb/so/so-adapters-so-etsi-sol003-adapter.yaml
new file mode 100644
index 0000000..aee64de
--- /dev/null
+++ b/jjb/so/so-adapters-so-etsi-sol003-adapter.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: so-adapters-so-etsi-sol003-adapter-project-view
+    project-name: so-adapters-so-etsi-sol003-adapter
+    views:
+      - project-view
+
+- project:
+    name: so-adapters-so-etsi-sol003-adapter-info
+    project: so/adapters/so-etsi-sol003-adapter
+    project-name: so-adapters-so-etsi-sol003-adapter
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/so/so-adapters-so-etsi-sol005-adapter.yaml b/jjb/so/so-adapters-so-etsi-sol005-adapter.yaml
new file mode 100644
index 0000000..68e6b26
--- /dev/null
+++ b/jjb/so/so-adapters-so-etsi-sol005-adapter.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: so-adapters-so-etsi-sol005-adapter-project-view
+    project-name: so-adapters-so-etsi-sol005-adapter
+    views:
+      - project-view
+
+- project:
+    name: so-adapters-so-etsi-sol005-adapter-info
+    project: so/adapters/so-etsi-sol005-adapter
+    project-name: so-adapters-so-etsi-sol005-adapter
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/so/so-adapters-so-nssmf-adapter.yaml b/jjb/so/so-adapters-so-nssmf-adapter.yaml
new file mode 100644
index 0000000..b82553b
--- /dev/null
+++ b/jjb/so/so-adapters-so-nssmf-adapter.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: so-adapters-so-nssmf-adapter-project-view
+    project-name: so-adapters-so-nssmf-adapter
+    views:
+      - project-view
+
+- project:
+    name: so-adapters-so-nssmf-adapter-info
+    project: so/adapters/so-nssmf-adapter
+    project-name: so-adapters-so-nssmf-adapter
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/so/so-adapters-so-oof-adapter.yaml b/jjb/so/so-adapters-so-oof-adapter.yaml
new file mode 100644
index 0000000..2f61ab7
--- /dev/null
+++ b/jjb/so/so-adapters-so-oof-adapter.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: so-adapters-so-oof-adapter-project-view
+    project-name: so-adapters-so-oof-adapter
+    views:
+      - project-view
+
+- project:
+    name: so-adapters-so-oof-adapter-info
+    project: so/adapters/so-oof-adapter
+    project-name: so-adapters-so-oof-adapter
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/so/so-so-admin-cockpit.yaml b/jjb/so/so-so-admin-cockpit.yaml
new file mode 100644
index 0000000..8b6ab15
--- /dev/null
+++ b/jjb/so/so-so-admin-cockpit.yaml
@@ -0,0 +1,56 @@
+---
+- project:
+    name: so-so-admin-cockpit-project-view
+    project-name: so-so-admin-cockpit
+    views:
+      - project-view
+
+- project:
+    name: so-so-admin-cockpit-info
+    project: so/so-admin-cockpit
+    project-name: so-so-admin-cockpit
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
+
+- project:
+    name: so-so-admin-cockpit
+    project-name: 'so-so-admin-cockpit'
+    jobs:
+      - '{project-name}-{stream}-verify-java'
+      - '{project-name}-{stream}-merge-java'
+      - gerrit-maven-stage:
+          sign-artifacts: true
+          build-node: centos7-builder-4c-4g
+          maven-versions-plugin: true
+      - '{project-name}-gerrit-release-jobs':
+          build-node: centos7-docker-8c-8g
+    project: 'so/so-admin-cockpit'
+    stream:
+      - 'master':
+          branch: 'master'
+          java-version: openjdk11
+    mvn-settings: 'so-so-admin-cockpit-settings'
+    files: '**'
+    archive-artifacts: ''
+    build-node: ubuntu1804-docker-v1-8c-8g
+
+- project:
+    name: so-so-admin-cockpit-sonar
+    java-version: openjdk11
+    jobs:
+      - gerrit-maven-sonar
+    sonarcloud: true
+    sonarcloud-project-organization: '{sonarcloud_project_organization}'
+    sonarcloud-api-token: '{sonarcloud_api_token}'
+    sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}'
+    sonar-mvn-goal: '{sonar_mvn_goal}'
+    cron: '@daily'
+    max-git-repo-age-hours: 48
+    build-node: ubuntu1804-docker-v1-8c-8g
+    project: 'so/so-admin-cockpit'
+    project-name: 'so-so-admin-cockpit'
+    branch: 'master'
+    mvn-settings: 'so-so-admin-cockpit-settings'
+    mvn-goals: 'clean install'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
\ No newline at end of file
diff --git a/jjb/so/so-so-etsi-nfvo.yaml b/jjb/so/so-so-etsi-nfvo.yaml
new file mode 100644
index 0000000..27debb7
--- /dev/null
+++ b/jjb/so/so-so-etsi-nfvo.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: so-so-etsi-nfvo-project-view
+    project-name: so-so-etsi-nfvo
+    views:
+      - project-view
+
+- project:
+    name: so-so-etsi-nfvo-info
+    project: so/so-etsi-nfvo
+    project-name: so-so-etsi-nfvo
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/testsuite/testsuite-cds-mock-odl.yaml b/jjb/testsuite/testsuite-cds-mock-odl.yaml
new file mode 100644
index 0000000..72b3c34
--- /dev/null
+++ b/jjb/testsuite/testsuite-cds-mock-odl.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: testsuite-cds-mock-odl-project-view
+    project-name: testsuite-cds-mock-odl
+    views:
+      - project-view
+
+- project:
+    name: testsuite-cds-mock-odl-info
+    project: testsuite/cds-mock-odl
+    project-name: testsuite-cds-mock-odl
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/testsuite/testsuite-cds-mock-server.yaml b/jjb/testsuite/testsuite-cds-mock-server.yaml
new file mode 100644
index 0000000..b68e5fd
--- /dev/null
+++ b/jjb/testsuite/testsuite-cds-mock-server.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: testsuite-cds-mock-server-project-view
+    project-name: testsuite-cds-mock-server
+    views:
+      - project-view
+
+- project:
+    name: testsuite-cds-mock-server-info
+    project: testsuite/cds-mock-server
+    project-name: testsuite-cds-mock-server
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/jjb/testsuite/testsuite-cds-mock-ssh.yaml b/jjb/testsuite/testsuite-cds-mock-ssh.yaml
new file mode 100644
index 0000000..4d124e9
--- /dev/null
+++ b/jjb/testsuite/testsuite-cds-mock-ssh.yaml
@@ -0,0 +1,14 @@
+---
+- project:
+    name: testsuite-cds-mock-ssh-project-view
+    project-name: testsuite-cds-mock-ssh
+    views:
+      - project-view
+
+- project:
+    name: testsuite-cds-mock-ssh-info
+    project: testsuite/cds-mock-ssh
+    project-name: testsuite-cds-mock-ssh
+    build-node: centos7-builder-2c-1g
+    jobs:
+      - gerrit-info-yaml-verify
diff --git a/packer/common-packer b/packer/common-packer
index cc24d06..38f8109 160000
--- a/packer/common-packer
+++ b/packer/common-packer
@@ -1 +1 @@
-Subproject commit cc24d06cb483bfa17184f4fb55d6889c54e1b494
+Subproject commit 38f810974c2fdb9b4eb998b5efee93362904cced
diff --git a/packer/provision/local-builder.yaml b/packer/provision/local-builder.yaml
index 077c52f..932c01f 100644
--- a/packer/provision/local-builder.yaml
+++ b/packer/provision/local-builder.yaml
@@ -61,6 +61,15 @@
       become: true
       when: ansible_distribution == 'Ubuntu'
 
+    - name: Install Python 3.9
+      apt:
+        name:
+          - python3.9
+          - python3.9-dev
+          - python3.9-tk
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
     - name: Install libssl1.0-dev dep
       apt:
         name: libssl1.0-dev
diff --git a/packer/provision/local-docker.yaml b/packer/provision/local-docker.yaml
index 9f590ea..ca9db41 100644
--- a/packer/provision/local-docker.yaml
+++ b/packer/provision/local-docker.yaml
@@ -115,6 +115,15 @@
       become: true
       when: ansible_distribution == 'Ubuntu'
 
+    - name: Install Python 3.9
+      apt:
+        name:
+          - python3.9
+          - python3.9-dev
+          - python3.9-tk
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
     - name: Install nodejs-dev libssl1.0-dev dep
       apt:
         name: