Merge "VOL-3416 Add DT workflow to Tucson pod"
diff --git a/jjb/charts.yaml b/jjb/charts.yaml
index 13a74ed..3c42ccd 100644
--- a/jjb/charts.yaml
+++ b/jjb/charts.yaml
@@ -57,7 +57,7 @@
           echo "git version: $(git --version)"
 
           # Configure git
-          git config --global user.email "do-not-reply@opencord.org"
+          git config --global user.email "do-not-reply@opennetworking.org"
           git config --global user.name "Jenkins"
 
           # Checkout 'cord-charts-repo' repo that contains updated charts
diff --git a/jjb/cord-test/voltha.yaml b/jjb/cord-test/voltha.yaml
index 73f9d3c..2d530ec 100644
--- a/jjb/cord-test/voltha.yaml
+++ b/jjb/cord-test/voltha.yaml
@@ -169,36 +169,8 @@
           test-repo: 'voltha-system-tests'
           profile: 'TP'
 
-      # Menlo pod with olt/onu - Default tech profile and timer based job
-      - 'build_voltha_pod_release_timer':
-          build-node: 'menlo-demo-pod'
-          config-pod: 'onf-demo-pod-gpon'
-          release: 'master'
-          branch: 'master'
-          num-of-openonu: '2'
-          name-extension: '_DT_GPON'
-          work-flow: 'DT'
-          test-repo: 'voltha-system-tests'
-          Jenkinsfile: 'Jenkinsfile-voltha-build'
-          configurePod: true
-          profile: '1T8GEM'
-          time: '22'
-          VolthaEtcdPort: '9999'
-
-      # Menlo pod test job - uses tech profile on voltha branch
-      - 'build_voltha_pod_test':
-          build-node: 'menlo-demo-pod'
-          config-pod: 'onf-demo-pod-gpon'
-          release: 'master'
-          branch: 'master'
-          name-extension: '_DT_GPON'
-          work-flow: 'DT'
-          test-repo: 'voltha-system-tests'
-          profile: '1T8GEM'
-          pipeline-script: 'voltha-dt-physical-functional-tests.groovy'
-
       # Menlo pod with olt/onu - 1T4GEM tech profile and timer based job
-      - 'build_voltha_pod_release_dependent':
+      - 'build_voltha_pod_release_timer':
           build-node: 'menlo-demo-pod'
           config-pod: 'onf-demo-pod'
           release: 'master'
@@ -213,7 +185,7 @@
           in-band-management: true
           VolthaEtcdPort: '9999'
           reinstall-olt: false
-          trigger-after: build_onf-demo-pod_Default_voltha_2.4_test
+          time: '22'
 
       # Menlo pod test job - master test job uses tech profile on voltha branch
       - 'build_voltha_pod_test':
diff --git a/jjb/omec-ci.yaml b/jjb/omec-ci.yaml
index a359e90..2c85e9e 100644
--- a/jjb/omec-ci.yaml
+++ b/jjb/omec-ci.yaml
@@ -66,10 +66,10 @@
           pipeline-file: 'Jenkinsfile-omec-install-ngic-rtc-vnf.groovy'
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'docker-publish-github':
           build-timeout: 30
           docker-repo: 'omecproject'
@@ -103,10 +103,10 @@
           pipeline-file: 'Jenkinsfile-omec-install-c3po-hss-vnf.groovy'
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'docker-publish-github':
           build-timeout: 30
           docker-repo: 'omecproject'
@@ -136,10 +136,10 @@
           pipeline-file: 'Jenkinsfile-omec-install-openmme-vnf.groovy'
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'docker-publish-github':
           build-timeout: 30
           docker-repo: 'omecproject'
@@ -168,10 +168,10 @@
           pipeline-file: 'Jenkinsfile-omec-install-Nucleus-vnf.groovy'
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'docker-publish-github':
           build-timeout: 60
           docker-repo: 'omecproject'
@@ -194,10 +194,10 @@
     jobs:
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
 
 # for ignite
 - project:
@@ -215,10 +215,10 @@
     jobs:
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
 
 # for upf-epc
 - project:
@@ -234,10 +234,10 @@
     jobs:
       - 'omec-fossa':
           pipeline-file: 'omec-fossa-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'omec-reuse':
           pipeline-file: 'omec-reuse-scan.groovy'
-          build-node: 'omec-qa'
+          build-node: 'ubuntu16.04-basebuild-1c-2g'
       - 'docker-publish-github':
           build-timeout: 30
           docker-repo: 'omecproject'
diff --git a/jjb/pipeline/omec-fossa-scan.groovy b/jjb/pipeline/omec-fossa-scan.groovy
index 0c415ac..fa82b84 100644
--- a/jjb/pipeline/omec-fossa-scan.groovy
+++ b/jjb/pipeline/omec-fossa-scan.groovy
@@ -19,7 +19,7 @@
 
     agent {
         docker {
-            image "fossa-verify:latest"
+            image "omecproject/fossa-verify:latest"
             label "${params.buildNode}"
         }
     }
diff --git a/jjb/pipeline/omec-reuse-scan.groovy b/jjb/pipeline/omec-reuse-scan.groovy
index 605f285..03b19e8 100644
--- a/jjb/pipeline/omec-reuse-scan.groovy
+++ b/jjb/pipeline/omec-reuse-scan.groovy
@@ -19,7 +19,7 @@
 
     agent {
         docker {
-            image "reuse-verify:latest"
+            image "omecproject/reuse-verify:latest"
             label "${params.buildNode}"
         }
     }
diff --git a/jjb/pipeline/onos-app-release.groovy b/jjb/pipeline/onos-app-release.groovy
index 01b3454..f4b78bd 100644
--- a/jjb/pipeline/onos-app-release.groovy
+++ b/jjb/pipeline/onos-app-release.groovy
@@ -56,7 +56,7 @@
     sh 'ssh-keyscan -H -t rsa -p 29418 gerrit.opencord.org >> ~/.ssh/known_hosts'
 
     sh 'git config --global user.name "Jenkins"'
-    sh 'git config --global user.email "do-not-reply@opencord.org"'
+    sh 'git config --global user.email "do-not-reply@opennetworking.org"'
 
     // GPG key used to sign maven artifacts
     withCredentials([file(credentialsId: 'gpg-creds-maven', variable: 'GPUPG')]) {
diff --git a/jjb/shell/versiontag.sh b/jjb/shell/versiontag.sh
index d4091e6..05e7a44 100755
--- a/jjb/shell/versiontag.sh
+++ b/jjb/shell/versiontag.sh
@@ -154,7 +154,7 @@
   echo "Creating git tag: $TAG_VERSION"
   git checkout "$GERRIT_PATCHSET_REVISION"
 
-  git config --global user.email "do-not-reply@opencord.org"
+  git config --global user.email "do-not-reply@opennetworking.org"
   git config --global user.name "Jenkins"
 
   git tag -a "$TAG_VERSION" -m "Tagged by CORD Jenkins version-tag job: $BUILD_NUMBER, for Gerrit patchset: $GERRIT_CHANGE_NUMBER"
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index d0c9795..9548e35 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -9,40 +9,7 @@
     jobs:
       # name format is <job-template>-<olts>-<pon>-<onus>-<setup>
 
-      # jobs for 256 ONUs with a 1 openonu-adapter
-      - 'voltha-scale-measurements':
-          name: 'voltha-openonu-go-scale-measurements-master-1-8-32-activation'
-          'disable-job': true
-          build-node: 'onf-pod1-head-node'
-          time-trigger: "H H/4 * * *"
-          olts: 1
-          pons: 8
-          onus: 32
-          withFlows: false
-          provisionSubscribers: false
-          withEapol: false
-          withDhcp: false
-          withIgmp: false
-          openonuAdapterReplicas: 1
-          openonuAdapterImg: voltha/voltha-openonu-adapter-go:master
-          extraHelmFlags: '--set use_openonu_adapter_go=true'
-
-      - 'voltha-scale-measurements':
-          name: 'voltha-openonu-scale-measurements-master-1-8-32-activation'
-          'disable-job': true
-          build-node: 'onf-pod1-head-node'
-          time-trigger: "H H/4 * * *"
-          olts: 1
-          pons: 8
-          onus: 32
-          withFlows: false
-          provisionSubscribers: false
-          withEapol: false
-          withDhcp: false
-          withIgmp: false
-          openonuAdapterReplicas: 1
-          openonuAdapterImg: voltha/voltha-openonu-adapter:master
-
+      # OpenONU GO Scale
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-go-scale-measurements-master-1-16-64-activation'
           build-node: 'onf-pod1-head-node'
@@ -96,7 +63,6 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-att-subscribers'
-          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -188,7 +154,6 @@
       # jobs for DT with 512 ONUs with a 8 openonu-adapters and clustered ONOS.
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-dt-subscribers'
-          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -224,11 +189,10 @@
           extraHelmFlags: '--set defaults.rw_core.timeout=30s '
           release: voltha-2.4
           karafHome: apache-karaf-4.2.8
-          logLevel: INFO
           bbsimImg: ''
-          rwCoreImg: 'matteoscandolo/voltha-rw-core:voltha-2.4-dev'
+          rwCoreImg: ''
           ofAgentImg: ''
-          openoltAdapterImg: matteoscandolo/voltha-openolt-adapter:per-gem-lock
+          openoltAdapterImg: ''
           openonuAdapterImg: ''
           onosImg: ''
 
@@ -251,11 +215,10 @@
           extraHelmFlags: '--set defaults.rw_core.timeout=30s '
           release: voltha-2.4
           karafHome: apache-karaf-4.2.8
-          logLevel: INFO
           bbsimImg: ''
-          rwCoreImg: 'matteoscandolo/voltha-rw-core:voltha-2.4-dev'
+          rwCoreImg: ''
           ofAgentImg: ''
-          openoltAdapterImg: matteoscandolo/voltha-openolt-adapter:per-gem-lock
+          openoltAdapterImg: ''
           openonuAdapterImg: ''
           onosImg: ''
 
@@ -266,68 +229,11 @@
           extraHelmFlags: '--set defaults.rw_core.timeout=30s '
 
 
-- job-template:
-    id: 'voltha-scale-measurements'
-    name: '{name}'
-    pipeline-script: 'voltha-scale-test.groovy'
-    disabled: '{disable-job}'
-
-    description: |
-      <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/voltha-scale.yaml  <br /><br />
-      Using pipeline {pipeline-script} <br/><br/>
-      Scale measurements for VOLTHA 2.x
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: 30
-          artifact-num-to-keep: 15
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    # default values
-    release: master
-
-    bbsimImg: voltha/bbsim:master
-    rwCoreImg: voltha/voltha-rw-core:master
-    ofAgentImg: voltha/voltha-ofagent-go:master
-    openoltAdapterImg:  voltha/voltha-openolt-adapter:master
-    openonuAdapterImg: voltha/voltha-openonu-adapter:master
-    onosImg: voltha/voltha-onos:master
-
-    bbsimChart: onf/bbsim
-    volthaChart: onf/voltha
-    openoltAdapterChart: onf/voltha-adapter-openolt
-    openonuAdapterChart: onf/voltha-adapter-openonu
-
-    olts: 2
-    pons: 2
-    onus: 2
-    workflow: att
-    withFlows: false
-    provisionSubscribers: false
-    withEapol: true
-    withDhcp: true
-    withIgmp: false
-    withLLDP: false
-    withMibTemplate: true
-    withMonitoring: true
-    withProfiling: false
-    withPcap: false
-    openonuAdapterReplicas: 1
-    onosReplicas: 1
-    atomixReplicas: 0
-    extraHelmFlags: ''
-    onosStatInterval: 5
-    volthaSystemTestsChange: ''
-    kindVolthaChange: ''
-    inMemoryEtcdStorage: true
-    karafHome: 'apache-karaf-4.2.9'
-    logLevel: 'WARN'
-
+# list of parameters for the VOLTHA Jobs,
+# used as anchor so that can be shared across multiple jobs
+# to use in a job: `parameters: *voltha-build-job-parameters`
+- voltha-scale-job-parameters: &voltha-scale-job-parameters
+    name: voltha-scale-job-parameters
     parameters:
       - string:
           name: release
@@ -509,6 +415,70 @@
           default: '{karafHome}'
           description: 'Karaf home'
 
+- job-template:
+    id: 'voltha-scale-measurements'
+    name: '{name}'
+    pipeline-script: 'voltha-scale-test.groovy'
+    disabled: '{disable-job}'
+
+    description: |
+      <!-- Managed by Jenkins Job Builder -->
+      Created by {id} job-template from ci-management/jjb/voltha-scale.yaml  <br /><br />
+      Using pipeline {pipeline-script} <br/><br/>
+      Scale measurements for VOLTHA 2.x
+
+    properties:
+      - cord-infra-properties:
+          build-days-to-keep: 30
+          artifact-num-to-keep: 15
+
+    wrappers:
+      - lf-infra-wrappers:
+          build-timeout: '{build-timeout}'
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+    # default values
+    release: master
+
+    bbsimImg: voltha/bbsim:master
+    rwCoreImg: voltha/voltha-rw-core:master
+    ofAgentImg: voltha/voltha-ofagent-go:master
+    openoltAdapterImg:  voltha/voltha-openolt-adapter:master
+    openonuAdapterImg: voltha/voltha-openonu-adapter:master
+    onosImg: voltha/voltha-onos:master
+
+    bbsimChart: onf/bbsim
+    volthaChart: onf/voltha
+    openoltAdapterChart: onf/voltha-adapter-openolt
+    openonuAdapterChart: onf/voltha-adapter-openonu
+
+    olts: 2
+    pons: 2
+    onus: 2
+    workflow: att
+    withFlows: false
+    provisionSubscribers: false
+    withEapol: true
+    withDhcp: true
+    withIgmp: false
+    withLLDP: false
+    withMibTemplate: true
+    withMonitoring: true
+    withProfiling: false
+    withPcap: false
+    openonuAdapterReplicas: 1
+    onosReplicas: 1
+    atomixReplicas: 0
+    extraHelmFlags: ''
+    onosStatInterval: 5
+    volthaSystemTestsChange: ''
+    kindVolthaChange: ''
+    inMemoryEtcdStorage: true
+    karafHome: 'apache-karaf-4.2.9'
+    logLevel: 'WARN'
+
+    <<: *voltha-scale-job-parameters
+
     project-type: pipeline
     concurrent: false
 
@@ -578,187 +548,9 @@
     kindVolthaChange: ''
     inMemoryEtcdStorage: true
     karafHome: 'apache-karaf-4.2.9'
+    logLevel: 'INFO'
 
-    parameters:
-      - string:
-          name: release
-          default: '{release}'
-          description: 'Version of the code to test (matches a branch in kind-voltha and voltha-system-tests repos)'
-
-      - string:
-          name: buildNode
-          default: '{build-node}'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: logLevel
-          default: 'WARN'
-          description: 'Log level for all the components'
-
-      - string:
-          name: onus
-          default: '{onus}'
-          description: 'Number of ONUs to provision'
-
-      - string:
-          name: pons
-          default: '{pons}'
-          description: 'Number of PONs to provision'
-
-      - string:
-          name: olts
-          default: '{olts}'
-          description: 'How many BBSim instances to run'
-
-      - string:
-          name: workflow
-          default: '{workflow}'
-          description: 'Which workflow are we testing (att, dt, tt)'
-
-      - bool:
-          name: withFlows
-          default: '{withFlows}'
-          description: 'Wheter to push flows from ONOS'
-
-      - bool:
-          name: provisionSubscribers
-          default: '{provisionSubscribers}'
-          description: 'Wheter to provision subscribers durint the tests'
-
-      - bool:
-          name: withEapol
-          default: '{withEapol}'
-          description: 'Wheter EAPOL is enabled for the test'
-
-      - bool:
-          name: withDhcp
-          default: '{withDhcp}'
-          description: 'Wheter DHCP is enabled for the test'
-
-      - bool:
-          name: withIgmp
-          default: '{withIgmp}'
-          description: 'Wheter IGMP is enabled for the test'
-
-      - bool:
-          name: withLLDP
-          default: '{withLLDP}'
-          description: 'Wheter Link Discovery is enabled for the test'
-
-      - bool:
-          name: withMibTemplate
-          default: '{withMibTemplate}'
-          description: 'Option to trigger MIB template command'
-
-      - bool:
-          name: withMonitoring
-          default: '{withMonitoring}'
-          description: 'Option to install Prometheus'
-
-      - bool:
-          name: withProfiling
-          default: '{withProfiling}'
-          description: 'Option to collect profiling informations from rw-core and openolt (note that the appropriate -profile images needs to be used)'
-
-      - bool:
-          name: withPcap
-          default: '{withPcap}'
-          description: 'Capture a .pcap on the OpenFlow connection from the ofAgent side'
-
-      - string:
-          name: extraHelmFlags
-          default: '{extraHelmFlags}'
-          description: 'Any extra helm parameters you want (passed to every helm install command, not available if release != master)'
-
-      - string:
-          name: openonuAdapterReplicas
-          default: '{openonuAdapterReplicas}'
-          description: 'How many OpenONU adapter instances to run'
-
-      - string:
-          name: onosReplicas
-          default: '{onosReplicas}'
-          description: 'How many ONOSes instances to run'
-
-      - string:
-          name: atomixReplicas
-          default: '{atomixReplicas}'
-          description: 'How many Atomix instances to run'
-
-      - string:
-          name: onosStatInterval
-          default: '{onosStatInterval}'
-          description: 'How often ONOS should poll for ports, flows and meters'
-
-      - string:
-          name: bbsimImg
-          default: '{bbsimImg}'
-          description: 'Custom image selection for BBSIM (repo:tag)'
-
-      - string:
-          name: bbsimChart
-          default: '{bbsimChart}'
-          description: 'BBSim chart name (or location on file system)'
-
-      - string:
-          name: rwCoreImg
-          default: '{rwCoreImg}'
-          description: 'Custom image selection for VOLTHA (repo:tag)'
-
-      - string:
-          name: ofAgentImg
-          default: '{ofAgentImg}'
-          description: 'Custom image selection for OfAgent (repo:tag), only supports the go version'
-
-      - string:
-          name: volthaChart
-          default: '{volthaChart}'
-          description: 'VOLTHA chart name (or location on file system)'
-
-      - string:
-          name: openoltAdapterImg
-          default: '{openoltAdapterImg}'
-          description: 'Custom image selection for Openolt Adapter (repo:tag)'
-
-      - string:
-          name: openoltAdapterChart
-          default: '{openoltAdapterChart}'
-          description: 'OpenOLT chart name (or location on file system)'
-
-      - string:
-          name: openonuAdapterImg
-          default: '{openonuAdapterImg}'
-          description: 'Custom image selection for Openonu Adapter (repo:tag)'
-
-      - string:
-          name: openonuAdapterChart
-          default: '{openonuAdapterChart}'
-          description: 'OpenONU chart name (or location on file system)'
-
-      - string:
-          name: onosImg
-          default: '{onosImg}'
-          description: 'Custom image selection for Openonu Adapter (repo:tag)'
-
-      - string:
-          name: volthaSystemTestsChange
-          default: '{volthaSystemTestsChange}'
-          description: 'Download a change for gerrit in the voltha-system-tests repo, example value: "refs/changes/79/18779/13"'
-
-      - string:
-          name: kindVolthaChange
-          default: '{kindVolthaChange}'
-          description: 'Download a change for gerrit in the kind-voltha repo, example value: "refs/changes/32/19132/1"'
-
-      - bool:
-          name: inMemoryEtcdStorage
-          default: '{inMemoryEtcdStorage}'
-          description: 'Whether to write ETCD keys on disk or keep them in memory (true=inMemory)'
-
-      - string:
-          name: karafHome
-          default: '{karafHome}'
-          description: 'Karaf home'
+    <<: *voltha-scale-job-parameters
 
     project-type: pipeline
     concurrent: false