Merge "Add VFC LCM docker image build in Vagrant ONAP"
diff --git a/bootstrap/vagrant-onap/Vagrantfile b/bootstrap/vagrant-onap/Vagrantfile
index ff35908..148d8ed 100644
--- a/bootstrap/vagrant-onap/Vagrantfile
+++ b/bootstrap/vagrant-onap/Vagrantfile
@@ -345,6 +345,7 @@
       vfc.vm.provider "openstack" do |v|
         v.server_name = 'vfc'
       end
+      vfc.vm.provision 'docker'
       vfc.vm.provision 'shell' do |s|
         s.path = 'vagrant_utils/postinstall.sh'
         s.args = ['vfc']
diff --git a/bootstrap/vagrant-onap/lib/vfc b/bootstrap/vagrant-onap/lib/vfc
index 9c232be..6fa4218 100755
--- a/bootstrap/vagrant-onap/lib/vfc
+++ b/bootstrap/vagrant-onap/lib/vfc
@@ -23,6 +23,11 @@
     tox -e py27
     popd
 
+
+    pushd $src_folder/nfvo/lcm
+    tox -e py27
+    popd
+
     # TODO(sshank): Add compile for other vfc_repos. (Both Java and Python based.)
     # Python based:
     # gvnfm/vnflcm/lcm
@@ -30,7 +35,6 @@
     # gvnfm/vnfres/res
     # nfvo/driver/vnfm/gvnfm/gvnfmadapter
     # nfvo/driver/vnfm/svnfm/zte/vmanager
-    # nfvo/lcm
 
     # Java based:
     # nfvo/catalog
@@ -42,10 +46,34 @@
     # nfvo/wfengine
 }
 
+# build_nfvo_lcm_image() - Build VFC NFVO LCM docker image
+function build_nfvo_lcm_image {
+    pushd $src_folder/nfvo/lcm/docker
+    sed -i '$ d' build_image.sh
+    ./build_image.sh
+    popd
+}
+
+# get_vfc_images() - Build VFC docker images
+function get_vfc_images {
+    if [[ "$build_image" == "True" ]]; then
+        install_docker
+        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
+    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 {
-    # TODO(sshank): Add further installation steps if necessary.
-    echo ""
+    run_vfc_images
 }
 
 # init_vfc() - Function that initialize VF-C services
@@ -59,5 +87,6 @@
         fi
     fi
 
+    get_vfc_images
     install_vfc
 }
diff --git a/bootstrap/vagrant-onap/tests/test_vfc b/bootstrap/vagrant-onap/tests/test_vfc
index 3382809..e948cce 100644
--- a/bootstrap/vagrant-onap/tests/test_vfc
+++ b/bootstrap/vagrant-onap/tests/test_vfc
@@ -5,12 +5,15 @@
 
 covered_functions=(
 "clone_all_vfc_repos" "compile_all_vfc_repos" "install_vfc"
+"build_nfvo_lcm_image" "get_vfc_images" "run_vfc_images"
 )
 
 # test_clone_all_vfc_repos() - Verify cloning and pulling source code from repositories
 function test_clone_all_vfc_repos {
-    # TODO(sshank)
-    echo ""
+
+    # TODO(sshank):  Add other asserts
+    asserts_file_exist $src_folder/nfvo/lcm/run.sh
+
 }
 
 # test_compile_all_vfc_repos() - Verify that all the VFC modules are compiled properly
@@ -21,11 +24,22 @@
     # TODO(electrocucaracha): Add asserts_file_exist
 }
 
+# test_get_vfc_images() - Verify all VFC images are built correctly.
+function test_get_vfc_images {
+    get_vfc_images
+
+    asserts_image nexus3.onap.org:10003/onap/vfc/nslcm
+
+    # TODO(sshank): Add asserts for other VFC component docker image builds when they are ready.
+}
+
 # test_install_vfc() - Verify that the VFC are up and running
 function test_install_vfc {
     install_vfc
 
-    # TODO(electrocucaracha): Add whatever asserts are needed
+    asserts_image_running vfc-nslcm
+
+    # TODO(sshank): Add asserts for other running VFC component docker images when they are ready.
 }
 
 if [ "$1" != '*' ]; then