From 88d193e157c75cc544b92401aaac5ce6caaa3d8a Mon Sep 17 00:00:00 2001 From: Victor Morales Date: Thu, 16 Nov 2017 10:50:28 -0800 Subject: 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 Depends-On: Idc876574ceee39b7cf389978d6a33eb7c66291a6 Issue-Id: MULTICLOUD-53 --- bootstrap/vagrant-onap/lib/functions | 12 +++++++++++- bootstrap/vagrant-onap/lib/multicloud | 19 +++++++++++++++++-- bootstrap/vagrant-onap/tests/asserts | 12 ++++++++++++ bootstrap/vagrant-onap/tests/test_multicloud | 5 +++++ 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions index 25fbba3e9..c4ed3c85f 100755 --- a/bootstrap/vagrant-onap/lib/functions +++ b/bootstrap/vagrant-onap/lib/functions @@ -178,7 +178,7 @@ function _install_pip { 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 @@ function install_python_package { 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 05195877b..2f9e5d8d8 100755 --- a/bootstrap/vagrant-onap/lib/multicloud +++ b/bootstrap/vagrant-onap/lib/multicloud @@ -6,6 +6,7 @@ multicloud_src_folder=$git_src_folder/multicloud 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 @@ function compile_multicloud_repos { 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 52f0bce92..0fc8d38a1 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 b0b674894..62a010ad0 100644 --- a/bootstrap/vagrant-onap/tests/test_multicloud +++ b/bootstrap/vagrant-onap/tests/test_multicloud @@ -33,6 +33,8 @@ function test_compile_multicloud_repos { 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 @@ function test_install_multicloud { 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 -- cgit 1.2.3-korg