Merge "[VOL-2699] Fixed plot labels and title"
diff --git a/jjb/pipeline/siab-test.groovy b/jjb/pipeline/siab-test.groovy
index b13ca11..1ab109e 100644
--- a/jjb/pipeline/siab-test.groovy
+++ b/jjb/pipeline/siab-test.groovy
@@ -47,18 +47,6 @@
       }
     }
 
-    // FIXME: remove once Zack completes cord-tester refactoring, as master is
-    //  currently broken for siab tests.
-    stage('Cord-tester fix') {
-      steps {
-        sh """
-           pushd $WORKSPACE/cord/test/cord-tester
-           git checkout -b foo 7b3f901659a22c09e4759e343ad693b80125e06b
-           popd
-           """
-      }
-    }
-
     stage ('Reset Kubeadm') {
       steps {
         sh """
diff --git a/jjb/pipeline/voltha-go-tests.groovy b/jjb/pipeline/voltha-go-tests.groovy
index 33da214..5e519c2 100644
--- a/jjb/pipeline/voltha-go-tests.groovy
+++ b/jjb/pipeline/voltha-go-tests.groovy
@@ -108,6 +108,27 @@
 
          sleep 60 # Wait for log-collector and log-combine to complete
 
+         ## Pull out errors from log files
+         extract_errors_go() {
+           echo
+           echo "Error summary for $1:"
+           grep '"level":"error"' $WORKSPACE/kind-voltha/scripts/logger/combined/$1*
+           echo
+         }
+
+         extract_errors_python() {
+           echo
+           echo "Error summary for $1:"
+           grep 'ERROR' $WORKSPACE/kind-voltha/scripts/logger/combined/$1*
+           echo
+         }
+
+         extract_errors_go voltha-rw-core > $WORKSPACE/error-report.log
+         extract_errors_go adapter-open-olt >> $WORKSPACE/error-report.log
+         extract_errors_python adapter-open-onu >> $WORKSPACE/error-report.log
+         extract_errors_go voltha-ofagent >> $WORKSPACE/error-report.log
+         extract_errors_python onos >> $WORKSPACE/error-report.log
+
          cd $WORKSPACE/kind-voltha/scripts/logger/combined/
          tar czf $WORKSPACE/container-logs.tgz *
 
diff --git a/jjb/pipeline/voltha-physical-functional-tests.groovy b/jjb/pipeline/voltha-physical-functional-tests.groovy
index 51eb413..23b01c9 100644
--- a/jjb/pipeline/voltha-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha-physical-functional-tests.groovy
@@ -137,6 +137,30 @@
 
       sleep 60 # Wait for log-collector and log-combine to complete
 
+      # Clean up "announcer" pod used by the tests if present
+      kubectl delete pod announcer || true
+
+      ## Pull out errors from log files
+      extract_errors_go() {
+        echo
+        echo "Error summary for $1:"
+        grep '"level":"error"' $WORKSPACE/kind-voltha/scripts/logger/combined/$1*
+        echo
+      }
+
+      extract_errors_python() {
+        echo
+        echo "Error summary for $1:"
+        grep 'ERROR' $WORKSPACE/kind-voltha/scripts/logger/combined/$1*
+        echo
+      }
+
+      extract_errors_go voltha-rw-core > $WORKSPACE/error-report.log
+      extract_errors_go adapter-open-olt >> $WORKSPACE/error-report.log
+      extract_errors_python adapter-open-onu >> $WORKSPACE/error-report.log
+      extract_errors_python voltha-ofagent >> $WORKSPACE/error-report.log
+      extract_errors_python onos >> $WORKSPACE/error-report.log
+
       cd $WORKSPACE/kind-voltha/scripts/logger/combined/
       tar czf $WORKSPACE/container-logs.tgz *
 
diff --git a/jjb/pipeline/voltha-scale-measurements.groovy b/jjb/pipeline/voltha-scale-measurements.groovy
index 00395a5..0033d3a 100644
--- a/jjb/pipeline/voltha-scale-measurements.groovy
+++ b/jjb/pipeline/voltha-scale-measurements.groovy
@@ -141,7 +141,7 @@
                 i=$(voltctl device list | grep -v OLT | grep ACTIVE | wc -l)
               done
               echo "${expectedOnus} ONUs Activated in $SECONDS seconds (time: $SECONDS)"
-              echo $SECONDS > activation-time.txt
+              echo $SECONDS > voltha-devices.txt
             '''
           }
         }
@@ -157,11 +157,11 @@
                 z=$(sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@localhost ports -e | grep BBSM | wc -l)
               done
               echo "${expectedOnus} ports enabled in $SECONDS seconds (time: $SECONDS)"
-              echo $SECONDS > port-recognition.txt
+              echo $SECONDS > onos-ports.txt
               echo "ONOS-Duration(s)" > total-time.txt
               echo "VOLTHA-Duration(s)" > onu-activation.txt
-              cat activation-time.txt >> onu-activation.txt
-              paste activation-time.txt port-recognition.txt | awk '{print ($1 + $2)}' >> total-time.txt
+              cat voltha-devices.txt >> onu-activation.txt
+              paste voltha-devices.txt onos-ports.txt | awk '{print ($1 + $2)}' >> total-time.txt
             '''
           }
         }
@@ -181,9 +181,7 @@
           voltctl device list -o json > device-list.json
           python -m json.tool device-list.json > volt-device-list.json
           rm device-list.json
-          rm port-recognition.txt
-          rm activation-time.txt
-          sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@localhost ports > onos-ports.txt
+          sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 30115 karaf@localhost ports > onos-ports-list.txt
         '''
       }
       archiveArtifacts artifacts: '*.log,*.json,*txt'
diff --git a/jjb/siab.yaml b/jjb/siab.yaml
index 3d12c2c..0dc5d9d 100644
--- a/jjb/siab.yaml
+++ b/jjb/siab.yaml
@@ -18,7 +18,7 @@
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siba.yaml  <br /><br />
+      Created by {id} job-template from ci-management/jjb/siab.yaml  <br /><br />
       E2E Validation for Seba-in-a-Box
 
     properties:
@@ -68,7 +68,7 @@
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siba.yaml  <br /><br />
+      Created by {id} job-template from ci-management/jjb/siab.yaml, with pipleine: siab.groovy <br /><br />
       E2E Validation for Seba-in-a-Box
 
     properties:
@@ -118,7 +118,7 @@
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siba.yaml  <br /><br />
+      Created by {id} job-template from ci-management/jjb/siab.yaml, with pipleine: siab.groovy <br /><br />
       E2E Validation for Seba-in-a-Box
 
     properties:
@@ -169,7 +169,7 @@
 
     description: |
       <!-- Managed by Jenkins Job Builder -->
-      Created by {id} job-template from ci-management/jjb/siba.yaml  <br /><br />
+      Created by {id} job-template from ci-management/jjb/siab.yaml, with pipleine: siab-test.groovy <br /><br />
       E2E Validation for Seba-in-a-Box
 
     properties:
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index e43df51..f150d04 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -8,36 +8,116 @@
 
     jobs:
       - 'voltha-scale-measurements-periodic':
-          name: 'voltha-scale-measurements-periodic-256-200ms'
+          name: 'voltha-scale-measurements-periodic-8-32-200ms'
           build-node: 'onf-pod1-head-node'
-          time-trigger: "0 * * * *"
+          time-trigger: "H H/3 * * *"
           onuPerPon: 32
           ponPorts: 8
           expectedOnus: 256
           BBSIMdelay: 200
       - 'voltha-scale-measurements-periodic':
-          name: 'voltha-scale-measurements-periodic-128-200ms'
+          name: 'voltha-scale-measurements-periodic-8-32-1000ms'
           build-node: 'onf-pod1-head-node'
-          time-trigger: "15 * * * *"
-          onuPerPon: 32
-          ponPorts: 4
-          expectedOnus: 128
-          BBSIMdelay: 200
-      - 'voltha-scale-measurements-periodic':
-          name: 'voltha-scale-measurements-periodic-256-1000ms'
-          build-node: 'onf-pod1-head-node'
-          time-trigger: "30 * * * *"
+          time-trigger: "H H/3 * * *"
           onuPerPon: 32
           ponPorts: 8
           expectedOnus: 256
           BBSIMdelay: 1000
       - 'voltha-scale-measurements-periodic':
-          name: 'voltha-scale-measurements-periodic-128-1000ms'
+          name: 'voltha-scale-measurements-periodic-4-32-200ms'
           build-node: 'onf-pod1-head-node'
-          time-trigger: "45 * * * *"
+          time-trigger: "H H/3 * * *"
           onuPerPon: 32
           ponPorts: 4
           expectedOnus: 128
+          BBSIMdelay: 200
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-4-32-1000ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 32
+          ponPorts: 4
+          expectedOnus: 128
+          BBSIMdelay: 1000
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-16-32-200ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 32
+          ponPorts: 16
+          expectedOnus: 512
+          BBSIMdelay: 200
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-16-32-1000ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 32
+          ponPorts: 16
+          expectedOnus: 512
+          BBSIMdelay: 1000
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-4-64-200ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 64
+          ponPorts: 4
+          expectedOnus: 256
+          BBSIMdelay: 200
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-4-64-1000ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 64
+          ponPorts: 4
+          expectedOnus: 256
+          BBSIMdelay: 1000
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-4-128-200ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 128
+          ponPorts: 4
+          expectedOnus: 512
+          BBSIMdelay: 200
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-4-128-1000ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 128
+          ponPorts: 4
+          expectedOnus: 512
+          BBSIMdelay: 1000
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-1-128-200ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 128
+          ponPorts: 1
+          expectedOnus: 128
+          BBSIMdelay: 200
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-1-128-1000ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 128
+          ponPorts: 1
+          expectedOnus: 128
+          BBSIMdelay: 1000
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-1-64-200ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 64
+          ponPorts: 1
+          expectedOnus: 64
+          BBSIMdelay: 200
+      - 'voltha-scale-measurements-periodic':
+          name: 'voltha-scale-measurements-periodic-1-64-1000ms'
+          build-node: 'onf-pod1-head-node'
+          time-trigger: "H H/3 * * *"
+          onuPerPon: 64
+          ponPorts: 1
+          expectedOnus: 64
           BBSIMdelay: 1000
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-dev'