adding license check job+pipeline

Change-Id: I843f9fbbeba024290ace643ba00034a0c11d0b70
diff --git a/jjb/license-check.yaml b/jjb/license-check.yaml
new file mode 100644
index 0000000..cf0c87d
--- /dev/null
+++ b/jjb/license-check.yaml
@@ -0,0 +1,47 @@
+---
+# kubespray installation validation job
+
+- project:
+    name: license-check
+
+    project-name: '{name}'
+
+    jobs:
+      - 'license-check'
+
+- job-template:
+    name: 'mcord-license-check'
+    id: license-check
+    description: |
+                  <!-- Managed by Jenkins Job Builder -->
+                  Copyright (c) 2018 Open Networking Foundation (ONF)
+
+    parameters:
+      - string:
+         name: TestNodeName
+         default: 'ubuntu16.04-basebuild-4c-8g'
+         description: 'Jenkins node name of TestVM Node'
+
+      - string:
+         name: branch
+         default: 'master'
+         description: 'Gerrit Branch'
+
+      - string:
+         name: repos
+         default: 'c3po'
+         description: 'Name of the repos to check with this job'
+
+      - string:
+         name: prefix
+         default: 'cord-m'
+         description: 'The prefix to give to the projects in the BlackDuck dashboard'
+
+      - string:
+         name: notificationEmail
+         default: 'luca@opennetworking.org'
+         description: ''
+
+    concurrent: true
+
+    dsl: !include-raw-escape: pipeline/license-check.groovy
diff --git a/jjb/pipeline/license-check.groovy b/jjb/pipeline/license-check.groovy
new file mode 100644
index 0000000..69212c6
--- /dev/null
+++ b/jjb/pipeline/license-check.groovy
@@ -0,0 +1,50 @@
+// Copyright 2017-present Open Networking Foundation
+//
+// 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.
+
+repos = params.repos.split(",")
+
+def stepsForParallel = repos.collectEntries {
+    ["${it}" : checkRepo(it)]
+}
+
+node ("${TestNodeName}") {
+    timeout (100) {
+        try {
+            stage ("Cleanup") {
+                sh returnStdout: true, script: "rm -rf *"
+            }
+            stage ("Check repositories") {
+                parallel stepsForParallel
+            }
+            currentBuild.result = 'SUCCESS'
+        } catch (err) {
+            currentBuild.result = 'FAILURE'
+            step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "${notificationEmail}", sendToIndividuals: false])
+        }
+        echo "RESULT: ${currentBuild.result}"
+    }
+}
+
+def checkRepo(repo) {
+    return {
+        withCredentials([sshUserPrivateKey(credentialsId: '315e1f56-7193-464e-8af1-97bf7b1ee541', keyFileVariable: 'KEY')]) {
+            sh returnStdout: true, script: """
+                chmod 600 $KEY && eval `ssh-agent -s` && ssh-add $KEY &&
+                ssh-keyscan -p 29418 gerrit.opencord.org >> ~/.ssh/known_hosts &&
+                git clone -b ${branch} ssh://mcord-private@gerrit.opencord.org:29418/${repo}
+            """
+        }
+        hub_detect("--detect.source.path=${repo} --detect.blackduck.signature.scanner.snippet.mode=true --detect.project.name=${prefix}-${repo} --detect.project.version.name=${branch} --detect.search.depth=20")
+    }
+}