Merge "Initial CSIT framework for dmaap/buscontroller"
diff --git a/bootstrap/vagrant-onap/README.md b/bootstrap/vagrant-onap/README.md
index 1478ab4..1afe533 100644
--- a/bootstrap/vagrant-onap/README.md
+++ b/bootstrap/vagrant-onap/README.md
@@ -59,11 +59,15 @@
 | vid        | Virtual Infrastructure Development  |
 | vnfsdk     | VNF SDK                             |
 | vvp        | VNF Validation Program              |
-|:----------:|-------------------------------------|
-| all_in_one | All ONAP services in a VM           |
-| testing    | Unit Test VM                        |
-|:----------:|-------------------------------------|
-| openstack  | OpenStack Deployment                |
+
+| app_name   | description                              |
+|:----------:|------------------------------------------|
+| all_in_one | All ONAP services in a VM (experimental) |
+| testing    | Unit Test VM                             |
+
+| app_name   | description          |
+|:----------:|----------------------|
+| openstack  | OpenStack Deployment |
 
 #### Generating documentation
 
diff --git a/bootstrap/vagrant-onap/Vagrantfile b/bootstrap/vagrant-onap/Vagrantfile
index 779f079..4b10392 100644
--- a/bootstrap/vagrant-onap/Vagrantfile
+++ b/bootstrap/vagrant-onap/Vagrantfile
@@ -493,7 +493,7 @@
 
         # Set Sync Folder
         nodeconfig.vm.synced_folder ".", "/vagrant", disabled: true
-        nodeconfig.vm.synced_folder './opt', '/opt/', create: true, type: sync_type
+        nodeconfig.vm.synced_folder './opt', '/opt/onap/', create: true, type: sync_type
         nodeconfig.vm.synced_folder './lib', '/var/onap/', create: true, type: sync_type
         if !is_windows
           nodeconfig.vm.synced_folder '~/.m2', '/root/.m2/', create: true
diff --git a/bootstrap/vagrant-onap/lib/_onap_functions b/bootstrap/vagrant-onap/lib/_onap_functions
index f68d6db..c65e589 100755
--- a/bootstrap/vagrant-onap/lib/_onap_functions
+++ b/bootstrap/vagrant-onap/lib/_onap_functions
@@ -2,14 +2,18 @@
 
 # create_configuration_files() -  Store credentials in files
 function create_configuration_files {
-    mkdir -p /opt/config
-    echo $nexus_docker_repo > /opt/config/nexus_docker_repo.txt
-    echo $nexus_username > /opt/config/nexus_username.txt
-    echo $nexus_password > /opt/config/nexus_password.txt
-    echo $openstack_username > /opt/config/openstack_username.txt
-    echo $openstack_tenant_id > /opt/config/tenant_id.txt
-    echo $dmaap_topic > /opt/config/dmaap_topic.txt
-    echo $docker_version > /opt/config/docker_version.txt
+    local onap_config_folder="/opt/config"
+
+    mkdir -p $onap_config_folder
+    pushd $onap_config_folder
+    echo $nexus_docker_repo > nexus_docker_repo.txt
+    echo $nexus_username > nexus_username.txt
+    echo $nexus_password > nexus_password.txt
+    echo $openstack_username > openstack_username.txt
+    echo $openstack_tenant_id > tenant_id.txt
+    echo $dmaap_topic > dmaap_topic.txt
+    echo $docker_version > docker_version.txt
+    popd
 }
 
 # docker_openecomp_login() - Login to OpenECOMP Docker Hub
diff --git a/bootstrap/vagrant-onap/lib/aai b/bootstrap/vagrant-onap/lib/aai
index 316a981..1ce3485 100755
--- a/bootstrap/vagrant-onap/lib/aai
+++ b/bootstrap/vagrant-onap/lib/aai
@@ -115,19 +115,13 @@
 
     if [[ "$build_image" == "True" ]]; then
         unset MAVEN_OPTS
-        build_docker_image ${src_folders[aai]}/resources/aai-resources
-        build_docker_image ${src_folders[aai]}/traversal/aai-traversal
-        build_docker_image ${src_folders[aai]}/search-data-service
-        build_docker_image ${src_folders[aai]}/data-router
-        build_docker_image ${src_folders[aai]}/model-loader
-        build_docker_image ${src_folders[aai]}/sparky-be
+        for project in resources/aai-resources traversal/aai-traversal search-data-service data-router model-loader sparky-be; do
+            build_docker_image ${src_folders[aai]}/$project
+        done
     else
-        pull_onap_image aai-resources
-        pull_onap_image aai-traversal
-        pull_onap_image search-data-service
-        pull_onap_image data-router
-        pull_onap_image model-loader
-        pull_onap_image sparky-be
+        for image in aai-resources aai-traversal search-data-service data-router model-loader sparky-be; do
+            pull_onap_image $image
+        done
     fi
 }
 
diff --git a/bootstrap/vagrant-onap/lib/appc b/bootstrap/vagrant-onap/lib/appc
index ad01ca5..95654fc 100755
--- a/bootstrap/vagrant-onap/lib/appc
+++ b/bootstrap/vagrant-onap/lib/appc
@@ -6,7 +6,7 @@
 # _build_appc_images() - Function that creates APPC images from source code.
 function _build_appc_images {
     get_sdnc_images
-    build_docker_image $appc_src_folder/deployment/installation/appc docker
+    build_docker_image ${src_folders[appc]}/deployment/installation/appc docker
 }
 
 # get_appc_images() - Function that gets or build APPC docker images
@@ -14,17 +14,15 @@
     if [[ "$build_image" == "True" ]]; then
         _build_appc_images
     else
-        pull_openecomp_image appc-image openecomp/appc-image:latest
-        pull_openecomp_image dgbuilder-sdnc-image openecomp/dgbuilder-sdnc-image:latest
+        for image in appc-image dgbuilder-sdnc-image; do
+            pull_openecomp_image $image openecomp/$image:latest
+        done
     fi
 }
 
 # install_appc() - Function that clones and installs the APPC services from source code
 function install_appc {
-    pushd $appc_src_folder/deployment/docker-compose
-    install_docker_compose
-    /opt/docker/docker-compose up -d
-    popd
+    run_docker_compose ${src_folders[appc]}/deployment/docker-compose
 }
 
 # init_appc() - Function that initialize APPC services
diff --git a/bootstrap/vagrant-onap/lib/ccsdk b/bootstrap/vagrant-onap/lib/ccsdk
index 112839c..93ee0c8 100755
--- a/bootstrap/vagrant-onap/lib/ccsdk
+++ b/bootstrap/vagrant-onap/lib/ccsdk
@@ -5,9 +5,9 @@
 # _build_ccsdk_images() - Build CCSDK Docker images from source code
 function _build_ccsdk_images {
     install_package unzip
-    compile_src $ccsdk_src_folder/distribution
+    compile_src ${src_folders[ccsdk]}/distribution
     for image in ubuntu opendaylight odlsli dgbuilder-docker; do
-        build_docker_image $ccsdk_src_folder/distribution/$image docker
+        build_docker_image ${src_folders[ccsdk]}/distribution/$image docker
     done
 }
 
diff --git a/bootstrap/vagrant-onap/lib/commons b/bootstrap/vagrant-onap/lib/commons
index 5d0c691..90f73d2 100755
--- a/bootstrap/vagrant-onap/lib/commons
+++ b/bootstrap/vagrant-onap/lib/commons
@@ -32,13 +32,16 @@
     source /etc/os-release || source /usr/lib/os-release
     case ${ID,,} in
         *suse)
+            CHECK_CMD="zypper search --match-exact --installed"
         ;;
         ubuntu|debian)
-            dpkg -s "$@" > /dev/null
+            CHECK_CMD="dpkg -l"
         ;;
         rhel|centos|fedora)
+            CHECK_CMD="rpm -q"
         ;;
     esac
+    ${CHECK_CMD} "$@" &> /dev/null
 }
 
 # install_packages() - Install a list of packages
diff --git a/bootstrap/vagrant-onap/lib/config/env-vars b/bootstrap/vagrant-onap/lib/config/env-vars
index a55557a..7712de8 100755
--- a/bootstrap/vagrant-onap/lib/config/env-vars
+++ b/bootstrap/vagrant-onap/lib/config/env-vars
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # Source code destination folder
-git_src_folder=/opt
+git_src_folder=/opt/onap
 
 declare -A src_folders
 src_folders=(
diff --git a/bootstrap/vagrant-onap/lib/dcae b/bootstrap/vagrant-onap/lib/dcae
index d6fdd89..25efddd 100755
--- a/bootstrap/vagrant-onap/lib/dcae
+++ b/bootstrap/vagrant-onap/lib/dcae
@@ -4,7 +4,7 @@
 
 # _create_config_file() - Creates a configuration yaml file for the controller
 function _create_config_file {
-    cat > $dcae_src_folder/controller/config.yaml << EOL
+    cat > ${src_folders[dcae]}/controller/config.yaml << EOL
 ZONE: $dcae_zone
 STATE: $dcae_state
 DCAE-VERSION: $artifacts_version
@@ -36,14 +36,14 @@
     if [[ "$compile_repo" != "True" ]]; then
         compile_repos "dcae"
     fi
-    build_docker_image $dcae_src_folder/dmaapbc openecomp/dcae-dmaapbc
-    build_docker_image $dcae_src_folder/orch-dispatcher dcae/orch-dispatcher
+    build_docker_image ${src_folders[dcae]}/dmaapbc openecomp/dcae-dmaapbc
+    build_docker_image ${src_folders[dcae]}/orch-dispatcher dcae/orch-dispatcher
 
-    pushd $dcae_src_folder/demo
+    pushd ${src_folders[dcae]}/demo
     bash dcae-demo-controller/src/main/docker-build/build.sh
     popd
 
-    build_docker_image $dcae_src_folder/dcae-inventory
+    build_docker_image ${src_folders[dcae]}/dcae-inventory
 }
 
 # get_dcae_images() - Function that retrieves or builds DCAE docker images.
@@ -58,13 +58,12 @@
 
 # install_dcae() - Function that clones and installs the DCAE controller services from source code
 function install_dcae {
-    install_docker_compose
-    pushd $dcae_src_folder/demo/startup/controller
+    pushd ${src_folders[dcae]}/demo/startup/controller
     if [[ "$build_image" == "True" ]]; then
         dcae_image=`docker images | grep dcae-controller | awk '{print $1 ":" $2}'`
         sed -i "s|DOCKER-REGISTRY/openecomp/dcae-controller:DCAE-VERSION|$dcae_image|g" docker-compose.yml
         sed -i "s|MTU|$MTU|g" docker-compose.yml
-        /opt/docker/docker-compose up -d
+        run_docker_compose .
     else
         bash init.sh
         install_package make
diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions
index 435c621..f40761f 100755
--- a/bootstrap/vagrant-onap/lib/functions
+++ b/bootstrap/vagrant-onap/lib/functions
@@ -60,10 +60,6 @@
         else
             _git_timed clone ${repo_url}${repo} $dest_folder
         fi
-    else
-        pushd $dest_folder
-        _git_timed pull
-        popd
     fi
 }
 
@@ -277,6 +273,16 @@
     docker run $@
 }
 
+# run_docker_compose() - Ensures that docker compose is installed and run it in background
+function run_docker_compose {
+    local folder=$1
+
+    install_docker_compose
+    pushd $folder
+    /opt/docker/docker-compose up -d
+    popd
+}
+
 # install_docker_compose() - Download and install docker-engine 
 function install_docker_compose {
     local docker_compose_version=${1:-1.12.0}
@@ -287,6 +293,33 @@
     fi
 }
 
+# install_chefdk() - Install ChefDK package
+function install_chefdk {
+    local chefdk_version="2.4.17"
+
+    if is_package_installed chefdk; then
+        return
+    fi
+    pushd $(mktemp -d)
+    source /etc/os-release || source /usr/lib/os-release
+    case ${ID,,} in
+        *suse)
+        ;;
+        ubuntu|debian)
+        chefdk_pkg="chefdk_$chefdk_version-1_amd64.deb"
+        chefdk_url="https://packages.chef.io/files/stable/chefdk/$chefdk_version/ubuntu/$VERSION_ID/$chefdk_pkg"
+
+        wget $chefdk_url
+        dpkg -i $chefdk_pkg
+        apt-get install -f -y
+        ;;
+        rhel|centos|fedora)
+        rpm -Uvh "https://packages.chef.io/files/stable/chefdk/$chefdk_version/el/7/chefdk-$chefdk_version-1.el7.x86_64.rpm"
+        ;;
+    esac
+    popd
+}
+
 # _install_ODL() - Download and Install OpenDayLight SDN controller
 function _install_ODL {
     if [ ! -d /opt/opendaylight/current ]; then
@@ -401,7 +434,7 @@
     echo "${dev_name}1  $mount_dir           ext4    errors=remount-ro,noatime,barrier=0 0       1" >> /etc/fstab
 }
 
-# add no_proxy values to environment, used for internal IPs generated at deploy time
+# add_no_proxy_value() - Add no_proxy values into environment file, used for internal IPs generated at deploy time
 function add_no_proxy_value {
     if [[ `grep "no_proxy" /etc/environment` ]]; then
         sed -i.bak "s/^no_proxy.*$/&,$1/" /etc/environment
@@ -414,3 +447,4 @@
         echo "NO_PROXY=$1" >> /etc/environment
     fi
 }
+
diff --git a/bootstrap/vagrant-onap/lib/mr b/bootstrap/vagrant-onap/lib/mr
index 499f53f..bba7486 100755
--- a/bootstrap/vagrant-onap/lib/mr
+++ b/bootstrap/vagrant-onap/lib/mr
@@ -12,7 +12,7 @@
 function install_message_router {
     install_docker_compose
 
-    pushd $mr_src_folder
+    pushd ${src_folders[mr]}
     bash deploy.sh
     popd
 }
@@ -20,7 +20,7 @@
 # init_mr() - Function that initialize Message Router services
 function init_mr {
     if [[ "$clone_repo" == "True" ]]; then
-        clone_repo dcae/demo/startup/message-router $mr_src_folder
+        clone_repo dcae/demo/startup/message-router ${src_folders[mr]}
     fi
     if [[ "$skip_get_images" == "False" ]]; then
         get_mr_images
diff --git a/bootstrap/vagrant-onap/lib/msb b/bootstrap/vagrant-onap/lib/msb
index a14e8ea..bcf27fe 100755
--- a/bootstrap/vagrant-onap/lib/msb
+++ b/bootstrap/vagrant-onap/lib/msb
@@ -8,9 +8,9 @@
         compile_repos "msb"
     fi
 
-    build_docker_image $msb_src_folder/apigateway/distributions/msb-apigateway/src/main/basedocker onap/msb/msb_base
-    build_docker_image $msb_src_folder/apigateway/distributions/msb-apigateway/src/main/docker onap/msb/msb_apigateway
-    build_docker_image $msb_src_folder/discovery/distributions/msb-discovery/src/main/docker onap/msb/msb_discovery
+    build_docker_image ${src_folders[msb]}/apigateway/distributions/msb-apigateway/src/main/basedocker onap/msb/msb_base
+    build_docker_image ${src_folders[msb]}/apigateway/distributions/msb-apigateway/src/main/docker onap/msb/msb_apigateway
+    build_docker_image ${src_folders[msb]}/discovery/distributions/msb-discovery/src/main/docker onap/msb/msb_discovery
 }
 
 # get_msb_images() - Function that retrieves the Microservices Bus images
@@ -20,9 +20,9 @@
         _build_msb_images
     else
         unset docker_version
-        pull_onap_image msb/msb_base
-        pull_onap_image msb/msb_apigateway
-        pull_onap_image msb/msb_discovery
+        for image in base apigateway discovery; do
+            pull_onap_image msb/msb_$image
+        done
     fi
 }
 
diff --git a/bootstrap/vagrant-onap/lib/mso b/bootstrap/vagrant-onap/lib/mso
index 44d4a7b..6dd0676 100755
--- a/bootstrap/vagrant-onap/lib/mso
+++ b/bootstrap/vagrant-onap/lib/mso
@@ -6,8 +6,8 @@
 function get_mso_images {
     if [[ "$build_image" == "True" ]]; then
         export GIT_NO_PROJECT=/opt/
-        compile_src $mso_src_folder
-        build_docker_image $mso_src_folder/packages/docker docker
+        compile_src ${src_folders[mso]}
+        build_docker_image ${src_folders[mso]}/packages/docker docker
     fi
 }
 
@@ -65,7 +65,7 @@
     install_docker
     install_docker_compose
     # Deploy the environment
-    pushd $mso_src_folder/docker-config
+    pushd ${src_folders[mso]}/docker-config
     chmod +x deploy.sh
     if [[ "$build_image" == "True" ]]; then
         bash deploy.sh
diff --git a/bootstrap/vagrant-onap/lib/multicloud b/bootstrap/vagrant-onap/lib/multicloud
index d2b09f2..ff6f970 100755
--- a/bootstrap/vagrant-onap/lib/multicloud
+++ b/bootstrap/vagrant-onap/lib/multicloud
@@ -25,9 +25,7 @@
 
 # install_multicloud() - 
 function install_multicloud {
-    #pushd ${src_folders[multicloud]}/openstack/$openstack_release
-    #/opt/docker/docker-compose up -d
-    #popd
+    #run_docker_compose ${src_folders[multicloud]}/openstack/$openstack_release
     if [[ "$build_image" == "True" ]]; then
         multicloud-api --port 9003 --host 0.0.0.0 &
     else
diff --git a/bootstrap/vagrant-onap/lib/policy b/bootstrap/vagrant-onap/lib/policy
index ad982ad..1e633be 100755
--- a/bootstrap/vagrant-onap/lib/policy
+++ b/bootstrap/vagrant-onap/lib/policy
@@ -4,8 +4,8 @@
 
 # _build_policy_images() - Function that build Policy docker images from source code
 function _build_policy_images {
-    compile_src $policy_src_folder/docker
-    pushd $policy_src_folder/docker
+    compile_src ${src_folders[policy]}/docker
+    pushd ${src_folders[policy]}/docker
     install_maven
     mvn prepare-package
     cp -r target/policy-pe/* policy-pe/
@@ -20,20 +20,18 @@
     if [[ "$build_image" == "True" ]]; then
         _build_policy_images
     else
-        pull_onap_image policy/policy-db onap/policy/policy-db:latest
-        pull_onap_image policy/policy-pe onap/policy/policy-pe:latest
-        pull_onap_image policy/policy-drools onap/policy/policy-drools:latest
-        pull_onap_image policy/policy-nexus onap/policy/policy-nexus:latest
+        for image in db pe drools nexus; do
+            pull_onap_image policy/policy-$image onap/policy/policy-$image:latest
+        done
     fi
 }
 
 # install_policy() - Function that clones and installs the Policy services from source code
 function install_policy {
-    pushd $policy_src_folder/docker
+    pushd ${src_folders[policy]}/docker
     chmod +x config/drools/drools-tweaks.sh
     echo $IP_ADDRESS > config/pe/ip_addr.txt
-    install_docker_compose
-    /opt/docker/docker-compose up -d
+    run_docker_compose .
     popd
 }
 
diff --git a/bootstrap/vagrant-onap/lib/robot b/bootstrap/vagrant-onap/lib/robot
index 90fbcf8..70f8cf7 100755
--- a/bootstrap/vagrant-onap/lib/robot
+++ b/bootstrap/vagrant-onap/lib/robot
@@ -6,10 +6,10 @@
 function _setup_ete_folder {
     mkdir -p /opt/eteshare/config
 
-    cp $robot_src_folder/integration_* /opt/eteshare/config
-    cp $robot_src_folder/vm_config2robot.sh /opt/eteshare/config
-    cp $robot_src_folder/ete.sh /opt
-    cp $robot_src_folder/demo.sh /opt
+    cp ${src_folders[robot]}/integration_* /opt/eteshare/config
+    cp ${src_folders[robot]}/vm_config2robot.sh /opt/eteshare/config
+    cp ${src_folders[robot]}/ete.sh /opt
+    cp ${src_folders[robot]}/demo.sh /opt
 
     chmod +x /opt/ete.sh
     chmod +x /opt/demo.sh
diff --git a/bootstrap/vagrant-onap/lib/sdc b/bootstrap/vagrant-onap/lib/sdc
index d17accf..71a5fea 100755
--- a/bootstrap/vagrant-onap/lib/sdc
+++ b/bootstrap/vagrant-onap/lib/sdc
@@ -50,16 +50,11 @@
     popd
 
     _init_data_folders
-    cp ${src_folders[sdc]}/sdc-os-chef/environments/Template.json /data/environments
-    cp ${src_folders[sdc]}/sdc-os-chef/scripts/docker_run.sh /data/scripts
-    cp ${src_folders[sdc]}/sdc-os-chef/scripts/docker_health.sh /data/scripts
-    cp ${src_folders[sdc]}/sdc-os-chef/scripts/docker_login.sh /data/scripts
-    cp ${src_folders[sdc]}/sdc-os-chef/scripts/docker_clean.sh /data/scripts
-    cp ${src_folders[sdc]}/sdc-os-chef/scripts/simulator_docker_run.sh /data/scripts
 
+    cp ${src_folders[sdc]}/sdc-os-chef/scripts/{docker_run.sh,docker_health.sh,docker_login.sh,docker_clean.sh,simulator_docker_run.sh} /data/scripts
     chmod +x /data/scripts/*.sh
 
-    cat /data/environments/Template.json | sed "s/yyy/"$IP_ADDRESS"/g" > /data/environments/$ENV_NAME.json
+    cat ${src_folders[sdc]}/sdc-os-chef/environments/Template.json | sed "s/yyy/"$IP_ADDRESS"/g" > /data/environments/$ENV_NAME.json
     sed -i "s/xxx/"$ENV_NAME"/g" /data/environments/$ENV_NAME.json
     sed -i "s/\"ueb_url_list\":.*/\"ueb_url_list\": \""$MR_IP_ADDR","$MR_IP_ADDR"\",/g" /data/environments/$ENV_NAME.json
     sed -i "s/\"fqdn\":.*/\"fqdn\": [\""$MR_IP_ADDR"\", \""$MR_IP_ADDR"\"]/g" /data/environments/$ENV_NAME.json
@@ -70,6 +65,7 @@
     else
         bash /data/scripts/docker_run.sh -e $ENV_NAME -r $docker_version -p $(echo $nexus_docker_repo | cut -d':' -f2)
     fi
+    install_chefdk
 }
 
 # init_sdc() - Function that initialize SDC services
diff --git a/bootstrap/vagrant-onap/lib/sdnc b/bootstrap/vagrant-onap/lib/sdnc
index a8cf756..8dacf9e 100755
--- a/bootstrap/vagrant-onap/lib/sdnc
+++ b/bootstrap/vagrant-onap/lib/sdnc
@@ -7,15 +7,15 @@
 function compile_all_sdnc_repos {
     for repo in ${repos[sdnc]}; do
         if [[ "$repo" == "sdnc/core" ]]; then
-            compile_src $sdnc_src_folder/core/rootpom
+            compile_src ${src_folders[sdnc]}/core/rootpom
         fi
-        compile_src $sdnc_src_folder${repo#*sdnc}
+        compile_src ${src_folders[sdnc]}${repo#*sdnc}
     done
 }
 
 # _build_sdnc_images() - Builds SDNC images from source code
 function _build_sdnc_images {
-    local folder=$sdnc_src_folder/oam
+    local folder=${src_folders[sdnc]}/oam
 
     get_ccsdk_images
     install_package unzip
@@ -33,19 +33,16 @@
     if [[ "$build_image" == "True" ]]; then
         _build_sdnc_images
     else
-        pull_openecomp_image sdnc-image openecomp/sdnc-image:latest
-        pull_openecomp_image admportal-sdnc-image openecomp/admportal-sdnc-image:latest
-        pull_openecomp_image dgbuilder-sdnc-image openecomp/dgbuilder-sdnc-image:latest
+        for image in sdnc-image admportal-sdnc-image dgbuilder-sdnc-image; do
+            pull_openecomp_image $image openecomp/$image:latest
+        done
     fi
     pull_docker_image mysql/mysql-server:5.6
 }
 
 # install_sdnc() -  Download and install SDNC services from source code
 function install_sdnc {
-    pushd $sdnc_src_folder/oam/installation/src/main/yaml
-    install_docker_compose
-    /opt/docker/docker-compose up -d
-    popd
+    run_docker_compose ${src_folders[sdnc]}/oam/installation/src/main/yaml
 }
 
 # init_sdnc() - Function that initialize SDNC services
diff --git a/bootstrap/vagrant-onap/lib/vfc b/bootstrap/vagrant-onap/lib/vfc
index 2b5407c..64f7df0 100755
--- a/bootstrap/vagrant-onap/lib/vfc
+++ b/bootstrap/vagrant-onap/lib/vfc
@@ -9,7 +9,7 @@
     tox_repos=("gvnfm/vnflcm/lcm" "gvnfm/vnfmgr/mgr" "gvnfm/vnfres/res" "nfvo/lcm" \
         "nfvo/driver/vnfm/gvnfm/gvnfmadapter" "nfvo/driver/vnfm/svnfm/zte/vmanager")
     for dirc in ${tox_repos[@]}; do
-        pushd $vfc_src_folder/$dirc
+        pushd ${src_folders[vfc]}/$dirc
         tox -e py27
         popd
     done
@@ -28,7 +28,7 @@
 
 # _build_vfc_image() - Build VFC  docker image
 function _build_vfc_image {
-    pushd $vfc_src_folder/$1/docker
+    pushd ${src_folders[vfc]}/$1/docker
     sed -i "s/^push_image/#push_image/g" build_image.sh
     sed -i 's|IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"|IMAGE_NAME=${ORG}/${IMAGE}|g' build_image.sh
     ./build_image.sh
@@ -53,11 +53,9 @@
         build_nfvo_vnfm_gvnfmadapter_image
         # TODO(sshank): Add other VFC component docker image builds.
     else
-        pull_onap_image vfc/gvnfm/vnflcm/lcm
-        pull_onap_image vfc/gvnfm/vnfmgr/mgr
-        pull_onap_image vfc/gvnfm/vnfres/res
-        pull_onap_image vfc/nfvo/lcm
-        pull_onap_image vfc/nfvo/driver/vnfm/gvnfm/gvnfmadapter
+        for image in gvnfm/vnflcm/lcm gvnfm/vnfmgr/mgr gvnfm/vnfres/res nfvo/lcm nfvo/driver/vnfm/gvnfm/gvnfmadapter; do
+            pull_onap_image vfc/$image
+        done
     fi
 }
 
diff --git a/bootstrap/vagrant-onap/lib/vid b/bootstrap/vagrant-onap/lib/vid
index f5ca9d2..0c7ad85 100755
--- a/bootstrap/vagrant-onap/lib/vid
+++ b/bootstrap/vagrant-onap/lib/vid
@@ -5,9 +5,9 @@
 # _build_vid_images() - Function that builds VID docker images
 function _build_vid_images {
     if [[ "$compile_repo" != "True" ]]; then
-        compile_src $vid_src_folder
+        compile_src ${src_folders[vid]}
     fi
-    build_docker_image $vid_src_folder/deliveries
+    build_docker_image ${src_folders[vid]}/deliveries
 }
 
 # get_vid_images() - Function that retrieves VID docker images
diff --git a/bootstrap/vagrant-onap/lib/vnfsdk b/bootstrap/vagrant-onap/lib/vnfsdk
index 58e3a9a..ea7fa33 100755
--- a/bootstrap/vagrant-onap/lib/vnfsdk
+++ b/bootstrap/vagrant-onap/lib/vnfsdk
@@ -5,7 +5,7 @@
 # _build_vnfsdk_images() - Builds VNFSDK images from source code
 function _build_vnfsdk_images {
     install_package unzip
-    pushd $vnfsdk_src_folder/refrepo/vnfmarket-be/deployment/docker/docker-refrepo
+    pushd ${src_folders[vnfsdk]}/refrepo/vnfmarket-be/deployment/docker/docker-refrepo
     build_docker_image .
     popd
 }
@@ -24,7 +24,7 @@
 # install_vnfsdk - Function that installs vnfsdk Docker images
 function install_vnfsdk {
     install_docker_compose
-    pushd $vnfsdk_src_folder/refrepo/vnfmarket-be/deployment/install
+    pushd ${src_folders[vnfsdk]}/refrepo/vnfmarket-be/deployment/install
     /opt/docker/docker-compose up -d
     popd
 }
diff --git a/test/csit/plans/ccsdk/healthcheck/setup.sh b/test/csit/plans/ccsdk/healthcheck/setup.sh
index 78b4ff0..0be8bef 100644
--- a/test/csit/plans/ccsdk/healthcheck/setup.sh
+++ b/test/csit/plans/ccsdk/healthcheck/setup.sh
@@ -25,7 +25,7 @@
 export NEXUS_USERNAME=docker
 export NEXUS_PASSWD=docker
 export DMAAP_TOPIC=AUTO
-export CCSDK_DOCKER_IMAGE_VERSION=0.1-STAGING-latest
+export CCSDK_DOCKER_IMAGE_VERSION=0.2-STAGING-latest
 
 if [ "$MTU" == "" ]; then
 	  export MTU="1450"
@@ -45,13 +45,13 @@
 docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
 
 docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-odl-image:$CCSDK_DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-odl-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-odl-image:0.1-STAGING-latest
+docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-odl-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-odl-image:0.2-STAGING-latest
 
 docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:0.1-STAGING-latest
+docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:0.2-STAGING-latest
 
 docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-odlsli-image:$CCSDK_DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-odlsli-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-odlsli-image:0.1-STAGING-latest
+docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-odlsli-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-odlsli-image:0.2-STAGING-latest
 
 # start CCSDK containers with docker compose and configuration from docker-compose.yml
 curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > docker-compose
diff --git a/test/csit/plans/dcaegen2/testsuites/setup.sh b/test/csit/plans/dcaegen2/testsuites/setup.sh
index 6692bb2..8ee1309 100755
--- a/test/csit/plans/dcaegen2/testsuites/setup.sh
+++ b/test/csit/plans/dcaegen2/testsuites/setup.sh
@@ -21,7 +21,7 @@
 #get current host IP addres
 HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
 
-VESC_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.1
+VESC_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.2-latest
 echo VESC_IMAGE=${VESC_IMAGE}
 
 # Start DCAE VES Collector
diff --git a/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot
index 0c06cbb..5a8e811 100644
--- a/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot
+++ b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot
@@ -22,13 +22,13 @@
 
 deploy_invalid_rule
     [Documentation]    Add a rule with invalid contents to the engine.
-    ${dic3}    create dictionary    content=789789789    engineid=""
+    ${dic3}    create dictionary    content=789789789    engineId=""
     ${Jsonparam}    encode    ${dic3}
     ${response}    deployEngineRule    ${Jsonparam}    -1
 
 deploy_valid_rule
     [Documentation]    Add a rule with valid contents to the engine.
-    ${dic4}    create dictionary    content=package rule03080002;\n\nimport java.util.Locale;     engineid=""    loopcontrolname=test
+    ${dic4}    create dictionary    content=package rule03080002;\n\nimport java.util.Locale;    engineId=""    loopControlName=test
     ${Jsonparam}    encode    ${dic4}
     ${response}    deployEngineRule    ${Jsonparam}
 
diff --git a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot
index a28bc36..19d0f74 100644
--- a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot
+++ b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot
@@ -8,17 +8,17 @@
 *** Test Cases ***
 add_valid_rule
     [Documentation]    Add a valid rule.
-    ${dict2}    create dictionary    rulename=youbowu0314    description=create a new rule!    content=package ruleqwertasd;\n\nimport java.util.Locale;    enabled=1    loopcontrolname=closedControlLoop
+    ${dict2}    create dictionary    ruleName=you1212121121    description=create a new rule!    content=package ruleqwertasd;\n\nimport java.util.Locale;    enabled=1    loopControlName=closedControlLoop
     ${jsonParams}    encode    ${dict2}
     ${response}    createRule    ${jsonParams}
     ${respJson}    to json    ${response.content}
-    ${RULEID}    get from dictionary    ${respJson}    ruleid
+    ${RULEID}    get from dictionary    ${respJson}    ruleId
     set global variable    ${RULEID}
     log    ${RULEID}
 
 add_invalid_content_rule
     [Documentation]    Add an invalid rule of which the content is incorrect!!
-    ${dict1}    create dictionary    rulename=gy0307001    description=create a new rule!    content=123123123    enabled=1
+    ${dict1}    create dictionary    ruleName=gy0307001    description=create a new rule!    content=123123123    enabled=1
     ${jsonParams}    encode    ${dict1}
     ${response}    createRule    ${jsonParams}    -1
     log    ${response.content}
@@ -39,21 +39,21 @@
 
 query_rule_with_non_existing_id
     [Documentation]    Query a rule with a non-existing ID.
-    ${response}    queryConditionRule    {"rid":"invalidid"}
+    ${response}    queryConditionRule    {"ruleid":"invalidid"}
     ${respJson}    to json    ${response.content}
     ${count}    get from dictionary    ${respJson}    totalCount
     run keyword if    ${count}!=0    fail
 
 query_rule_with_partial_existing_name
     [Documentation]    Query rules with (a part of) an existing name.
-    ${response}    queryConditionRule    {"rulename":"youbowu"}
+    ${response}    queryConditionRule    {"ruleName":"youbowu"}
     ${respJson}    to json    ${response.content}
     ${count}    get from dictionary    ${respJson}    totalCount
     run keyword if    ${count}<1    fail    Can't find the rule with (a part of) an existing name
 
 query_rule_with_partial_non_existing_name
     [Documentation]    Query rules with (a part of) a non-existing name.
-    ${response}    queryConditionRule    {"name":"zte2017"}
+    ${response}    queryConditionRule    {"rulename":"zte2017"}
     ${respJson}    to json    ${response.content}
     ${count}    get from dictionary    ${respJson}    totalCount
     run keyword if    ${count}!=0    fail
@@ -81,7 +81,7 @@
 
 query_rule_with_combinational_fields
     [Documentation]    Query rules using the combination of different fields.
-    ${dic}    create dictionary    rulename=youbowu0314    enabled=1
+    ${dic}    create dictionary    ruleName=youbowu0314    enabled=1
     ${paramJson}    encode    ${dic}
     ${response}    queryConditionRule    ${paramJson}
     ${respJson}    to json    ${response.content}
@@ -91,27 +91,28 @@
 
 modify_rule_with_status
     [Documentation]    modify the rule with a valid status.
-    ${dic}    create dictionary    ruleid=${RULEID}    enabled=0    content=package rule03140002    loopcontrolname=closedControlLoop
+    ${dic}    create dictionary    ruleId=${RULEID}    enabled=0    content=package rule03140002    loopControlName=closedControlLoop
     ${modifyParam}    encode    ${dic}
     ${modifyResp}    modifyRule    ${modifyParam}
-    ${response}    queryConditionRule    {"ruleid":"${RULEID}"}
+    ${response}    queryConditionRule    {"ruleId":"${RULEID}"}
     ${respJson}    to json    ${response.content}
     ${count}    get from dictionary    ${respJson}    totalCount
     run keyword if    ${count}!=1    fail    query rule fails! (can't find the rule modified!)    ELSE    traversalRuleAttribute    ${respJson}
     ...    ${dic}
+    log    "response:"    ${response}
 
 modify_rule_with_invalid_status
     [Documentation]    modify the rule with an invalid status.
-    ${dic}    create dictionary    ruleid=${RULEID}    enabled=88    content=package rule03140002
+    ${dic}    create dictionary    ruleId=${RULEID}    enabled=88    content=package rule03140002
     ${modifyParam}    encode    ${dic}
     ${modifyResponse}    modifyRule    ${modifyParam}    -1
 
 modify_rule_with_description
     [Documentation]    modify the description of the rule with the new string.
-    ${dic}    create dictionary    ruleid=${RULEID}    description=now, i modifying the description of the rule.    content=package rule03140002    loopcontrolname=closedControlLoop
+    ${dic}    create dictionary    ruleId=${RULEID}    description=now, i modifying the description of the rule.    content=package rule03140002    loopControlName=closedControlLoop
     ${modifyParam}    encode    ${dic}
     ${modifyResp}    modifyRule    ${modifyParam}
-    ${response}    queryConditionRule    {"ruleid":"${RULEID}"}    1
+    ${response}    queryConditionRule    {"ruleId":'${RULEID}'}    1
     ${respJson}    to json    ${response.content}
     ${count}    get from dictionary    ${respJson}    totalCount
     run keyword if    ${count}!=1    fail    query rule fails!    ELSE    traversalRuleAttribute    ${respJson}