Implement steps for Multicloud Images
It was implemented the steps required for retrieving or building
docker images as well as their execution.
Change-Id: I20f79c5375377a9406f92f9e3e32a2cbec23a4f9
Signed-off-by: Victor Morales <victor.morales@intel.com>
Depends-On: Idc876574ceee39b7cf389978d6a33eb7c66291a6
Issue-Id: MULTICLOUD-53
diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions
index 25fbba3..c4ed3c8 100755
--- a/bootstrap/vagrant-onap/lib/functions
+++ b/bootstrap/vagrant-onap/lib/functions
@@ -178,7 +178,7 @@
fi
}
-# install_python_package() - Install a python module
+# install_python_package() - Install python modules
function install_python_package {
local python_packages=$@
@@ -186,6 +186,16 @@
pip install $python_packages
}
+# install_python_requirements() - Install a list of python modules defined in requirement.txt file
+function install_python_requirements {
+ local python_project_path=$1
+
+ _install_pip
+ pushd $python_project_path
+ pip install -r requirements.txt
+ popd
+}
+
# install_docker() - Download and install docker-engine
function install_docker {
if is_package_installed docker-ce; then
diff --git a/bootstrap/vagrant-onap/lib/multicloud b/bootstrap/vagrant-onap/lib/multicloud
index 0519587..2f9e5d8 100755
--- a/bootstrap/vagrant-onap/lib/multicloud
+++ b/bootstrap/vagrant-onap/lib/multicloud
@@ -6,6 +6,7 @@
multicloud_repos=("multicloud" "multicloud/framework" "multicloud/openstack" \
"multicloud/openstack/vmware" "multicloud/openstack/windriver" \
"multicloud/azure")
+openstack_release="newton"
# clone_multicloud_repos() - Function that clones the Multi Cloud repositories
function clone_multicloud_repos {
@@ -21,14 +22,28 @@
done
}
+function _build_images {
+ install_docker
+ install_python_requirements $multicloud_src_folder/openstack/$openstack_release
+ pushd $multicloud_src_folder/openstack/$openstack_release
+ bash build_image.sh
+ popd
+}
+
# get_multicloud_images() -
function get_multicloud_images {
- echo "pass"
+ if [[ "$build_image" == "True" ]]; then
+ _build_images
+ else
+ pull_onap_image multicloud/openstack-$openstack_release
+ fi
}
# install_multicloud() -
function install_multicloud {
- echo "pass"
+ pushd $multicloud_src_folder/openstack/$openstack_release
+ /opt/docker/docker-compose up -d
+ popd
}
# init_multicloud() - Function that initialize Multi Cloud services
diff --git a/bootstrap/vagrant-onap/tests/asserts b/bootstrap/vagrant-onap/tests/asserts
index 52f0bce..0fc8d38 100755
--- a/bootstrap/vagrant-onap/tests/asserts
+++ b/bootstrap/vagrant-onap/tests/asserts
@@ -2,6 +2,18 @@
source /var/onap/commons
+# asserts_http_status_code() - Function that determines if a HTTP status code is retrieved from URL
+function asserts_http_status_code {
+ local url=$1
+ local expected_code=${2:-"200"}
+
+ code=$(curl -I $url | head -n 1 | cut -d$' ' -f2)
+ local error_msg=${3:-"The URL $url responded with $code status code"}
+ if [[ "$code" == "$expected_code" ]]; then
+ raise_error $error_msg
+ fi
+}
+
# asserts_process() - Function that verifies if a specific process is running
function asserts_process {
local process=$1
diff --git a/bootstrap/vagrant-onap/tests/test_multicloud b/bootstrap/vagrant-onap/tests/test_multicloud
index b0b6748..62a010a 100644
--- a/bootstrap/vagrant-onap/tests/test_multicloud
+++ b/bootstrap/vagrant-onap/tests/test_multicloud
@@ -33,6 +33,8 @@
function test_get_multicloud_images {
clone_multicloud_repos
get_multicloud_images
+
+ asserts_image onap/multicloud/openstack-$openstack_release
}
# test_install_multicloud() - Verify the built and start of Multi Cloud services
@@ -40,6 +42,9 @@
clone_multicloud_repos
get_multicloud_images
install_multicloud
+
+ # NOTE(electrocucaracha): Depends on https://gerrit.onap.org/r/#/c/23631/
+ asserts_http_status_code http://127.0.0.1:9003/api/multicloud-$openstack_release/v0/swagger.json
}
if [ "$1" != '*' ]; then