Merge "Zipping the combined log and removing it to save jenkins space"
diff --git a/jjb/pipeline/voltha/master/bbsim-tests.groovy b/jjb/pipeline/voltha/master/bbsim-tests.groovy
index 6bcc5ba..e38bc9a 100644
--- a/jjb/pipeline/voltha/master/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/master/bbsim-tests.groovy
@@ -26,7 +26,9 @@
 def test_workflow(name) {
   timeout(time: 5, unit: 'MINUTES') {
     stage('Deploy - '+ name + ' workflow') {
-        def extraHelmFlags = "${extraHelmFlags} --set global.log_level=DEBUG,onu=1,pon=1 "
+        def extraHelmFlags = "${extraHelmFlags} --set global.log_level=DEBUG,onu=1,pon=1 " +
+          " --set onos-classic.onosSshPort=30115 " +
+          "--set onos-classic.onosApiPort=30120 "
 
         if (gerritProject != "") {
           extraHelmFlags = extraHelmFlags + getVolthaImageFlags("${gerritProject}")
@@ -50,18 +52,17 @@
         """
         // forward ONOS and VOLTHA ports
         sh """
-        _TAG=onos-port-forward kubectl port-forward --address 0.0.0.0 -n infra svc/voltha-infra-onos-classic-hs 8101:8101&
-        _TAG=onos-port-forward kubectl port-forward --address 0.0.0.0 -n infra svc/voltha-infra-onos-classic-hs 8181:8181&
-        _TAG=voltha-port-forward kubectl port-forward --address 0.0.0.0 -n voltha svc/voltha-voltha-api 55555:55555&
+        JENKINS_NODE_COOKIE="dontKillMe" _TAG="voltha-voltha-api" bash -c "while true; do kubectl port-forward --address 0.0.0.0 -n voltha svc/voltha-voltha-api 55555:55555; done"&
         """
     }
   }
   stage('Test VOLTHA - '+ name + ' workflow') {
-    timeout(time: 5, unit: 'MINUTES') {
+    timeout(time: 10, unit: 'MINUTES') {
       sh """
       ROBOT_LOGS_DIR="$WORKSPACE/RobotLogs/${name.toUpperCase()}Workflow"
       mkdir -p \$ROBOT_LOGS_DIR
-      export ROBOT_MISC_ARGS="-d \$ROBOT_LOGS_DIR -e PowerSwitch"
+      export ROBOT_MISC_ARGS="-d \$ROBOT_LOGS_DIR -e PowerSwitch "
+      ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120"
 
       # By default, all tests tagged 'sanity' are run.  This covers basic functionality
       # like running through the ATT workflow for a single subscriber.
@@ -115,7 +116,7 @@
     label "${params.buildNode}"
   }
   options {
-    timeout(time: 35, unit: 'MINUTES')
+    timeout(time: 50, unit: 'MINUTES')
   }
   environment {
     PATH="$PATH:$WORKSPACE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
diff --git a/jjb/voltha-test/voltha-nightly-jobs.yaml b/jjb/voltha-test/voltha-nightly-jobs.yaml
index 7ba8dbb..d00d1be 100644
--- a/jjb/voltha-test/voltha-nightly-jobs.yaml
+++ b/jjb/voltha-test/voltha-nightly-jobs.yaml
@@ -551,3 +551,122 @@
       - timed: |
                  TZ=America/Los_Angeles
                  {time-trigger}
+
+
+# VOLTHA Manual Test Job
+# This job is triggered manually
+- job-template:
+    name: 'build_{config-pod}_{profile}{name-extension}_voltha_{release}_manual_test'
+    id: build_voltha_pod_manual_test
+    disabled: '{disable-job}'
+    description: |
+                  Post Tests on {config-pod} triggered by build_{config-pod}_{branch}, using {pipeline-script}<br /><br />
+                  Created from job-template {id} from ci-management/jjb/voltha-test/voltha-nightly-jobs.yaml <br />
+                  Created by Suchitra Vemuri, suchitra@opennetworking.org <br />
+                  Copyright (c) 2017 Open Networking Foundation (ONF)
+    <<: *voltha-pipe-job-boiler-plate
+    pipeline-script: 'voltha-physical-functional-tests.groovy'
+    manifest-url: 'https://gerrit.opencord.org/voltha-test-manifest.git'
+    manifest-branch: 'master'
+
+    oltAdapterAppLabel: 'adapter-open-olt'
+
+    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: 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: branch
+          default: '{branch}'
+          description: 'Branch of the test libraries to check out'
+
+      - string:
+          name: manifestUrl
+          default: '{manifest-url}'
+          description: 'Repo manifest URL for code checkout (so we can display changes in Jenkins)'
+
+      - string:
+          name: manifestBranch
+          default: '{manifest-branch}'
+          description: 'Repo manifest branch for code checkout (so we can display changes in Jenkins)'
+
+      - string:
+          name: workFlow
+          default: '{work-flow}'
+          description: 'Installs and uses the specified work flow on the POD'
+
+      - bool:
+          name: powerSwitch
+          default: '{power-switch}'
+          description: "Indicate whether POD has power switch to reboot ONUs/OLT remotely"
+
+      - string:
+          name: oltAdapterAppLabel
+          default: '{oltAdapterAppLabel}'
+          description: 'OLT adapter pod name'
+
+      - string:
+          name: testType
+          default: '{test-type}'
+          description: 'Passes the required test category to the groovy script'
+
+      - 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"'
+
+      - string:
+          name: cordTesterChange
+          default: '{cordTesterChange}'
+          description: 'Download a change for gerrit in the kind-voltha repo, example value: "refs/changes/32/19132/1"'
+    concurrent: true
+
+    project-type: pipeline
+    dsl: !include-raw-escape: ../pipeline/{pipeline-script}
diff --git a/jjb/voltha-test/voltha.yaml b/jjb/voltha-test/voltha.yaml
index 8a8d87e..25f2300 100644
--- a/jjb/voltha-test/voltha.yaml
+++ b/jjb/voltha-test/voltha.yaml
@@ -26,27 +26,31 @@
 
     jobs:
       # flex OCP pod with olt/onu - manual test job, voltha master build job
-      - 'build_pod_manual':
+      - 'build_voltha_pod_manual':
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
-          release: 'master'
-          branch: 'master'
-          num-of-openonu: '1'
           num-of-onos: '3'
           num-of-atomix: '3'
+          num-of-kafka: '3'
+          num-of-etcd: '3'
           VolthaEtcdPort: 9999
-          test-repo: 'voltha-system-tests'
-          Jenkinsfile: 'Jenkinsfile-voltha-build'
-          profile: '1T4GEM'
+          profile: 'TP'
+          name-extension: '_TT'
+          work-flow: 'TT'
 
       # flex pod1 test job - using voltha branch
-      - 'build_pod_test':
+      - 'build_voltha_pod_manual_test':
           build-node: 'qa-testvm-pod'
           config-pod: 'flex-ocp-cord'
-          profile: '1T4GEM'
+          disable-job: false
+          profile: 'TP'
           branch: 'master'
+          release: 'master'
+          work-flow: 'TT'
+          name-extension: '_TT'
+          test-type: ''
           test-repo: 'voltha-system-tests'
-          Jenkinsfile: 'Jenkinsfile-voltha-test'
+          pipeline-script: 'voltha-tt-physical-functional-tests.groovy'
 
       # onlab pod1 OCP pod with olt/onu - Manual testing BAL3.1 release voltha master build job
       - 'build_pod_manual':
@@ -318,11 +322,11 @@
           Jenkinsfile: 'Jenkinsfile-voltha-test'
 
       # ONF Menlo Soak POD test job - voltha-master branch
-      # Run tests every three days
-      - 'build_voltha_pod_soak_test':
+      # Run tests manually triggering the job
+      - 'build_voltha_pod_manual_test':
           build-node: 'menlo-soak-pod'
           config-pod: 'onf-soak-pod'
-          disable-job: true
+          disable-job: false
           profile: '1T8GEM'
           branch: 'master'
           release: 'master'
@@ -331,7 +335,6 @@
           test-type: 'Functional'
           test-repo: 'voltha-system-tests'
           pipeline-script: 'voltha-physical-soak-dt-tests.groovy'
-          time-trigger: "H H 2 * *"
 
       # ONF Menlo Soak POD test job - voltha-master branch
       # Run failure/recovery tests every Wednesday