diff --git a/jjb/fossa.yaml b/jjb/fossa.yaml
index 9d6e09b..38fe47e 100644
--- a/jjb/fossa.yaml
+++ b/jjb/fossa.yaml
@@ -22,34 +22,34 @@
                   Created by {id} job-template from ci-management/jjb/fossa.yaml<br/>
                   Copyright (c) 2018-present Open Networking Foundation (ONF)
 
-    # replace with cord-infra-gerrit-trigger-patchset when skip-vote is removed
-    triggers:
-      - gerrit:
-          server-name: '{gerrit-server-name}'
-          dependency-jobs: '{dependency-jobs}'
-          silent-start: true
-          trigger-on:
-            - patchset-created-event:
-                exclude-drafts: true
-                exclude-trivial-rebase: false
-                exclude-no-code-change: true
-            - draft-published-event
-            - comment-added-contains-event:
-                comment-contains-value: '(?i)^.*recheck$'
-          projects:
-            - project-compare-type: REG_EXP
-              project-pattern: '{project-regexp}'
-              branches:
-                - branch-compare-type: REG_EXP
-                  branch-pattern: '{branch-regexp}'
-              file-paths:
-                - compare-type: REG_EXP
-                  pattern: '{file-include-regexp}'
-          skip-vote:
-            success: true
-            failed: true
-            unstable: true
-            notbuilt: true
+#   # replace with cord-infra-gerrit-trigger-patchset when skip-vote is removed
+#   triggers:
+#     - gerrit:
+#         server-name: '{gerrit-server-name}'
+#         dependency-jobs: '{dependency-jobs}'
+#         silent-start: true
+#         trigger-on:
+#           - patchset-created-event:
+#               exclude-drafts: true
+#               exclude-trivial-rebase: false
+#               exclude-no-code-change: true
+#           - draft-published-event
+#           - comment-added-contains-event:
+#               comment-contains-value: '(?i)^.*recheck$'
+#         projects:
+#           - project-compare-type: REG_EXP
+#             project-pattern: '{project-regexp}'
+#             branches:
+#               - branch-compare-type: REG_EXP
+#                 branch-pattern: '{branch-regexp}'
+#             file-paths:
+#               - compare-type: REG_EXP
+#                 pattern: '{file-include-regexp}'
+#         skip-vote:
+#           success: true
+#           failed: true
+#           unstable: true
+#           notbuilt: true
 
     properties:
       - cord-infra-properties:
diff --git a/jjb/omec-ci.yaml b/jjb/omec-ci.yaml
index 1c6efc6..594b35a 100644
--- a/jjb/omec-ci.yaml
+++ b/jjb/omec-ci.yaml
@@ -3,18 +3,6 @@
 # Uses github pull request builder to trigger and Jenkinsfiles from this repo
 #  https://github.com/omec-project/omec-project-ci
 
-# license check
-- project:
-    name: omec-license-check
-
-    blackduck-project: omec
-
-    jobs:
-      - 'synopsys-periodic-check':
-          github-organization: 'omec-project'
-          build-node: "ubuntu16.04-basebuild-2c-4g"
-          git-server-url: "https://github.com/omec-project"
-
 # generic OMEC test-case jobs, shared by other projects and triggered within pipelines
 - project:
     name: omec
diff --git a/jjb/onos.yaml b/jjb/onos.yaml
deleted file mode 100644
index 153b86c..0000000
--- a/jjb/onos.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-# onos jobs
-# Currently is only the license check across all repos on onos gerrit
-# Kind of a hack as it should happen in ONOS gerrit, but temporary
-
-- project:
-    name: onos-license-check
-
-    blackduck-project: onos
-
-    jobs:
-      - 'synopsys-periodic-check':
-          build-node: "ubuntu16.04-basebuild-2c-4g"
-          git-server-url: "https://gerrit.onosproject.org"
diff --git a/jjb/opencord.yaml b/jjb/opencord.yaml
deleted file mode 100644
index 42e7728..0000000
--- a/jjb/opencord.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# opencord jobs
-# Currently is only the license check across all repos
-
-- project:
-    name: cord-licensing-check
-
-    blackduck-project: cord
-
-    jobs:
-      # - 'synopsys-periodic-check':
-      #    build-node: "ubuntu16.04-basebuild-2c-4g"
-      #    git-server-url: "{gerrit-server-url}"
-      - 'synopsys-merge-check'
-
diff --git a/jjb/pipeline/synopsys-check.groovy b/jjb/pipeline/synopsys-check.groovy
deleted file mode 100644
index f521c91..0000000
--- a/jjb/pipeline/synopsys-check.groovy
+++ /dev/null
@@ -1,142 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// synopsys-check.groovy
-
-pipeline {
-
-  /* no label, executor is determined by JJB */
-  agent {
-    label "${params.buildNode}"
-  }
-
-  // Set so that synopsys_detect will know where to run golang tools from
-  environment {
-    PATH = "$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin/:$WORKSPACE/go/bin"
-    GOPATH = "$WORKSPACE/go"
-  }
-
-  options {
-      timeout(240)
-  }
-
-  stages {
-
-    stage ("Clean workspace") {
-      steps {
-        sh 'rm -rf *'
-      }
-    }
-
-    stage ("Get repo list") {
-      steps {
-        script {
-          writeFile file: 'get_repo_list.py', text: """
-#!/usr/bin/env python
-
-import json
-import os
-import requests
-
-if "github_organization" in os.environ:
-    # this is a github org
-    github_req = requests.get("https://api.github.com/orgs/%s/repos" %
-                              os.environ["github_organization"])
-
-    # pull out the "name" key out of each item
-    repo_list = map(lambda item: item["name"], github_req.json())
-
-else:
-    # this is a gerrit server
-
-    # fetch the list of projects
-    gerrit_req = requests.get("%s/projects/?pp=0" %
-                              os.environ["git_server_url"])
-    # remove XSSI prefix
-    # https://gerrit-review.googlesource.com/Documentation/rest-api.html#output
-    gerrit_json = json.loads(gerrit_req.text.splitlines()[1])
-
-    # remove repos which don't contain code
-    repo_list = [repo for repo in gerrit_json.keys()
-                 if repo not in ["All-Projects", "All-Users", "voltha-bal"]]
-
-# sort and print
-print(",".join(sorted(repo_list)))
-"""
-
-          /* this defines the variable globally - not ideal, but works - see:
-          https://stackoverflow.com/questions/50571316/strange-variable-scoping-behavior-in-jenkinsfile
-          */
-          repos = sh(
-            returnStdout: true,
-            script: "python -u get_repo_list.py").trim().split(",")
-
-          echo "repo list: ${repos}"
-        }
-      }
-    }
-
-    stage ("Checkout repos") {
-      steps {
-        script {
-          repos.each { gitRepo ->
-            sh "echo Checking out: ${gitRepo}"
-            checkout(changelog: false, scm: [
-                $class: 'GitSCM',
-                userRemoteConfigs: [[ url: "${params.git_server_url}/${gitRepo}/", ]],
-                branches: [[ name: "${branch}", ]],
-                extensions: [
-                  [$class: 'RelativeTargetDirectory', relativeTargetDir: "${gitRepo}"],
-                  [$class: 'CloneOption', depth: 0, noTags: false, reference: '', shallow: false],
-                ],
-              ])
-          }
-        }
-      }
-    }
-
-    stage ("Synopsys Detect") {
-      steps {
-        // catch any errors that occur so that logs can be saved in the next stage
-        catchError {
-          script {
-            repos.each { gitRepo ->
-              sh "echo Running Synopsys Detect on: ${gitRepo}"
-              synopsys_detect("--detect.source.path=${gitRepo} " + \
-                              "--detect.project.name=${blackduck_project}_${projectName} " + \
-                              "--detect.project.version.name=$git_tag_or_branch " + \
-                              "--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.report.timeout=900 " + \
-                              "--detect.tools=ALL " + \
-                              "--detect.cleanup=false")
-            }
-          }
-        }
-      }
-    }
-
-    stage ("Save logs") {
-      steps {
-        sh returnStdout: true, script: """
-          echo COPYING LOGS
-          mkdir -p bd_logs
-          cp -r /home/jenkins/blackduck/runs/* bd_logs
-          ls -l bd_logs/*/*
-          """
-        archiveArtifacts artifacts:'bd_logs/**/*.*'
-      }
-    }
-  }
-}
diff --git a/jjb/pipeline/synopsys-single.groovy b/jjb/pipeline/synopsys-single.groovy
deleted file mode 100644
index 8b63d89..0000000
--- a/jjb/pipeline/synopsys-single.groovy
+++ /dev/null
@@ -1,134 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// synopsys-single.groovy
-// checks a single repo against synopsys
-
-pipeline {
-
-  /* no label, executor is determined by JJB */
-  agent {
-    label "${params.buildNode}"
-  }
-
-  // Set so that synopsys_detect will know where to run golang tools from
-  environment {
-    PATH = "$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin/:$WORKSPACE/go/bin"
-    GOPATH = "$WORKSPACE/go"
-  }
-
-  options {
-      timeout(60)
-  }
-
-  stages {
-
-    stage ("Clean workspace") {
-      steps {
-        sh 'rm -rf *'
-      }
-    }
-
-    stage('Checkout') {
-      steps {
-        checkout([
-          $class: 'GitSCM',
-          userRemoteConfigs: [[ url: "${params.gitUrl}", ]],
-          branches: [[ name: "${params.gitRef}", ]],
-          extensions: [
-            [$class: 'WipeWorkspace'],
-            [$class: 'RelativeTargetDirectory', relativeTargetDir: "${params.projectName}"],
-            [$class: 'CloneOption', depth: 0, noTags: false, reference: '', shallow: false],
-          ],
-        ])
-
-        // Used later to set the branch/tag in the blackduck UI release
-        script {
-          git_tag_or_branch = sh(script:"cd $projectName; if [[ \$(git tag -l --points-at HEAD) ]]; then git tag -l --points-at HEAD; else echo ${branchName}; fi", returnStdout: true).trim()
-        }
-      }
-    }
-
-    stage ("Prepare") {
-      steps {
-
-        // change the path tested if for golang projects which expect to be found in GOPATH
-        script {
-          test_path = sh(script:"if [ -f \"$projectName/Gopkg.toml\" ] || [ -f \"$projectName/go.mod\" ] ; then echo $WORKSPACE/go/src/github.com/opencord/$projectName; else echo $projectName; fi", returnStdout: true).trim()
-        }
-
-        sh returnStdout: true, script: """
-          if [ -f "$projectName/package.json" ]
-          then
-            echo "Found '$projectName/package.json', assuming a Node.js project, running npm install"
-            pushd "$projectName"
-            npm install
-            popd
-          elif [ -f "$projectName/Gopkg.toml" ]
-          then
-            echo "Found '$projectName/Gopkg.toml', assuming a golang project using dep"
-            mkdir -p "\$GOPATH/src/github.com/opencord/"
-            mv "$WORKSPACE/$projectName" "$test_path"
-            pushd "$test_path"
-            dep ensure
-            popd
-          elif [ -f "$projectName/go.mod" ]
-          then
-            echo "Found '$projectName/go.mod', assuming a golang project using go modules"
-            mkdir -p "\$GOPATH/src/github.com/opencord/"
-            mv "$WORKSPACE/$projectName" "$test_path"
-            pushd "$test_path"
-            make dep
-            popd
-          fi
-        """
-      }
-    }
-
-    stage ("Synopsys Detect") {
-      steps {
-        // catch any errors that occur so that logs can be saved in the next stage
-        // docs: https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#catcherror-catch-error-and-set-build-result-to-failure
-        catchError {
-          sh "echo Running Synopsys Detect on: ${projectName}"
-
-          // Plugin: https://github.com/jenkinsci/synopsys-detect-plugin
-          // Documentation: https://synopsys.atlassian.net/wiki/spaces/INTDOCS/pages/62423113/Synopsys+Detect
-          // also: https://community.synopsys.com/s/article/Integrations-Documentation-Synopsys-Detect-Properties-for-version-5-4-0
-          // also: Help menu after logging into BlackDuck portal
-          synopsys_detect("--detect.source.path=$test_path " + \
-                          "--detect.project.name=${blackduck_project}_${projectName} " + \
-                          "--detect.project.version.name=$git_tag_or_branch " + \
-                          "--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.report.timeout=3600 " + \
-                          "--detect.tools=ALL " + \
-                          "--detect.cleanup=false")
-        }
-      }
-    }
-
-    stage ("Save Logs") {
-      steps {
-        sh returnStdout: true, script: """
-          echo COPYING LOGS
-          mkdir -p bd_logs
-          cp -r /home/jenkins/blackduck/runs/* bd_logs
-          ls -l bd_logs/*/*
-          """
-        archiveArtifacts artifacts:'bd_logs/**/*.*'
-      }
-    }
-  }
-}
diff --git a/jjb/synopsys-check.yaml b/jjb/synopsys-check.yaml
deleted file mode 100644
index ea66e53..0000000
--- a/jjb/synopsys-check.yaml
+++ /dev/null
@@ -1,122 +0,0 @@
----
-# synopsys license check job
-# Check for license issues with the Synopsys "Black Duck" tool
-
-- job-template:
-    id: 'synopsys-periodic-check'
-    name: 'synopsys-periodic-check_{blackduck-project}'
-
-    description: |
-                  Periodic merge check of code with synopsys toolset
-                  Created by {id} job-template from ci-management/jjb/synopsys-check.yaml<br/>
-                  Copyright (c) 2018-present Open Networking Foundation (ONF)
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: buildNode
-          default: '{build-node}'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: branch
-          default: 'master'
-          description: 'branch to check'
-
-      - string:
-          name: git_server_url
-          default: '{git-server-url}'
-          description: 'Git Server URL'
-
-      - string:
-          name: github_organization
-          default: '{github-organization}'
-          description: 'GitHub Organization (leave blank if using Gerrit)'
-
-      - string:
-          name: blackduck_project
-          default: '{blackduck-project}'
-          description: 'The project to assign repos to in the BlackDuck dashboard'
-
-    project-type: pipeline
-    concurrent: true
-
-    dsl: !include-raw-escape: pipeline/synopsys-check.groovy
-
-    triggers:
-      - timed: |
-                 TZ=America/Los_Angeles
-                 H 3 * * *
-
-
-- job-template:
-    id: 'synopsys-merge-check'
-    name: 'synopsys-merge-check_{blackduck-project}'
-
-    description: |
-                  Post-merge check of code with synopsys toolset
-                  Created by {id} job-template from ci-management/jjb/synopsys-check.yaml<br/>
-                  Copyright (c) 2018-present Open Networking Foundation (ONF)
-
-    triggers:
-      - cord-infra-gerrit-trigger-merge:
-          gerrit-server-name: '{gerrit-server-name}'
-          project-regexp: '{all-projects-regexp}'
-          branch-regexp: '{all-branches-regexp}'
-          file-include-regexp: '{all-files-regexp}'
-          dependency-jobs: '{dependency-jobs}'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '60'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    parameters:
-      - string:
-          name: buildNode
-          default: '{build-node}'
-          description: 'Name of the Jenkins node to run the job on'
-
-      - string:
-          name: gitUrl
-          default: '{gerrit-server-url}/$GERRIT_PROJECT'
-          description: 'URL to the git repo'
-
-      - string:
-          name: gitRef
-          default: '$GERRIT_PATCHSET_REVISION'
-          description: 'git ref to build (commit hash or tag)'
-
-      - string:
-          name: projectName
-          default: '$GERRIT_PROJECT'
-          description: 'Name of the project in Gerrit'
-
-      - string:
-          name: branchName
-          default: '$GERRIT_BRANCH'
-          description: 'Branch of the project in Gerrit'
-
-      - string:
-          name: blackduck_project
-          default: '{blackduck-project}'
-          description: 'The project to assign repos to in the BlackDuck dashboard'
-
-    project-type: pipeline
-    concurrent: true
-
-    dsl: !include-raw-escape: pipeline/synopsys-single.groovy
