Add CCSDK support

This changes add support to Common Controller SDK project, which it's
extracting some code from SDNC.

Change-Id: I0e7365fdc854c4c6357c5c3b4bc7608f0076d241
Signed-off-by: Victor Morales <victor.morales@intel.com>
Issue-Id: INT-196
diff --git a/bootstrap/vagrant-onap/README.md b/bootstrap/vagrant-onap/README.md
index 08c5a57..c48190a 100644
--- a/bootstrap/vagrant-onap/README.md
+++ b/bootstrap/vagrant-onap/README.md
@@ -56,6 +56,7 @@
 | vid        | Virtual Infrastructure Development  |
 | vfc        | Virtual Function Controller         |
 | multicloud | Multi Cloud                         |
+| ccsdk      | Common Controller SDK               |
 | all_in_one | All ONAP services in a VM           |
 | testing    | Unit Test VM                        |
 
diff --git a/bootstrap/vagrant-onap/Vagrantfile b/bootstrap/vagrant-onap/Vagrantfile
index 148d8ed..8417cc9 100644
--- a/bootstrap/vagrant-onap/Vagrantfile
+++ b/bootstrap/vagrant-onap/Vagrantfile
@@ -160,7 +160,7 @@
       end
       all_in_one.vm.provision 'shell' do |s|
         s.path = 'vagrant_utils/postinstall.sh'
-        s.args = ['mr', 'sdc', 'aai', 'mso', 'robot', 'vid', 'sdnc', 'portal', 'dcae', 'policy', 'appc', 'vfc']
+        s.args = ['mr', 'sdc', 'aai', 'mso', 'robot', 'vid', 'sdnc', 'portal', 'dcae', 'policy', 'appc', 'vfc', 'ccsdk']
         s.env = conf
       end
     end
@@ -366,6 +366,19 @@
       end
     end
 
+    config.vm.define :ccsdk do |ccsdk|
+      ccsdk.vm.hostname = 'ccsdk'
+      ccsdk.vm.network :private_network, ip: '192.168.50.17'
+      ccsdk.vm.provider "openstack" do |v|
+        v.server_name = 'ccsdk'
+      end
+      ccsdk.vm.provision 'shell' do |s|
+        s.path = 'vagrant_utils/postinstall.sh'
+        s.args = ['ccsdk']
+        s.env = conf
+      end
+    end
+
   when 'testing'
 
     config.vm.define :testing do |testing|
diff --git a/bootstrap/vagrant-onap/lib/_onap_functions b/bootstrap/vagrant-onap/lib/_onap_functions
index 9e06010..18a4659 100755
--- a/bootstrap/vagrant-onap/lib/_onap_functions
+++ b/bootstrap/vagrant-onap/lib/_onap_functions
@@ -28,6 +28,15 @@
     docker logout
 }
 
+# pull_onap_image() - Pull Docker container image from a Docker Registry Hub
+function pull_onap_image {
+    local image=$1
+    local tag=$2
+    docker_openecomp_login
+    pull_docker_image $nexus_docker_repo/onap/${image}:$docker_version $tag
+    docker logout
+}
+
 # configure_bind()- Configure bind utils
 function configure_bind {
     _install_bind
diff --git a/bootstrap/vagrant-onap/lib/ccsdk b/bootstrap/vagrant-onap/lib/ccsdk
new file mode 100755
index 0000000..d115eaa
--- /dev/null
+++ b/bootstrap/vagrant-onap/lib/ccsdk
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+set -o xtrace
+
+source /var/onap/functions
+
+ccsdk_src_folder=$git_src_folder/ccsdk
+ccsdk_repos=("dashboard" "distribution" "parent" "platform/blueprints" "platform/nbapi" "platform/plugins" "sli" "sli/adaptors" "sli/core" "sli/northbound" "sli/plugins" "storage" "storage/esaas" "storage/pgaas" "utils")
+
+# clone_ccsdk_repos() - Function that clones the CCSDK repositories
+function clone_ccsdk_repos {
+    clone_repo ccsdk $ccsdk_src_folder
+
+    for dirc in ${ccsdk_repos[@]}; do
+        clone_repo ccsdk/$dirc $ccsdk_src_folder/$dirc
+    done
+}
+
+# compile_ccsdk_repos() - 
+function compile_ccsdk_repos {
+    compile_src ccsdk $ccsdk_src_folder
+
+    for dirc in ${ccsdk_repos[@]}; do
+        compile_src $ccsdk_src_folder/$dirc
+    done
+}
+
+# _build_ccsdk_images() - Build CCSDK Docker images from source code
+function _build_ccsdk_images {
+    install_package unzip
+    compile_src $ccsdk_src_folder/distribution
+    clone_repo ccsdk/distribution $ccsdk_src_folder/distribution
+    for image in ubuntu opendaylight odlsli dgbuilder-docker; do
+        build_docker_image $ccsdk_src_folder/distribution/$image docker
+    done
+}
+
+# get_ccsdk_images() - Get CCSDK Docker images
+function get_ccsdk_images {
+    if [[ "$build_image" == "True" ]]; then
+        _build_ccsdk_images
+    else
+        for image in ubuntu odl dgbuilder; do
+            pull_onap_image ccsdk-$image-image
+        done
+    fi
+
+}
+
+# install_ccsdk() - 
+function install_ccsdk {
+    echo "pass"
+}
+
+# init_ccsdk() - Function that initialize Multi Cloud services
+function init_ccsdk {
+    if [[ "$clone_repo" == "True" ]]; then
+        clone_ccsdk_repos
+        if [[ "$compile_repo" == "True" ]]; then
+            compile_ccsdk_repos
+        fi
+    fi
+    install_ccsdk
+}
diff --git a/bootstrap/vagrant-onap/lib/vfc b/bootstrap/vagrant-onap/lib/vfc
index 6fa4218..2b0634b 100755
--- a/bootstrap/vagrant-onap/lib/vfc
+++ b/bootstrap/vagrant-onap/lib/vfc
@@ -61,19 +61,15 @@
         build_nfvo_lcm_image
         # TODO(sshank): Add other VFC component docker image builds when they are ready.
     else
-        pull_docker_image nexus3.onap.org:10003/onap/vfc/nslcm latest
+        pull_onap_image vfc/nslcm
     fi
 }
 
-# run_vfc_images() - Run VFC docker images
-function run_vfc_images() {
-    docker run -d --name vfc-nslcm -p 3306:3306 -p 8403:8403 -e MSB_ADDR=127.0.0.1 nexus3.onap.org:10003/onap/vfc/nslcm
-    # TODO(sshank): Run other VFC component docker images when they are ready.
-}
-
 # install_vfc() - Download and install vfc service from source code
 function install_vfc {
-    run_vfc_images
+    nslcm_image=`docker images | grep nslcm | grep latest| awk '{print $1 ":" $2}'`
+    docker run -d --name vfc-nslcm -p 3306:3306 -p 8403:8403 -e MSB_ADDR=127.0.0.1 $nslcm_image
+    # TODO(sshank): Run other VFC component docker images when they are ready.
 }
 
 # init_vfc() - Function that initialize VF-C services
diff --git a/bootstrap/vagrant-onap/tests/test_ccsdk b/bootstrap/vagrant-onap/tests/test_ccsdk
new file mode 100644
index 0000000..2d2b87a
--- /dev/null
+++ b/bootstrap/vagrant-onap/tests/test_ccsdk
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+source /var/onap_tests/_test_base
+source /var/onap/ccsdk
+
+covered_functions=(
+"clone_ccsdk_repos" "compile_ccsdk_repos" "get_ccsdk_images"
+)
+
+# test_clone_ccsdk_repos() - Verify that CCSDL repositories are retrieved properly
+function test_clone_ccsdk_repos {
+    clone_ccsdk_repos
+
+    asserts_file_exist $ccsdk_src_folder/dashboard/pom.xml
+    asserts_file_exist $ccsdk_src_folder/distribution/pom.xml
+    asserts_file_exist $ccsdk_src_folder/parent/pom.xml
+    asserts_file_exist $ccsdk_src_folder/platform/blueprints/pom.xml
+    asserts_file_exist $ccsdk_src_folder/platform/nbapi/pom.xml
+    asserts_file_exist $ccsdk_src_folder/platform/plugins/pom.xml
+    asserts_file_exist $ccsdk_src_folder/sli/adaptors/pom.xml
+    asserts_file_exist $ccsdk_src_folder/sli/core/pom.xml
+    asserts_file_exist $ccsdk_src_folder/sli/northbound/pom.xml
+    asserts_file_exist $ccsdk_src_folder/sli/plugins/pom.xml
+    asserts_file_exist $ccsdk_src_folder/storage/esaas/pom.xml
+    asserts_file_exist $ccsdk_src_folder/storage/pgaas/pom.xml
+    asserts_file_exist $ccsdk_src_folder/utils/pom.xml
+}
+
+# test_compile_ccsdk_repos() - Verify the compilation of CCSDK repositories
+function compile_ccsdk_repos {
+    clone_ccsdk_repos
+    compile_ccsdk_repos
+
+    asserts_file_exist $ccsdk_src_folder/dashboard/oom-app-common/target/oom-app-common-1.1.0-SNAPSHOT.jar
+    asserts_file_exist $ccsdk_src_folder/dashboard/oom-app-os/target/oom-app-os-1.1.0-SNAPSHOT.war
+    asserts_file_exist $ccsdk_src_folder/dashboard/oom-app-overlay/target/oom-app-overlay-1.1.0-SNAPSHOT.war
+    asserts_file_exist $ccsdk_src_folder/distribution/dgbuilder/target/dgbuilder.0.1.0-SNAPSHOT.zip
+    asserts_file_exist $ccsdk_src_folder/distribution/platform-logic/installer/target/platform-logic-installer-0.1.0-SNAPSHOT.zip
+    asserts_file_exist $ccsdk_src_folder/platform/nbapi/target/commonnbapi-0.0.3.war
+
+    for adaptor in aai-service mdsal-resource resource-assignment sql-resource; do
+        for component in features provider; do
+            asserts_file_exist $ccsdk_src_folder/sli/adaptors/$adaptor/$component/target/$adaptor-$component-0.1.0-SNAPSHOT.jar
+        done
+        asserts_file_exist $ccsdk_src_folder/sli/adaptors/$adaptor/installer/target/sdnc-$adaptor-0.1.0-SNAPSHOT-installer.zip
+    done
+
+    for core in dblib filters sli sliapi sliPluginUtils; do
+        for component in features provider; do
+            asserts_file_exist $ccsdk_src_folder/sli/core/$core/$component/target/$core-$component-0.1.2-SNAPSHOT.jar
+        done
+        asserts_file_exist $ccsdk_src_folder/sli/core/$core/installer/target/sdnc-$core-0.1.2-SNAPSHOT-installer.zip
+    done
+    asserts_file_exist $ccsdk_src_folder/sli/core/sli/common/target/sli-common-0.1.2-SNAPSHOT.jar
+    asserts_file_exist $ccsdk_src_folder/sli/core/sli/recording/target/sli-recording-0.1.2-SNAPSHOT.jar
+    asserts_file_exist $ccsdk_src_folder/sli/core/sliapi/model/target/sliapi-model-0.1.2-SNAPSHOT.jar
+
+    for northbound in asdcApi dataChange; do
+        for component in features model provider; do
+            asserts_file_exist $ccsdk_src_folder/sli/northbound/$northbound/$component/target/$northbound-$component-0.1.0-SNAPSHOT.jar
+        done
+        asserts_file_exist $ccsdk_src_folder/sli/northbound/$northbound/installer/target/sdnc-$northbound-0.1.0-SNAPSHOT-installer.zip
+    done
+    asserts_file_exist $ccsdk_src_folder/sli/northbound/dmaap-listener/target/dmaap-listener-0.1.0-SNAPSHOT.jar
+    asserts_file_exist $ccsdk_src_folder/sli/northbound/ueb-listener/target/ueb-listener-0.1.0-SNAPSHOT.jar
+
+    for plugin in properties-node restapi-call-node; do
+        for component in features provider; do
+            asserts_file_exist $ccsdk_src_folder/sli/plugins/$plugin/$component/target/$plugin-$component-0.1.0-SNAPSHOT.jar
+        done
+        asserts_file_exist $ccsdk_src_folder/sli/plugins/$plugin/installer/target/sdnc-$plugin-0.1.0-SNAPSHOT-installer.zip
+    done
+}
+
+# test_get_ccsdk_images() - Verify that CCSDK images are retrieved or built properly
+function test_get_ccsdk_images {
+    clone_ccsdk_repos
+    get_ccsdk_images
+
+    for image in dgbuilder odlsli odl ubuntu; do
+        asserts_image onap/ccsdk-$image-image
+    done
+}
+
+if [ "$1" != '*' ]; then
+    unset covered_functions
+    covered_functions=$1
+fi
+main "${covered_functions[@]}"
diff --git a/bootstrap/vagrant-onap/tools/Run.ps1 b/bootstrap/vagrant-onap/tools/Run.ps1
index 103dfee..8e6c94f 100644
--- a/bootstrap/vagrant-onap/tools/Run.ps1
+++ b/bootstrap/vagrant-onap/tools/Run.ps1
@@ -25,7 +25,7 @@
 #>
 
 Param(
-    [ValidateSet("all_in_one","dns", "mr", "sdc", "aai", "mso", "robot", "vid", "sdnc", "portal", "dcae", "policy", "appc", "vfc", "multicloud", "testing")]
+    [ValidateSet("all_in_one","dns", "mr", "sdc", "aai", "mso", "robot", "vid", "sdnc", "portal", "dcae", "policy", "appc", "vfc", "multicloud", "ccsdk", "testing")]
     [Parameter(Mandatory=$True,Position=0)]
     [ValidateNotNullOrEmpty()]
     [String]
diff --git a/bootstrap/vagrant-onap/tools/run.sh b/bootstrap/vagrant-onap/tools/run.sh
index 094577f..08eae01 100755
--- a/bootstrap/vagrant-onap/tools/run.sh
+++ b/bootstrap/vagrant-onap/tools/run.sh
@@ -12,7 +12,7 @@
         Test case to use in testing mode.
 Commands:
     all_in_one  Deploy in all-in-one mode.
-    dns|mr|sdc|aai|mso|robot|vid|sdnc|portal|dcae|policy|appc|vfc|multicloud  Deploy chosen service.
+    dns|mr|sdc|aai|mso|robot|vid|sdnc|portal|dcae|policy|appc|vfc|multicloud|ccsdk  Deploy chosen service.
     testing  Deploy in testing mode.
 EOF
 }
@@ -55,7 +55,7 @@
     "all_in_one" )
         export DEPLOY_MODE='all-in-one'
         ;;
-    "dns" | "mr" | "sdc" | "aai" | "mso" | "robot" | "vid" | "sdnc" | "portal" | "dcae" | "policy" | "appc" | "vfc" | "multicloud" )
+    "dns" | "mr" | "sdc" | "aai" | "mso" | "robot" | "vid" | "sdnc" | "portal" | "dcae" | "policy" | "appc" | "vfc" | "multicloud" | "ccsdk" )
         export DEPLOY_MODE='individual'
         ;;
     "testing" )
diff --git a/bootstrap/vagrant-onap/vagrant_utils/postinstall.sh b/bootstrap/vagrant-onap/vagrant_utils/postinstall.sh
index b0e64ad..89a69dd 100755
--- a/bootstrap/vagrant-onap/vagrant_utils/postinstall.sh
+++ b/bootstrap/vagrant-onap/vagrant_utils/postinstall.sh
@@ -6,7 +6,6 @@
 
 create_configuration_files
 install_dev_tools
-install_java
 configure_bind
 
 for serv in $@; do