Merge "adding voltha-bbsim-system tests to trigger on patches"
diff --git a/jjb/cord-test/nightly-build-pipeline.yaml b/jjb/cord-test/nightly-build-pipeline.yaml
index 68da0cd..245392d 100644
--- a/jjb/cord-test/nightly-build-pipeline.yaml
+++ b/jjb/cord-test/nightly-build-pipeline.yaml
@@ -130,6 +130,7 @@
                   Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
                   Created by Suchitra Vemuri, suchitra@opennetworking.org <br />
                   Copyright (c) 2017 Open Networking Foundation (ONF)
+    disabled: false
 
     <<: *test-pipe-job-boiler-plate
 
diff --git a/jjb/cord-test/voltha.yaml b/jjb/cord-test/voltha.yaml
new file mode 100644
index 0000000..9f0ab20
--- /dev/null
+++ b/jjb/cord-test/voltha.yaml
@@ -0,0 +1,20 @@
+---
+# POD Build Pipeline Jobs for Voltha Releases
+
+- project:
+    name: voltha-release-jobs
+
+    project-name: '{name}'
+
+    build-timeout: '300'
+
+    jobs:
+      # flex OCP pod with olt/onu - release voltha2.0 build job
+      - 'build_pod_manual':
+         testvm: 'qa-testvm-pod'
+         config-pod: 'flex-ocp-cord'
+         release: '2.0'
+         branch: 'master'
+         Jenkinsfile: 'Jenkinsfile-voltha-build'
+         oltDebVersion: 'openolt-seba-2.0.deb'
+         profile: 'multipleGem'
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index aeb4b3f..9ed426c 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -85,7 +85,7 @@
 
     # matching repos that should be version tagged by the version-tag job
     # (basically the same as imagebuilder projects + helm charts + tools
-    version-tag-projects-regexp: '^(xos.*|.*helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric|fabric-crossconnect|globalxos|hippie-oss|hss_db|hypercache|internetemulator|kubernetes-service|monitoring|olt-service|onos-service|openstack|progran|sdn-controller|simpleexampleservice|templateservice|vEE|vEG|vBBU|venb|vHSS|vMME|vnaas|vPGWC|vPGWU|vrouter|vsg|vsg-hw|vSGW|vSM|vspgwc|vspgwu|vtn-service|vtr|att-workflow-driver|tt-workflow-driver|ves-agent|voltha-bbsim|openolt|sadis-server|kafka-topic-exporter|pyvoltha|voltha-adtran-adapter|voltha-openolt-adapter|voltha-openonu-adapter|plyxproto|voltha-protos|alpine-grpc-base|cordctl|voltha-go|voltha-onos|device-management|cord-workflow.*|voltha-system-tests|openairinterface|omec-.*)$'
+    version-tag-projects-regexp: '^(xos.*|.*helm-charts|automation-tools|cord-tester|chameleon|rcord|mcord|ecord|acordion|addressmanager|epc-service|exampleservice|fabric|fabric-crossconnect|globalxos|hippie-oss|hss_db|hypercache|internetemulator|kubernetes-service|monitoring|olt-service|onos-service|openstack|progran|sdn-controller|simpleexampleservice|templateservice|vEE|vEG|vBBU|venb|vHSS|vMME|vnaas|vPGWC|vPGWU|vrouter|vsg|vsg-hw|vSGW|vSM|vspgwc|vspgwu|vtn-service|vtr|att-workflow-driver|tt-workflow-driver|ves-agent|voltha-bbsim|openolt|sadis-server|kafka-topic-exporter|pyvoltha|voltha-adtran-adapter|voltha-openolt-adapter|voltha-openonu-adapter|plyxproto|voltha-protos|alpine-grpc-base|cordctl|voltha-go|voltha-onos|device-management|cord-workflow.*|voltha-system-tests|openairinterface|omec-.*|bbsim|omci-sim)$'
 
     # PyPI related publishing variables
     #
diff --git a/jjb/pipeline/synopsys-check.groovy b/jjb/pipeline/synopsys-check.groovy
index e413117..a06ed62 100644
--- a/jjb/pipeline/synopsys-check.groovy
+++ b/jjb/pipeline/synopsys-check.groovy
@@ -115,6 +115,7 @@
                             "--detect.blackduck.signature.scanner.snippet.matching=SNIPPET_MATCHING " + \
                             "--detect.blackduck.signature.scanner.upload.source.mode=true " + \
                             "--detect.blackduck.signature.scanner.exclusion.patterns=/vendor/ " + \
+                            "--detect.policy.check.fail.on.severities=ALL,BLOCKER,CRITICAL,MAJOR,MINOR,TRIVIAL " + \
                             "--detect.tools=ALL " + \
                             "--detect.cleanup=false")
           }
diff --git a/jjb/pipeline/synopsys-single.groovy b/jjb/pipeline/synopsys-single.groovy
index 3fd61ba..0b214af 100644
--- a/jjb/pipeline/synopsys-single.groovy
+++ b/jjb/pipeline/synopsys-single.groovy
@@ -108,6 +108,7 @@
                         "--detect.blackduck.signature.scanner.snippet.matching=SNIPPET_MATCHING " + \
                         "--detect.blackduck.signature.scanner.upload.source.mode=true " + \
                         "--detect.blackduck.signature.scanner.exclusion.patterns=/vendor/ " + \
+                        "--detect.policy.check.fail.on.severities=ALL,BLOCKER,CRITICAL,MAJOR,MINOR,TRIVIAL " + \
                         "--detect.tools=ALL " + \
                         "--detect.cleanup=false")
       }
diff --git a/jjb/shell/github-release.sh b/jjb/shell/github-release.sh
index 1e31421..2ab2c94 100644
--- a/jjb/shell/github-release.sh
+++ b/jjb/shell/github-release.sh
@@ -56,18 +56,18 @@
 
 # To support golang projects create a GOPATH
 # If $DEST_GOPATH is not an empty string:
-# - set create GOPATH, and destination directory within in
+# - create GOPATH within WORKSPACE, and destination directory within
 # - set PATH to include $GOPATH/bin and the system go binaries
-# - symlink from $WORKSPACE/$GERRIT_PROJECT to new location in $GOPATH
-# - start release from that directory
+# - move project from $WORKSPACE/$GERRIT_PROJECT to new location in $GOPATH
+# - start release process within that directory
 
 DEST_GOPATH=${DEST_GOPATH:-}
 if [ ! -z "$DEST_GOPATH" ]; then
-  export GOPATH=${GOPATH:-~/go}
+  export GOPATH=${GOPATH:-$WORKSPACE/go}
   mkdir -p "$GOPATH/src/$DEST_GOPATH"
   export PATH=$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin:$GOPATH/bin
   release_path="$GOPATH/src/$DEST_GOPATH/$GERRIT_PROJECT"
-  ln -r -s "$WORKSPACE/$GERRIT_PROJECT" "$release_path"
+  mv "$WORKSPACE/$GERRIT_PROJECT" "$release_path"
 else
   release_path="$WORKSPACE/$GERRIT_PROJECT"
 fi
diff --git a/jjb/shell/make-unit.sh b/jjb/shell/make-unit.sh
index cb2ddf1..a6920e3 100755
--- a/jjb/shell/make-unit.sh
+++ b/jjb/shell/make-unit.sh
@@ -24,18 +24,18 @@
 
 # Fixes to for golang projects to support GOPATH
 # If $DEST_GOPATH is not an empty string:
-# - set create GOPATH, and destination directory within in
+# - create GOPATH within WORKSPACE, and destination directory within
 # - set PATH to include $GOPATH/bin and the system go binaries
-# - symlink from $WORKSPACE/$GERRIT_PROJECT to new location in $GOPATH
-# - start tests in that directory
+# - move project from $WORKSPACE/$GERRIT_PROJECT to new location in $GOPATH
+# - start tests within that directory
 
 DEST_GOPATH=${DEST_GOPATH:-}
 if [ ! -z "$DEST_GOPATH" ]; then
-  export GOPATH=${GOPATH:-~/go}
+  export GOPATH=${GOPATH:-$WORKSPACE/go}
   mkdir -p "$GOPATH/src/$DEST_GOPATH"
   export PATH=$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin:$GOPATH/bin
   test_path="$GOPATH/src/$DEST_GOPATH/$GERRIT_PROJECT"
-  ln -r -s "$WORKSPACE/$GERRIT_PROJECT" "$test_path"
+  mv "$WORKSPACE/$GERRIT_PROJECT" "$test_path"
 else
   test_path="$WORKSPACE/$GERRIT_PROJECT"
 fi
diff --git a/jjb/verify/bbsim.yaml b/jjb/verify/bbsim.yaml
new file mode 100644
index 0000000..6f1d201
--- /dev/null
+++ b/jjb/verify/bbsim.yaml
@@ -0,0 +1,29 @@
+---
+# verification jobs for 'bbsim' repo
+
+- project:
+    name: bbsim
+    project: '{name}'
+
+    jobs:
+      - 'verify-bbsim-jobs':
+          branch-regexp: '{all-branches-regexp}'
+      - 'publish-bbsim-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-bbsim-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_bbsim_licensed'
+      - 'make-unit-test':
+          dest-gopath: "github.com/opencord"
+          unit-test-keep-going: 'true'
+
+- job-group:
+    name: 'publish-bbsim-jobs'
+    jobs:
+      - 'docker-publish':
+          docker-repo: 'voltha'
+          dependency-jobs: 'version-tag'
diff --git a/jjb/verify/omci-sim.yaml b/jjb/verify/omci-sim.yaml
new file mode 100644
index 0000000..7d60783
--- /dev/null
+++ b/jjb/verify/omci-sim.yaml
@@ -0,0 +1,19 @@
+---
+# verification jobs for 'omci-sim' repo
+
+- project:
+    name: omci-sim
+    project: '{name}'
+
+    jobs:
+      - 'verify-omci-sim-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-omci-sim-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_omci-sim_licensed'
+#      - 'make-unit-test':
+#         dest-gopath: "github.com/opencord"
diff --git a/jjb/verify/voltha-openolt-adapter.yaml b/jjb/verify/voltha-openolt-adapter.yaml
index 0acdbe7..008b9de 100644
--- a/jjb/verify/voltha-openolt-adapter.yaml
+++ b/jjb/verify/voltha-openolt-adapter.yaml
@@ -20,7 +20,7 @@
       - 'make-unit-test':
           dest-gopath: "github.com/opencord"
           name-extension: "-lint"
-          unit-test-targets: 'lint'
+          unit-test-targets: 'lint sca'
           unit-test-keep-going: 'true'
           junit-allow-empty-results: true
           build-node: 'ubuntu16.04-basebuild-1c-2g'
diff --git a/jjb/verify/voltha-simolt-adapter.yaml b/jjb/verify/voltha-simolt-adapter.yaml
new file mode 100644
index 0000000..41afcac
--- /dev/null
+++ b/jjb/verify/voltha-simolt-adapter.yaml
@@ -0,0 +1,29 @@
+---
+# verification jobs for 'voltha-simolt-adapter' repo
+
+- project:
+    name: voltha-simolt-adapter
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-simolt-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+      - 'publish-voltha-simolt-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-voltha-simolt-adapter-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-simolt-adapter_licensed'
+      - 'make-unit-test':
+          dest-gopath: "github.com/opencord"
+          unit-test-keep-going: 'true'
+
+- job-group:
+    name: 'publish-voltha-simolt-adapter-jobs'
+    jobs:
+      - 'docker-publish':
+          docker-repo: 'voltha'
+          dependency-jobs: 'version-tag'
diff --git a/jjb/verify/voltha-simonu-adapter.yaml b/jjb/verify/voltha-simonu-adapter.yaml
new file mode 100644
index 0000000..29aa572
--- /dev/null
+++ b/jjb/verify/voltha-simonu-adapter.yaml
@@ -0,0 +1,29 @@
+---
+# verification jobs for 'voltha-simonu-adapter' repo
+
+- project:
+    name: voltha-simonu-adapter
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-simonu-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+      - 'publish-voltha-simonu-adapter-jobs':
+          branch-regexp: '{all-branches-regexp}'
+
+- job-group:
+    name: 'verify-voltha-simonu-adapter-jobs'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-simonu-adapter_licensed'
+      - 'make-unit-test':
+          dest-gopath: "github.com/opencord"
+          unit-test-keep-going: 'true'
+
+- job-group:
+    name: 'publish-voltha-simonu-adapter-jobs'
+    jobs:
+      - 'docker-publish':
+          docker-repo: 'voltha'
+          dependency-jobs: 'version-tag'
diff --git a/jjb/verify/voltha-test-manifest.yaml b/jjb/verify/voltha-test-manifest.yaml
new file mode 100644
index 0000000..811328b
--- /dev/null
+++ b/jjb/verify/voltha-test-manifest.yaml
@@ -0,0 +1,16 @@
+---
+# verification jobs for 'voltha-test-manifest' repo
+
+- project:
+    name: voltha-test-manifest
+    project: '{name}'
+
+    jobs:
+      - 'verify-voltha-test-manifest-jobs':
+          branch-regexp: '{supported-branches-regexp}'
+
+- job-group:
+    name: 'verify-voltha-test-manifest-jobs'
+    jobs:
+      - 'verify-repo-manifest'
+
diff --git a/packer/provision/baseline.sh b/packer/provision/baseline.sh
index 373aaa0..e95ad90 100644
--- a/packer/provision/baseline.sh
+++ b/packer/provision/baseline.sh
@@ -186,8 +186,9 @@
 
     # Allow jenkins access to update-alternatives command to switch java version
     cat <<EOF >/etc/sudoers.d/89-jenkins-user-defaults
+Cmnd_Alias UALTS = /usr/sbin/update-alternatives, /usr/sbin/update-java-alternatives
 Defaults:jenkins !requiretty
-jenkins ALL = NOPASSWD: /usr/bin/update-alternatives
+jenkins ALL = NOPASSWD: UALTS
 EOF
 
     export DEBIAN_FRONTEND=noninteractive
@@ -276,13 +277,54 @@
     echo "$CORRETTO_JAVA11_SHA256SUM  /tmp/corretto_java11.deb" | sha256sum -c -
     dpkg -i /tmp/corretto_java11.deb
 
+    # Fix corretto 11 lack of jinfo that prevents update-java-alternatives from working
+    # Upstream fix not integrated yet: https://github.com/corretto/corretto-11/pull/27
+    cat <<EOF >/usr/lib/jvm/.java-11-amazon-corretto.jinfo
+name=java-11-amazon-corretto
+alias=java-11-amazon-corretto
+priority=11100002
+section=main
+
+jdk java /usr/lib/jvm/java-11-amazon-corretto/bin/java
+jdk keytool /usr/lib/jvm/java-11-amazon-corretto/bin/keytool
+jdk rmid /usr/lib/jvm/java-11-amazon-corretto/bin/rmid
+jdk rmiregistry /usr/lib/jvm/java-11-amazon-corretto/bin/rmiregistry
+jdk jjs /usr/lib/jvm/java-11-amazon-corretto/bin/jjs
+jdk pack200 /usr/lib/jvm/java-11-amazon-corretto/bin/pack200
+jdk unpack200 /usr/lib/jvm/java-11-amazon-corretto/bin/unpack200
+jdk javac /usr/lib/jvm/java-11-amazon-corretto/bin/javac
+jdk jaotc /usr/lib/jvm/java-11-amazon-corretto/bin/jaotc
+jdk jlink /usr/lib/jvm/java-11-amazon-corretto/bin/jlink
+jdk jmod /usr/lib/jvm/java-11-amazon-corretto/bin/jmod
+jdk jhsdb /usr/lib/jvm/java-11-amazon-corretto/bin/jhsdb
+jdk jar /usr/lib/jvm/java-11-amazon-corretto/bin/jar
+jdk jarsigner /usr/lib/jvm/java-11-amazon-corretto/bin/jarsigner
+jdk javadoc /usr/lib/jvm/java-11-amazon-corretto/bin/javadoc
+jdk javap /usr/lib/jvm/java-11-amazon-corretto/bin/javap
+jdk jcmd /usr/lib/jvm/java-11-amazon-corretto/bin/jcmd
+jdk jconsole /usr/lib/jvm/java-11-amazon-corretto/bin/jconsole
+jdk jdb /usr/lib/jvm/java-11-amazon-corretto/bin/jdb
+jdk jdeps /usr/lib/jvm/java-11-amazon-corretto/bin/jdeps
+jdk jdeprscan /usr/lib/jvm/java-11-amazon-corretto/bin/jdeprscan
+jdk jimage /usr/lib/jvm/java-11-amazon-corretto/bin/jimage
+jdk jinfo /usr/lib/jvm/java-11-amazon-corretto/bin/jinfo
+jdk jmap /usr/lib/jvm/java-11-amazon-corretto/bin/jmap
+jdk jps /usr/lib/jvm/java-11-amazon-corretto/bin/jps
+jdk jrunscript /usr/lib/jvm/java-11-amazon-corretto/bin/jrunscript
+jdk jshell /usr/lib/jvm/java-11-amazon-corretto/bin/jshell
+jdk jstack /usr/lib/jvm/java-11-amazon-corretto/bin/jstack
+jdk jstat /usr/lib/jvm/java-11-amazon-corretto/bin/jstat
+jdk jstatd /usr/lib/jvm/java-11-amazon-corretto/bin/jstatd
+jdk rmic /usr/lib/jvm/java-11-amazon-corretto/bin/rmic
+jdk serialver /usr/lib/jvm/java-11-amazon-corretto/bin/serialver
+
+EOF
+
     # Set default version to be Java8
-    update-alternatives --set java  /usr/lib/jvm/java-1.8.0-amazon-corretto/jre/bin/java
-    update-alternatives --set javac /usr/lib/jvm/java-1.8.0-amazon-corretto/bin/javac
+    update-java-alternatives --set java-1.8.0-amazon-corretto
 
     # Set default version to be Java11
-    # update-alternatives --set java  /usr/lib/jvm/java-11-amazon-corretto/bin/java
-    # update-alternatives --set javac /usr/lib/jvm/java-11-amazon-corretto/bin/javac
+    # update-java-alternatives --set java-11-amazon-corretto
 
     ########################
     # --- START LFTOOLS DEPS