[VOL-3820] DMI tests HW Pipeline

Change-Id: I49ada97b886bc64cc879e8e5df56b069dade4294
diff --git a/jjb/voltha-test/voltha-nightly-jobs.yaml b/jjb/voltha-test/voltha-nightly-jobs.yaml
index 278c91b..7b00b24 100644
--- a/jjb/voltha-test/voltha-nightly-jobs.yaml
+++ b/jjb/voltha-test/voltha-nightly-jobs.yaml
@@ -678,3 +678,236 @@
 
     project-type: pipeline
     dsl: !include-raw-escape: ../pipeline/{pipeline-script}
+
+# VOLTHA DMI Test Job
+# This job is triggered by a timer defined in the job
+- job-template:
+    name: 'verify_{config-pod}_{profile}{name-extension}_voltha_{release}_dmi'
+    id: verify_voltha_pod_dmi_test
+    disabled: '{disable-job}'
+    description: |
+                  Manual Build on POD {config-pod}, using pipeline/{pipeline-script} in {gerrit-server-url}/ci-management' <br /><br />
+                  Created from job-template {id} from ci-management/jjb/voltha-test/voltha-nightly-jobs.yaml <br />
+                  Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
+                  Copyright (c) 2018 Open Networking Foundation (ONF)
+
+    <<: *voltha-pipe-job-boiler-plate
+    # default values
+    pipeline-script: 'voltha/master/dmi-build-and-test.groovy'
+    VolthaEtcdPort: 2379
+    num-of-openonu: 1
+    num-of-onos: 3
+    num-of-atomix: 3
+    num-of-kafka: 3
+    num-of-etcd: 3
+    test-repo: 'voltha-system-tests'
+    release: 'master'
+    name-extension: ''
+    branch: 'master'
+    configurePod: true
+    volthaHelmChartsChange: ''
+    profile: 'Default'
+    logLevel: 'DEBUG'
+    enableMultiUni: false
+    uniPortMask: '0x0001'
+    bbsimReplicas: 0
+    num-of-onus: 0
+    num-of-ponports: 0
+    extraHelmFlags: ''
+    dmiChart: ''
+    OltDevMgr: ''
+    openoltAdapterChart: onf/voltha-adapter-openolt
+    oltAdapterReleaseName: open-olt
+    waitTimerForOltUp: 360
+
+    parameters:
+      - string:
+          name: buildNode
+          default: '{build-node}'
+          description: 'Name of the Jenkins executor node to run the job on'
+
+      - string:
+          name: TestNodeName
+          default: '{build-node}'
+          description: 'DEPRECATED - use buildNode instead'
+
+      - string:
+          name: logLevel
+          default: '{logLevel}'
+          description: 'Log level for all the components'
+
+      - string:
+          name: cordRepoUrl
+          default: '{gerrit-server-url}'
+          description: 'The URL of the CORD Project repository'
+
+      - string:
+          name: configBaseDir
+          default: 'pod-configs'
+          description: 'The directory inside the POD configs repository'
+
+      - string:
+          name: configDeploymentDir
+          default: 'deployment-configs'
+          description: 'The deployment configs folder'
+
+      - string:
+          name: configKubernetesDir
+          default: 'kubernetes-configs'
+          description: 'The kubernetes config folder'
+
+      - string:
+          name: configToscaDir
+          default: 'tosca-configs'
+          description: 'The tosca config folder'
+
+      - string:
+          name: configFileName
+          default: '{config-pod}'
+          description: 'The config file'
+
+      - string:
+          name: profile
+          default: '{profile}'
+          description: 'Technology Profile pushed to the ETCD'
+
+      - string:
+          name: helmRepoUrl
+          default: 'https://charts.opencord.org'
+          description: 'URL where helm-charts are published'
+
+      - string:
+          name: branch
+          default: '{branch}'
+
+      - string:
+          name: workFlow
+          default: '{work-flow}'
+          description: 'Installs and uses the specified work flow on the POD'
+
+      - string:
+          name: extraHelmFlags
+          default: '{extraHelmFlags}'
+          description: 'Helm flags (passed to each deployment)'
+
+      - string:
+          name: dmiChart
+          default: '{dmiChart}'
+          description: 'Device Management Interface Helm Chart'
+
+      - string:
+          name: OltDevMgr
+          default: '{OltDevMgr}'
+          description: 'OLT Device Manager App Name'
+
+      # openonu-go only supports a single replica, remove after 2.8
+      - string:
+          name: NumOfOpenOnu
+          default: '{num-of-openonu}'
+          description: 'Installs the specified Number of OpenOnu Adapters'
+
+      - string:
+          name: NumOfOnos
+          default: '{num-of-onos}'
+          description: 'Installs the specified Number of ONOS instances'
+
+      - bool:
+          name: enableMultiUni
+          default: '{enableMultiUni}'
+          description: "Enables the Multi UNI feature"
+
+      - string:
+          name: uniPortMask
+          default: '{uniPortMask}'
+          description: 'Open ONU adapter uni_port_mask, used when enableMultiUni is set to True, values: 0x0001-0x00FF'
+
+      - string:
+          name: bbsimReplicas
+          default: '{bbsimReplicas}'
+          description: 'Installs the specified Number of BBSim Instances'
+
+      - string:
+          name: onuNumber
+          default: '{num-of-onus}'
+          description: "Onus per PonPort"
+
+      - string:
+          name: ponNumber
+          default: '{num-of-ponports}'
+          description: "Number of PON Ports"
+
+      - string:
+          name: NumOfAtomix
+          default: '{num-of-atomix}'
+          description: 'Installs the specified Number of Atomix Instances'
+
+      - string:
+          name: NumOfKafka
+          default: '{num-of-kafka}'
+          description: 'Installs the specified Number of Kafka Instances'
+
+      - string:
+          name: NumOfEtcd
+          default: '{num-of-etcd}'
+          description: 'Installs the specified Number of Etcd Instances'
+
+      - bool:
+          name: configurePod
+          default: true
+          description: "Configure POD via TOSCA post build"
+
+      - bool:
+          name: reinstallOlt
+          default: '{reinstall-olt}'
+          description: "Re-install olt software bringing up CORD"
+
+      - bool:
+          name: restartOlt
+          default: '{restart-olt}'
+          description: "Re-install olt software bringing up CORD"
+
+      - string:
+          name: VolthaEtcdPort
+          default: '{VolthaEtcdPort}'
+          description: 'Localhost port that is forwarded to VOLTHA etcd'
+
+      - bool:
+          name: inBandManagement
+          default: '{in-band-management}'
+          description: 'Indicates whether POD is configured for in band management'
+
+      - 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: volthaHelmChartsChange
+          default: '{volthaHelmChartsChange}'
+          description: 'Download a change for gerrit in the voltha-helm-charts repo, example value: "refs/changes/32/19132/1"'
+
+      # this is used in the Adtran DT job
+      - string:
+          name: openoltAdapterChart
+          default: '{openoltAdapterChart}'
+          description: 'Olt adapter chart name (or location on file system)'
+
+      # this is used in the Adtran DT job
+      - string:
+          name: oltAdapterReleaseName
+          default: '{oltAdapterReleaseName}'
+          description: 'Olt adapter release name'
+
+      - string:
+          name: waitTimerForOltUp
+          default: '{waitTimerForOltUp}'
+          description: 'Wait timer for the OLT to come up after reboot'
+
+    concurrent: true
+    project-type: pipeline
+    dsl: !include-raw-escape: ../pipeline/{pipeline-script}
+
+    triggers:
+      - timed: |
+                 TZ=America/Los_Angeles
+                 H {time} * * *