#!/bin/bash

source /var/onap_tests/_test_base
source /var/onap/multicloud

covered_functions=(
"clone_multicloud_repos" "compile_multicloud_repos" "get_multicloud_images" "install_multicloud"
)

# test_clone_multicloud_repos() - Verify that Multi Cloud repositories are cloned properly
function test_clone_multicloud_repos {
    clone_repos "multicloud"

    #asserts_file_exist $multicloud_src_folder/
    asserts_file_exist $multicloud_src_folder/framework/pom.xml
    asserts_file_exist $multicloud_src_folder/openstack/pom.xml
    asserts_file_exist $multicloud_src_folder/openstack/vmware/pom.xml
    asserts_file_exist $multicloud_src_folder/openstack/windriver/pom.xml
    #asserts_file_exist $multicloud_src_folder/azure/
}

# test_compile_multicloud_repos() -
function test_compile_multicloud_repos {
    clone_repos "multicloud"
    compile_repos "multicloud"

    asserts_file_exist $multicloud_src_folder/openstack/newton/target/multicloud-openstack-newton-1.0.0-SNAPSHOT.zip
    asserts_file_exist $multicloud_src_folder/openstack/ocata/target/multicloud-openstack-ocata-1.0.0-SNAPSHOT.zip
    asserts_file_exist $multicloud_src_folder/openstack/windriver/target/multicloud-openstack-windriver-1.0.0-SNAPSHOT.zip
}

# test_get_multicloud_images() -
function test_get_multicloud_images {
    clone_repos "multicloud"
    get_multicloud_images

    asserts_image onap/multicloud/openstack-$openstack_release
}

# test_install_multicloud() - Verify the built and start of Multi Cloud services
function test_install_multicloud {
    clone_repos "multicloud"
    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
    unset covered_functions
    covered_functions=$1
fi
main "${covered_functions[@]}"
