diff options
Diffstat (limited to 'bootstrap/vagrant-onap/lib')
-rwxr-xr-x | bootstrap/vagrant-onap/lib/_onap_functions | 9 | ||||
-rwxr-xr-x | bootstrap/vagrant-onap/lib/ccsdk | 64 | ||||
-rwxr-xr-x | bootstrap/vagrant-onap/lib/robot | 49 | ||||
-rwxr-xr-x | bootstrap/vagrant-onap/lib/sdnc | 2 | ||||
-rwxr-xr-x | bootstrap/vagrant-onap/lib/vfc | 97 |
5 files changed, 199 insertions, 22 deletions
diff --git a/bootstrap/vagrant-onap/lib/_onap_functions b/bootstrap/vagrant-onap/lib/_onap_functions index 9e06010ed..18a465948 100755 --- a/bootstrap/vagrant-onap/lib/_onap_functions +++ b/bootstrap/vagrant-onap/lib/_onap_functions @@ -28,6 +28,15 @@ function pull_openecomp_image { docker logout } +# pull_onap_image() - Pull Docker container image from a Docker Registry Hub +function pull_onap_image { + local image=$1 + local tag=$2 + docker_openecomp_login + pull_docker_image $nexus_docker_repo/onap/${image}:$docker_version $tag + docker logout +} + # configure_bind()- Configure bind utils function configure_bind { _install_bind diff --git a/bootstrap/vagrant-onap/lib/ccsdk b/bootstrap/vagrant-onap/lib/ccsdk new file mode 100755 index 000000000..6ea829fb5 --- /dev/null +++ b/bootstrap/vagrant-onap/lib/ccsdk @@ -0,0 +1,64 @@ +#!/bin/bash + +set -o xtrace + +source /var/onap/functions + +ccsdk_src_folder=$git_src_folder/ccsdk +ccsdk_repos=("dashboard" "distribution" "parent" "platform/blueprints" "platform/nbapi" "platform/plugins" "sli" "sli/adaptors" "sli/core" "sli/northbound" "sli/plugins" "storage" "storage/esaas" "storage/pgaas" "utils") + +# clone_ccsdk_repos() - Function that clones the CCSDK repositories +function clone_ccsdk_repos { + clone_repo ccsdk $ccsdk_src_folder + + for dirc in ${ccsdk_repos[@]}; do + clone_repo ccsdk/$dirc $ccsdk_src_folder/$dirc + done +} + +# compile_ccsdk_repos() - +function compile_ccsdk_repos { + compile_src ccsdk $ccsdk_src_folder + + for dirc in ${ccsdk_repos[@]}; do + compile_src $ccsdk_src_folder/$dirc + done +} + +# _build_ccsdk_images() - Build CCSDK Docker images from source code +function _build_ccsdk_images { + install_package unzip + clone_repo ccsdk/distribution $ccsdk_src_folder/distribution + compile_src $ccsdk_src_folder/distribution + for image in ubuntu opendaylight odlsli dgbuilder-docker; do + build_docker_image $ccsdk_src_folder/distribution/$image docker + done +} + +# get_ccsdk_images() - Get CCSDK Docker images +function get_ccsdk_images { + if [[ "$build_image" == "True" ]]; then + _build_ccsdk_images + else + for image in ubuntu odl dgbuilder; do + pull_onap_image ccsdk-$image-image + done + fi + +} + +# install_ccsdk() - +function install_ccsdk { + echo "pass" +} + +# init_ccsdk() - Function that initialize Multi Cloud services +function init_ccsdk { + if [[ "$clone_repo" == "True" ]]; then + clone_ccsdk_repos + if [[ "$compile_repo" == "True" ]]; then + compile_ccsdk_repos + fi + fi + install_ccsdk +} diff --git a/bootstrap/vagrant-onap/lib/robot b/bootstrap/vagrant-onap/lib/robot index 4102680ef..34b431a54 100755 --- a/bootstrap/vagrant-onap/lib/robot +++ b/bootstrap/vagrant-onap/lib/robot @@ -2,12 +2,34 @@ set -o xtrace -# install_testsuite_properties() - Download and install testsuite properties -function install_testsuite_properties { +source /var/onap/functions + +robot_src_folder=$git_src_folder/testsuite +robot_repos=("heatbridge" "properties" "python-testing-utils") + +# clone_robot_repos() - Function that clones Robot source repo. +function clone_robot_repos { + clone_repo testsuite $robot_src_folder + + for dirc in ${robot_repos[@]}; do + clone_repo testsuite/$dirc $robot_src_folder/$dirc + done +} + +# compile_robot_repos() - Function that compile Robot source repo. +function compile_robot_repos { + install_python_package tox + compile_src $robot_src_folder + + for dirc in ${robot_repos[@]}; do + compile_src $robot_src_folder/$dirc + done +} + +# _setup_ete_folder() - Create and copy ete folder structure +function _setup_ete_folder { mkdir -p /opt/eteshare/config - local src_folder=/opt/testsuite/properties - clone_repo testsuite/properties $src_folder cp $src_folder/integration_* /opt/eteshare/config cp $src_folder/vm_config2robot.sh /opt/eteshare/config cp $src_folder/ete.sh /opt @@ -17,15 +39,26 @@ function install_testsuite_properties { chmod +x /opt/demo.sh } -# run_testsuite_image() - Pull and run testsuite docker image -function run_testsuite_image { +# get_robot_images() - Pull or build the Robot Docker images +function get_robot_images { pull_openecomp_image testsuite +} + +# install_robot() - Run Robot services +function install_robot { docker rm -f openecompete_container docker run -d --name openecompete_container -v /opt/eteshare:/share -p 88:88 $nexus_docker_repo/openecomp/testsuite:$docker_version } # init_robot() - Function that initialize Robot services function init_robot { - install_testsuite_properties - run_testsuite_image + if [[ "$clone_repo" == "True" ]]; then + clone_robot_repos + _setup_ete_folder + if [[ "$compile_repo" == "True" ]]; then + compile_robot_repos + fi + fi + get_robot_images + install_robot } diff --git a/bootstrap/vagrant-onap/lib/sdnc b/bootstrap/vagrant-onap/lib/sdnc index c7c2745d8..770f6be9f 100755 --- a/bootstrap/vagrant-onap/lib/sdnc +++ b/bootstrap/vagrant-onap/lib/sdnc @@ -3,6 +3,7 @@ set -o xtrace source /var/onap/functions +source /var/onap/ccsdk sdnc_src_folder=$git_src_folder/openecomp/sdnc sdnc_repos=("core" "adaptors" "northbound" "plugins" "oam") @@ -28,6 +29,7 @@ function compile_all_sdnc_repos { function _build_sdnc_images { local folder=$sdnc_src_folder/oam + get_ccsdk_images install_package unzip clone_repo sdnc/oam $folder # The OAM code depends on all the SDNC repos which should be downloaded and compiled first diff --git a/bootstrap/vagrant-onap/lib/vfc b/bootstrap/vagrant-onap/lib/vfc index 9c232be28..2d1418258 100755 --- a/bootstrap/vagrant-onap/lib/vfc +++ b/bootstrap/vagrant-onap/lib/vfc @@ -19,18 +19,15 @@ function clone_all_vfc_repos { function compile_all_vfc_repos { install_python_package tox - pushd $src_folder/gvnfm/vnflcm/lcm - tox -e py27 - popd + 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 $src_folder/$dirc + tox -e py27 + popd + done - # TODO(sshank): Add compile for other vfc_repos. (Both Java and Python based.) - # Python based: - # gvnfm/vnflcm/lcm - # gvnfm/vnfmgr/mgr - # gvnfm/vnfres/res - # nfvo/driver/vnfm/gvnfm/gvnfmadapter - # nfvo/driver/vnfm/svnfm/zte/vmanager - # nfvo/lcm + # TODO(sshank): Add compile for other vfc_repos. (Java based.) # Java based: # nfvo/catalog @@ -42,10 +39,81 @@ function compile_all_vfc_repos { # nfvo/wfengine } +# build_gvnfm_lcm_image() - Build VFC GVNFM VNF LCM docker image +function build_gvnfm_lcm_image { + pushd $src_folder/gvnfm/vnflcm/lcm/docker + sed -i '$ {s/^/#/}' build_image.sh + ./build_image.sh + popd +} + +# build_gvnfm_vnfmgr_image() - Build VFC GVNFM VNF Manager docker image +function build_gvnfm_vnfmgr_image { + pushd $src_folder/gvnfm/vnfmgr/mgr/docker + sed -i '$ {s/^/#/}' build_image.sh + ./build_image.sh + popd +} + +# build_gvnfm_vnfres_image() - Build VFC GVNFM VNF Resource Management docker image +function build_gvnfm_vnfres_image { + pushd $src_folder/gvnfm/vnfres/res/docker + sed -i '$ {s/^/#/}' build_image.sh + ./build_image.sh + popd +} + +# build_nfvo_lcm_image() - Build VFC NFVO LCM docker image +function build_nfvo_lcm_image { + pushd $src_folder/nfvo/lcm/docker + sed -i '$ {s/^/#/}' build_image.sh + ./build_image.sh + popd +} + +# build_nfvo_vnfm_gvnfmadapter_image() - Build VFC NFVO General VNF Adapter docker image +function build_nfvo_vnfm_gvnfmadapter_image { + pushd $src_folder/nfvo/driver/vnfm/gvnfm/gvnfmadapter/docker + sed -i '$ {s/^/#/}' 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 + # Separate methods are required since the image build process will change. + build_gvnfm_lcm_image + build_gvnfm_vnfmgr_image + build_gvnfm_vnfres_image + build_nfvo_lcm_image + 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 + fi +} + # install_vfc() - Download and install vfc service from source code function install_vfc { - # TODO(sshank): Add further installation steps if necessary. - echo "" + nslcm_image=`docker images | grep nslcm | grep latest| awk '{print $1 ":" $2}'` + vnflcm_image=`docker images | grep vnflcm | grep latest| awk '{print $1 ":" $2}'` + vnfmgr_image=`docker images | grep vnfmgr | grep latest| awk '{print $1 ":" $2}'` + vnfres_image=`docker images | grep vnfres | grep latest| awk '{print $1 ":" $2}'` + gvnfmdriver_image=`docker images | grep gvnfmdriver | grep latest| awk '{print $1 ":" $2}'` + + docker run -d --name vfc-nslcm -p 8403:8403 -e MSB_ADDR=127.0.0.1 $nslcm_image + docker run -d --name vfc-vnflcm -p 8801:8801 -e MSB_ADDR=127.0.0.1 $vnflcm_image + docker run -d --name vfc-vnfmgr -p 8803:8803 -e MSB_ADDR=127.0.0.1 $vnfmgr_image + docker run -d --name vfc-vnfres -p 8802:8802 -e MSB_ADDR=127.0.0.1 $vnfres_image + docker run -d --name vfc-gvnfmdriver -p 8484:8484 -e MSB_ADDR=127.0.0.1 $gvnfmdriver_image + + # TODO(sshank): Run other VFC component docker images. } # init_vfc() - Function that initialize VF-C services @@ -54,10 +122,11 @@ function init_vfc { if [[ "$clone_repo" == "True" ]]; then clone_all_vfc_repos - if [[ "$compile_repo" == "False" ]]; then + if [[ "$compile_repo" == "True" ]]; then compile_all_vfc_repos fi fi + get_vfc_images install_vfc } |