diff options
Diffstat (limited to 'bootstrap')
27 files changed, 642 insertions, 105 deletions
diff --git a/bootstrap/vagrant-onap/.gitignore b/bootstrap/vagrant-onap/.gitignore index 3c502a0af..873bd8b4d 100644 --- a/bootstrap/vagrant-onap/.gitignore +++ b/bootstrap/vagrant-onap/.gitignore @@ -8,3 +8,5 @@ lib/files/sources.list openrc doc/build/ etc/settings.yaml +tests/remaining_projects.txt +tests/installed-software* diff --git a/bootstrap/vagrant-onap/README.md b/bootstrap/vagrant-onap/README.md index c48190ad1..e90e0a724 100644 --- a/bootstrap/vagrant-onap/README.md +++ b/bootstrap/vagrant-onap/README.md @@ -1,7 +1,5 @@ # ONAP on Vagrant -[![Build Status](https://api.travis-ci.org/electrocucaracha/vagrant-onap.svg?branch=master)](https://api.travis-ci.org/electrocucaracha/vagrant-onap) - This vagrant project pretends to collect information about a way to deploy and build [ONAP project](https://www.onap.org/) into a development environment. diff --git a/bootstrap/vagrant-onap/Vagrantfile b/bootstrap/vagrant-onap/Vagrantfile index c10cb0bc8..dc8b34768 100644 --- a/bootstrap/vagrant-onap/Vagrantfile +++ b/bootstrap/vagrant-onap/Vagrantfile @@ -290,6 +290,7 @@ Vagrant.configure("2") do |config| config.proxy.http = ENV['http_proxy'] config.proxy.https = ENV['https_proxy'] config.proxy.no_proxy = ENV['no_proxy'] + configuration['socks_proxy'] = ENV['socks_proxy'] end if Vagrant.has_plugin?('vagrant-vbguest') diff --git a/bootstrap/vagrant-onap/doc/source/features/configure_execution.rst b/bootstrap/vagrant-onap/doc/source/features/configure_execution.rst index e2da33681..713c0e0fd 100644 --- a/bootstrap/vagrant-onap/doc/source/features/configure_execution.rst +++ b/bootstrap/vagrant-onap/doc/source/features/configure_execution.rst @@ -2,7 +2,7 @@ Modify execution values ======================= -In order to provide a flexible plataform that adjusts to different developer +In order to provide a flexible platform that adjusts to different developer needs, it has been implemented two mechanism to configure the execution of this project. @@ -71,4 +71,3 @@ values that can be overriden using *-g* and *-i* respectively by the run scripts .. end - diff --git a/bootstrap/vagrant-onap/doc/source/features/example_usage.rst b/bootstrap/vagrant-onap/doc/source/features/example_usage.rst new file mode 100644 index 000000000..293c543fa --- /dev/null +++ b/bootstrap/vagrant-onap/doc/source/features/example_usage.rst @@ -0,0 +1,151 @@ +================================================= +Example usage to bring up a developer environment +================================================= + +In the example, we will bring up a single ONAP component using the Vagrant ONAP +tool. + +There are multiple scenarios in which this tool can be made use of by a +developer, they usually fall in the following use cases. + +Use case 1: Use Vagrant ONAP to just clone project related source code +---------------------------------------------------------------------- + +In this use case, the developer needs just the source code of the project to work on. + +Since the Vagrant ONAP project supports building docker containers and compiling +source files, we need to first edit the settings.yaml file to add key value pairs +indicating we need to only clone repo and not build docker image or compile then. +By default, Vagrant ONAP clones repo, but to not run the build process and cloning +docker images, the following are required to be added in the settings file. + +.. code-block:: console + + skip_get_images: "True" + +.. end + +The reason this is done is because as mentioned in the +`configure execution docs. <https://git.onap.org/integration/tree/bootstrap/vagrant-onap/doc/source/features/configure_execution.rst>`, +the default values taken are: + +.. code-block:: console + + 'build_image' => 'True', + 'clone_repo' => 'True', + 'compile_repo' => 'False', + 'enable_oparent' => 'True', + 'skip_get_images' => 'False', + 'skip_install' => 'True' + +.. end + +We override them and skip_get_images is given precedence over build_image. + +Use case 2: Use Vagrant ONAP to clone project related source code and clone Docker Images +----------------------------------------------------------------------------------------- + +In this use case, the developer needs to clone docker images of the project to work on. + +For this case, we will edit the settings.yaml file to add key value pairs indicating we +need to clone repo and clone docker image from Nexus. + +.. code-block:: console + + build_images: "False" + compile_repo: "True" + skip_get_images: "False" + skip_install: "True" + +.. end + +Use case 3: Use Vagrant ONAP to clone project related source code and build Docker Images locally +------------------------------------------------------------------------------------------------- + +In this use case, the developer needs to build docker images of the project to work on. + +For this case, we will edit the settings.yaml file to add key value pairs indicating we need to +clone repo and build docker image locally and not fetch them from Nexus. + +.. code-block:: console + + build_images: "True" + compile_repo: "True" + skip_get_images: "False" + skip_install: "True" + +.. end + +Use case 4: Use Vagrant ONAP to clone project related source code and build Docker Images and start services +------------------------------------------------------------------------------------------------------------ + +In this use case, the developer needs to build docker images of the project he or +she wanted to work on and start the services running inside them. + +For this case, we will edit the settings.yaml file to add key value pairs indicating +we need to clone repo, compile repo, build docker image and run the image. + +.. code-block:: console + + build_images: "True" + compile_repo: "True" + skip_get_images: "False" + skip_install: "False" + +.. end + +Once the required changes to the settings file is added, we can use the run.sh +script in tools directory to setup the development environment. + +Example steps for setting up a development environment for VFC project. +----------------------------------------------------------------------- + +In this example we will be using vagrant ONAP to get all the source code of VFC +project and the developer can point the IDE to the cloned repo in the ./opt directory +and start the development process. + +.. code-block:: console + + $ ./tools/run.sh vfc + +.. end + +At the end of the setup process, all the VFC related source code will be present +in the vagrant-onap/opt/ directory. The developer can point an IDE to this directory +and start contributing. When the changes are done, the developer can SSH into the VM +running VFC and tests can be executed by running Maven for Java and Tox for Python +from the ~/opt/vfc directory. + +.. code-block:: console + + $ vagrant ssh vfc + $ cd ~/opt/vfc/<vfc-subrepo> + $ tox -e py27 + +.. end + +This way the tool helps the developer to clone repos of a particular project, +without having to manually search for repos and setup an environment. + +Also, if something gets messed up in the VM, the developer can tear down the VM +and spin a fresh one without having to lose the changes made to the source code since +the ./opt files are in sync from the host to the VM. + +.. code-block:: console + + $ vagrant destroy vfc + +.. end + +Testing +------- + +Use the run.sh script to test if the provisioning scripts run without errors. + +And example test to check the number of covered repositories with this tool. + +.. code-block:: console + + $ ./tools/run.sh testing -y -c coverity_repos -s functions + +.. end
\ No newline at end of file diff --git a/bootstrap/vagrant-onap/doc/source/features/features.rst b/bootstrap/vagrant-onap/doc/source/features/features.rst index d35c595df..2f88c52e7 100644 --- a/bootstrap/vagrant-onap/doc/source/features/features.rst +++ b/bootstrap/vagrant-onap/doc/source/features/features.rst @@ -10,6 +10,7 @@ Advanced features openstack.rst consuming_scripts.rst configure_execution.rst + example_usage.rst This chapter explains how to use ONAP on Vagrant Advanced features like different providers. diff --git a/bootstrap/vagrant-onap/lib/_onap_functions b/bootstrap/vagrant-onap/lib/_onap_functions index 18a465948..cedd6f0a3 100755 --- a/bootstrap/vagrant-onap/lib/_onap_functions +++ b/bootstrap/vagrant-onap/lib/_onap_functions @@ -12,7 +12,6 @@ function create_configuration_files { echo $docker_version > /opt/config/docker_version.txt } -# TODO(electrocucaracha): Determine how to use this behind a proxy # docker_openecomp_login() - Login to OpenECOMP Docker Hub function docker_openecomp_login { install_docker @@ -24,7 +23,7 @@ function pull_openecomp_image { local image=$1 local tag=$2 docker_openecomp_login - pull_docker_image $nexus_docker_repo/openecomp/${image}:$docker_version $tag + pull_docker_image $nexus_docker_repo/openecomp/${image}:${docker_version-latest} $tag docker logout } @@ -33,7 +32,7 @@ function pull_onap_image { local image=$1 local tag=$2 docker_openecomp_login - pull_docker_image $nexus_docker_repo/onap/${image}:$docker_version $tag + pull_docker_image $nexus_docker_repo/onap/${image}:${docker_version-latest} $tag docker logout } diff --git a/bootstrap/vagrant-onap/lib/aai b/bootstrap/vagrant-onap/lib/aai index bd72ae0f3..4da5763ca 100755 --- a/bootstrap/vagrant-onap/lib/aai +++ b/bootstrap/vagrant-onap/lib/aai @@ -6,7 +6,10 @@ source /var/onap/functions hbase_version=1.2.3 aai_src_folder=$git_src_folder/aai -aai_repos=("aai-common" "aai-config" "aai-data" "aai-service" "data-router" "logging-service" "model-loader" "resources" "rest-client" "router-core" "search-data-service" "test-config" "traversal" "sparky-fe" "sparky-be") +aai_repos=("aai-common" "aai-config" "aai-data" "aai-service" "babel" "champ" \ +"data-router" "esr-gui" "esr-server" "gizmo" "logging-service" "model-loader" \ +"resources" "rest-client" "router-core" "search-data-service" "test-config" \ +"traversal" "sparky-fe" "sparky-be") # install_hadoop() - Function that installs Hadoop function install_hadoop { diff --git a/bootstrap/vagrant-onap/lib/appc b/bootstrap/vagrant-onap/lib/appc index 5e3858f16..4d93f54e5 100755 --- a/bootstrap/vagrant-onap/lib/appc +++ b/bootstrap/vagrant-onap/lib/appc @@ -6,17 +6,20 @@ source /var/onap/sdnc source /var/onap/functions appc_src_folder=$git_src_folder/appc +appc_repos=("appc" "appc/deployment") # clone_all_appc_repos() - Function that clones APPC source repo. function clone_all_appc_repos { - clone_repo appc $appc_src_folder - clone_repo appc/deployment $appc_src_folder/deployment + for repo in ${appc_repos[@]}; do + clone_repo $repo $appc_src_folder${repo#*appc} + done } # compile_all_appc_repos() - Function that compiles APPC source repo. function compile_all_appc_repos { - compile_src $appc_src_folder - compile_src $appc_src_folder/deployment + for repo in ${appc_repos[@]}; do + compile_src $appc_src_folder${repo#*appc} + done } # _build_appc_images() - Function that creates APPC images from source code. diff --git a/bootstrap/vagrant-onap/lib/ccsdk b/bootstrap/vagrant-onap/lib/ccsdk index 85cdf4da2..03987ea7e 100755 --- a/bootstrap/vagrant-onap/lib/ccsdk +++ b/bootstrap/vagrant-onap/lib/ccsdk @@ -5,23 +5,24 @@ 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") +ccsdk_repos=("ccsdk" "ccsdk/dashboard" "ccsdk/distribution" "ccsdk/parent" +"ccsdk/platform/blueprints" "ccsdk/platform/nbapi" "ccsdk/platform/plugins" +"ccsdk/sli" "ccsdk/sli/adaptors" "ccsdk/sli/core" "ccsdk/sli/northbound" +"ccsdk/sli/plugins" "ccsdk/storage" "ccsdk/storage/esaas" "ccsdk/storage/pgaas" +"ccsdk/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 + for repo in ${ccsdk_repos[@]}; do + clone_repo $repo $ccsdk_src_folder${repo#ccsdk} 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 + install_package unzip + for repo in ${ccsdk_repos[@]}; do + compile_src $ccsdk_src_folder${repo#ccsdk} done } diff --git a/bootstrap/vagrant-onap/lib/dcae b/bootstrap/vagrant-onap/lib/dcae index 3e702d989..78ca8de06 100755 --- a/bootstrap/vagrant-onap/lib/dcae +++ b/bootstrap/vagrant-onap/lib/dcae @@ -5,8 +5,12 @@ set -o xtrace source /var/onap/functions dcae_src_folder=$git_src_folder/dcae -dcae_repos=("apod" "apod/analytics" "apod/buildtools" "apod/cdap" "collectors" "collectors/ves" "controller" "controller/analytics" "dcae-inventory" -"demo" "demo/startup" "demo/startup/aaf" "demo/startup/controller" "demo/startup/message-router" "dmaapbc" "operation" "operation/utils" "pgaas" "utils" "utils/buildtools") +dcae_repos=("dcae" "dcae/apod" "dcae/apod/analytics" "dcae/apod/buildtools" +"dcae/apod/cdap" "dcae/collectors" "dcae/collectors/ves" "dcae/controller" +"dcae/controller/analytics" "dcae/dcae-inventory" "dcae/demo" +"dcae/demo/startup" "dcae/demo/startup/aaf" "dcae/demo/startup/controller" +"dcae/demo/startup/message-router" "dcae/dmaapbc" "dcae/operation" +"dcae/operation/utils" "dcae/orch-dispatcher" "dcae/pgaas" "dcae/utils" "dcae/utils/buildtools") # _create_config_file() - Creates a configuration yaml file for the controller function _create_config_file { @@ -44,7 +48,7 @@ function _build_docker_image { install_docker pushd $src_folder - # TODO(electrocucaracha) Workaround for dmmapbc images + # NOTE: Workaround for dmmapbc images sed -i '/LocalKey/d' Dockerfile local docker_build="docker build -t $name -f ./Dockerfile ." if [ $http_proxy ]; then @@ -59,16 +63,15 @@ function _build_docker_image { # clone_all_dcae_repos() - Function that clones DCAE source repo. function clone_all_dcae_repos { - clone_repo dcae $dcae_src_folder - for dirc in ${dcae_repos[@]}; do - clone_repo dcae/$dirc $dcae_src_folder/$dirc + for repo in ${dcae_repos[@]}; do + clone_repo $repo $dcae_src_folder${repo#*dcae} done } # compile_all_dcae_repos() - Function that compiles DCAE source repo. function compile_all_dcae_repos { - for dirc in ${dcae_repos[@]}; do - compile_src $dcae_src_folder/$dirc + for repo in ${dcae_repos[@]}; do + compile_src $dcae_src_folder${repo#*dcae} done } diff --git a/bootstrap/vagrant-onap/lib/functions b/bootstrap/vagrant-onap/lib/functions index 8fff0c2c4..02111fa2c 100755 --- a/bootstrap/vagrant-onap/lib/functions +++ b/bootstrap/vagrant-onap/lib/functions @@ -100,23 +100,31 @@ function install_maven { # _configure_docker_settings() - Configures Docker settings function _configure_docker_settings { + local docker_conf_backup=/tmp/docker.backup + local docker_conf=/etc/default/docker + local chameleonsocks_filename=chameleonsocks.sh + + cp $docker_conf $docker_conf_backup if [ $http_proxy ]; then - echo "export http_proxy=$http_proxy" >> /etc/default/docker + echo "export http_proxy=$http_proxy" >> $docker_conf fi if [ $https_proxy ]; then - echo "export https_proxy=$https_proxy" >> /etc/default/docker + echo "export https_proxy=$https_proxy" >> $docker_conf #If you have a socks proxy, then use that to connect to the nexus repo #via a redsocks container if [ $socks_proxy ]; then - wget https://raw.githubusercontent.com/crops/chameleonsocks/master/chameleonsocks.sh - chmod 755 chameleonsocks.sh + wget https://raw.githubusercontent.com/crops/chameleonsocks/master/$chameleonsocks_filename + chmod 755 $chameleonsocks_filename socks=$(echo $socks_proxy | sed -e "s/^.*\///" | sed -e "s/:.*$//") port=$(echo $socks_proxy | sed -e "s/^.*://") - PROXY=$socks PORT=$port ./chameleonsocks.sh --install + PROXY=$socks PORT=$port ./$chameleonsocks_filename --install + rm $chameleonsocks_filename + cp $docker_conf_backup $docker_conf fi fi + rm $docker_conf_backup - echo "DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock\"" >> /etc/default/docker + echo "DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock\"" >> $docker_conf usermod -a -G docker vagrant } diff --git a/bootstrap/vagrant-onap/lib/mso b/bootstrap/vagrant-onap/lib/mso index 6ff4bbe3e..5439d991b 100755 --- a/bootstrap/vagrant-onap/lib/mso +++ b/bootstrap/vagrant-onap/lib/mso @@ -5,23 +5,20 @@ set -o xtrace source /var/onap/functions src_folder=$git_src_folder/mso -mso_repos=("chef-repo" "docker-config" "libs" "mso-config") +mso_repos=("mso" "mso/chef-repo" "mso/docker-config" "mso/libs" +"mso/mso-config") # clone_all_mso_repos() - Function that clones MSO source repo. function clone_all_mso_repos { - clone_repo mso $src_folder - - for dirc in ${mso_repos[@]}; do - clone_repo mso/$dirc $src_folder/$dirc + for repo in ${mso_repos[@]}; do + clone_repo $repo $src_folder${repo#*mso} done } # compile_all_mso_repos() - Function that compiles MSO source repo. function compile_all_mso_repos { - compile_src $src_folder - - for dirc in ${mso_repos[@]}; do - compile_src $src_folder/$dirc + for repo in ${mso_repos[@]}; do + compile_src $src_folder${repo#*mso} done } diff --git a/bootstrap/vagrant-onap/lib/portal b/bootstrap/vagrant-onap/lib/portal index 4dc5ef9b8..b5e768b2c 100755 --- a/bootstrap/vagrant-onap/lib/portal +++ b/bootstrap/vagrant-onap/lib/portal @@ -5,25 +5,29 @@ set -o xtrace source /var/onap/functions portal_src_folder=$git_src_folder/portal -portal_repos=("sdk") +portal_repos=("portal" "portal/sdk" "ecompsdkos" "ui/dmaapbc") # clone_all_portal_repos() - Function that clones Portal source repo. function clone_all_portal_repos { - clone_repo portal $portal_src_folder - clone_repo ecompsdkos $portal_src_folder/ecompsdkos - clone_repo "ui/dmaapbc" $portal_src_folder/dmaapbc - - for dirc in ${portal_repos[@]}; do - clone_repo portal/$dirc $portal_src_folder/$dirc + for repo in ${portal_repos[@]}; do + if [[ "$repo" == "ui/dmaapbc" ]];then + prefix="ui" + else + prefix="portal" + fi + clone_repo $repo $portal_src_folder/${repo#*$prefix} done } # compile_all_portal_repos() - Function that compiles Portal source repo. function compile_all_portal_repos { - compile_src $portal_src_folder - - for dirc in ${portal_repos[@]}; do - compile_src $portal_src_folder/$dirc + for repo in ${portal_repos[@]}; do + if [[ "$repo" == "ui/dmaapbc" ]];then + prefix="ui" + else + prefix="portal" + fi + compile_src $portal_src_folder/${repo#*$prefix} done } diff --git a/bootstrap/vagrant-onap/lib/sdc b/bootstrap/vagrant-onap/lib/sdc index c7f79d64d..a21e2a418 100755 --- a/bootstrap/vagrant-onap/lib/sdc +++ b/bootstrap/vagrant-onap/lib/sdc @@ -5,7 +5,9 @@ set -o xtrace source /var/onap/functions sdc_src_folder=$git_src_folder/sdc -sdc_repos=("jtosca" "sdc-distribution-client" "sdc-docker-base" "sdc-titan-cassandra" "sdc-tosca" "sdc-vnfdesign" "sdc-workflow-designer" "sdc_common") +sdc_repos=("sdc" "sdc/jtosca" "sdc/sdc-distribution-client" +"sdc/sdc-docker-base" "sdc/sdc-titan-cassandra" "sdc/sdc-tosca" +"sdc/sdc-vnfdesign" "sdc/sdc-workflow-designer" "sdc/sdc_common") # _mount_external_partition() - Create partition and mount the external volume function _mount_external_partition { @@ -47,19 +49,15 @@ EOL # clone_all_sdc_repos() - Function that clones SDC source repo. function clone_all_sdc_repos { - clone_repo sdc $sdc_src_folder - - for dirc in ${sdc_repos[@]}; do - clone_repo sdc/$dirc $sdc_src_folder/$dirc + for repo in ${sdc_repos[@]}; do + clone_repo $repo $sdc_src_folder${repo#*sdc} done } # compile_all_sdc_repos() - Function that compiles SDC source repo. function compile_all_sdc_repos { - compile_src sdc $sdc_src_folder - - for dirc in ${sdc_repos[@]}; do - compile_src $sdc_src_folder/$dirc + for repo in ${sdc_repos[@]}; do + compile_src $sdc_src_folder${repo#*sdc} done } @@ -96,7 +94,11 @@ function install_sdc { sed -i "s/\"fqdn\":.*/\"fqdn\": [\""$MR_IP_ADDR"\", \""$MR_IP_ADDR"\"]/g" /data/environments/$ENV_NAME.json install_docker - bash /data/scripts/docker_run.sh -e $ENV_NAME -l + if [[ "$skip_get_images" == "False" ]]; then + bash /data/scripts/docker_run.sh -e $ENV_NAME -l + else + bash /data/scripts/docker_run.sh -e $ENV_NAME -r $docker_version -p $(echo $nexus_docker_repo | cut -d':' -f2) + fi } # init_sdc() - Function that initialize SDC services @@ -111,9 +113,9 @@ function init_sdc { if [[ "$skip_get_images" == "False" ]]; then get_sdc_images - if [[ "$skip_install" == "False" ]]; then - install_sdc - fi + fi + if [[ "$skip_install" == "False" ]]; then + install_sdc fi _setup_docker_aliases } diff --git a/bootstrap/vagrant-onap/lib/sdnc b/bootstrap/vagrant-onap/lib/sdnc index 22066fdd4..f93a6682d 100755 --- a/bootstrap/vagrant-onap/lib/sdnc +++ b/bootstrap/vagrant-onap/lib/sdnc @@ -64,7 +64,6 @@ function install_sdnc { # init_sdnc() - Function that initialize SDNC services function init_sdnc { - start_ODL if [[ "$clone_repo" == "True" ]]; then clone_all_sdnc_repos if [[ "$compile_repo" == "True" ]]; then @@ -75,6 +74,7 @@ function init_sdnc { if [[ "$skip_get_images" == "False" ]]; then get_sdnc_images if [[ "$skip_install" == "False" ]]; then + start_ODL install_sdnc fi fi diff --git a/bootstrap/vagrant-onap/lib/vid b/bootstrap/vagrant-onap/lib/vid index 83b530995..f99fd6042 100755 --- a/bootstrap/vagrant-onap/lib/vid +++ b/bootstrap/vagrant-onap/lib/vid @@ -5,17 +5,20 @@ set -o xtrace source /var/onap/functions vid_src_folder=$git_src_folder/vid +vid_repos=("vid" "vid/asdcclient") # clone_all_vid_repos() - Function that clones VID source code. function clone_all_vid_repos { - clone_repo vid $vid_src_folder - clone_repo vid/asdcclient $vid_src_folder/asdcclient + for repo in ${vid_repos[@]}; do + clone_repo $repo $vid_src_folder${repo#*vid} + done } # compile_all_vid_repos() - Function that compiles VID source repo. function compile_all_vid_repos { - compile_src $vid_src_folder/asdcclient - compile_src $vid_src_folder + for repo in ${vid_repos[@]}; do + compile_src $vid_src_folder${repo#*vid} + done } # _build_vid_images() - Function that builds VID docker images diff --git a/bootstrap/vagrant-onap/lib/vnfsdk b/bootstrap/vagrant-onap/lib/vnfsdk new file mode 100644 index 000000000..b73e06426 --- /dev/null +++ b/bootstrap/vagrant-onap/lib/vnfsdk @@ -0,0 +1,69 @@ +#!/bin/bash + +set -o xtrace + +source /var/onap/functions + +vnfsdk_src_folder=$git_src_folder/vnfsdk + +vnfsdk_repos=("refrepo") + +# clone_all_vnfsdk_repos() - Function that clones vnfsdk source repo. +function clone_all_vnfsdk_repos { + + for dirc in ${vnfsdk_repos[@]}; do + clone_repo vnfsdk/$dirc $vnfsdk_src_folder/$dirc + done +} + +# compile_all_vnfsdk_repos - Function that builds vnfsdk source repo +function compile_all_vnfsdk_repos { + + for dirc in ${vnfsdk_repos[@]}; do + clone_repo vnfsdk/$dirc $vnfsdk_src_folder/$dirc + done +} + +# _build_vnfsdk_images() - Builds VNFSDK images from source code +function _build_vnfsdk_images { + install_package unzip + pushd $vnfsdk_src_folder/refrepo/vnfmarket-be/deployment/docker/docker-refrepo + build_docker_image . + popd +} + +# get_vnfsdk_images - Function that clones vnfsdk Docker images +function get_vnfsdk_images { + if [[ "$build_image" == "True" ]]; then + # TODO(sshank): Has errors building. + _build_vnfsdk_images + else + pull_docker_image refrepo:1.0-STAGING-latest + pull_docker_image refrepo:latest + fi +} + +# install_vnfsdk - Function that installs vnfsdk Docker images +function install_vnfsdk { + install_docker_compose + pushd $vnfsdk_src_folder/refrepo/vnfmarket-be/deployment/install + /opt/docker/docker-compose up -d + popd +} + +# init_vnfsdk() - Init VNFSDK services +function init_vnfsdk { + if [[ "$clone_repo" == "True" ]]; then + clone_all_vnfsdk_repos + if [[ "$compile_repo" == "True" ]]; then + compile_all_vnfsdk_repos + fi + fi + + if [[ "$skip_get_images" == "False" ]]; then + get_vnfsdk_images + if [[ "$skip_install" == "False" ]]; then + install_vnfsdk + fi + fi +} diff --git a/bootstrap/vagrant-onap/tests/_test_base b/bootstrap/vagrant-onap/tests/_test_base index 155de98bb..7d0415a44 100644 --- a/bootstrap/vagrant-onap/tests/_test_base +++ b/bootstrap/vagrant-onap/tests/_test_base @@ -15,6 +15,9 @@ function main { echo "ok $((i+1)) - test_${covered_functions[$i]}" # Teardown process + if ! is_package_installed docker-ce; then + docker images -q | xargs docker rmi -f + fi dpkg --get-selections > installed-software_new sort -o installed-software_new installed-software_new apt-get purge -y -qq $(comm -3 installed-software installed-software_new | awk '{print $1}') diff --git a/bootstrap/vagrant-onap/tests/projects.txt b/bootstrap/vagrant-onap/tests/projects.txt new file mode 100644 index 000000000..0aba508c9 --- /dev/null +++ b/bootstrap/vagrant-onap/tests/projects.txt @@ -0,0 +1,209 @@ +aaf/authz +aaf/cadi +aaf/inno +aaf/luaplugin +aai/aai-common +aai/aai-config +aai/aai-data +aai/aai-service +aai/babel +aai/champ +aai/data-router +aai/esr-gui +aai/esr-server +aai/gizmo +aai/logging-service +aai/model-loader +aai/resources +aai/rest-client +aai/router-core +aai/search-data-service +aai/sparky-be +aai/sparky-fe +aai/test-config +aai/traversal +appc +appc/deployment +ccsdk/dashboard +ccsdk/distribution +ccsdk/parent +ccsdk/platform/blueprints +ccsdk/platform/nbapi +ccsdk/platform/plugins +ccsdk/sli/adaptors +ccsdk/sli/core +ccsdk/sli/northbound +ccsdk/sli/plugins +ccsdk/storage/esaas +ccsdk/storage/pgaas +ccsdk/utils +ci-management +clamp +cli +dcae +dcae/apod +dcae/apod/analytics +dcae/apod/buildtools +dcae/apod/cdap +dcae/collectors +dcae/collectors/ves +dcae/controller +dcae/controller/analytics +dcae/dcae-inventory +dcae/demo +dcae/demo/startup +dcae/demo/startup/aaf +dcae/demo/startup/controller +dcae/demo/startup/message-router +dcae/dmaapbc +dcae/operation +dcae/operation/utils +dcae/orch-dispatcher +dcae/pgaas +dcae/utils +dcae/utils/buildtools +dcaegen2 +dcaegen2/analytics +dcaegen2/analytics/tca +dcaegen2/collectors +dcaegen2/collectors/snmptrap +dcaegen2/collectors/ves +dcaegen2/deployments +dcaegen2/platform +dcaegen2/platform/blueprints +dcaegen2/platform/cdapbroker +dcaegen2/platform/cli +dcaegen2/platform/configbinding +dcaegen2/platform/deployment-handler +dcaegen2/platform/inventory-api +dcaegen2/platform/plugins +dcaegen2/platform/policy-handler +dcaegen2/platform/registrator +dcaegen2/platform/servicechange-handler +dcaegen2/utils +demo +dmaap/buscontroller +dmaap/datarouter +dmaap/dbcapi +dmaap/messagerouter/dmaapclient +dmaap/messagerouter/messageservice +dmaap/messagerouter/mirroragent +dmaap/messagerouter/msgrtr +doc +doc/tools +ecompsdkos +externalapi/nbi +holmes/common +holmes/dsa +holmes/engine-management +holmes/rule-management +integration +logging-analytics +modeling/modelspec +modeling/toscaparsers +msb/apigateway +msb/discovery +msb/java-sdk +msb/swagger-sdk +mso +mso/chef-repo +mso/docker-config +mso/libs +mso/mso-config +multicloud/azure +multicloud/framework +multicloud/openstack +multicloud/openstack/vmware +multicloud/openstack/windriver +ncomp +ncomp/cdap +ncomp/core +ncomp/docker +ncomp/maven +ncomp/openstack +ncomp/sirius +ncomp/sirius/manager +ncomp/utils +oom +oom/registrator +oparent +optf/cmso +optf/has +optf/osdf +policy/api +policy/common +policy/docker +policy/drools-applications +policy/drools-pdp +policy/engine +policy/gui +policy/pap +policy/pdp +portal +portal/sdk +sdc +sdc/jtosca +sdc/sdc-distribution-client +sdc/sdc-docker-base +sdc/sdc-titan-cassandra +sdc/sdc-tosca +sdc/sdc-workflow-designer +sdnc/adaptors +sdnc/architecture +sdnc/core +sdnc/features +sdnc/northbound +sdnc/oam +sdnc/parent +sdnc/plugins +so +so/chef-repo +so/docker-config +so/libs +so/so-config +testsuite +testsuite/heatbridge +testsuite/properties +testsuite/python-testing-utils +ui +ui/dmaapbc +university +usecase-ui +usecase-ui/server +vfc/gvnfm/vnflcm +vfc/gvnfm/vnfmgr +vfc/gvnfm/vnfres +vfc/nfvo/catalog +vfc/nfvo/driver/ems +vfc/nfvo/driver/sfc +vfc/nfvo/driver/vnfm/gvnfm +vfc/nfvo/driver/vnfm/svnfm +vfc/nfvo/lcm +vfc/nfvo/resmanagement +vfc/nfvo/wfengine +vid +vid/asdcclient +vnfrqts/epics +vnfrqts/guidelines +vnfrqts/requirements +vnfrqts/testcases +vnfrqts/usecases +vnfsdk/compliance +vnfsdk/functest +vnfsdk/lctest +vnfsdk/model +vnfsdk/pkgtools +vnfsdk/refrepo +vnfsdk/validation +vvp/ansible-ice-bootstrap +vvp/cms +vvp/devkit +vvp/documentation +vvp/engagementmgr +vvp/gitlab +vvp/image-scanner +vvp/jenkins +vvp/portal +vvp/postgresql +vvp/test-engine +vvp/validation-scripts diff --git a/bootstrap/vagrant-onap/tests/test_aai b/bootstrap/vagrant-onap/tests/test_aai index 5ff62c156..10777d678 100644 --- a/bootstrap/vagrant-onap/tests/test_aai +++ b/bootstrap/vagrant-onap/tests/test_aai @@ -8,11 +8,6 @@ covered_functions=( "install_hadoop" "install_haproxy" "clone_all_aai_repos" "compile_aai_repos" "setup_titan" "install_hbase" "install_ajsc_aai" "install_model_loader" ) -# TODO(electrocucaracha): Remove/Modify functions that doesn't support proxy settings -if [ -z $http_proxy ] & [ -z $https_proxy ]; then - covered_functions=(${covered_functions[@]} "install_hbase") -fi - # test_install_hadoop() - Verify that Hadoop is downloaded and started properly function test_install_hadoop { install_hadoop @@ -39,7 +34,12 @@ function test_clone_all_aai_repos { asserts_file_exist $aai_src_folder/aai-config/cookbooks/aai-resources/runlist-aai-resources.json asserts_file_exist $aai_src_folder/aai-data/environments/solo.json asserts_file_exist $aai_src_folder/aai-service/pom.xml + asserts_file_exist $aai_src_folder/babel/README.md + asserts_file_exist $aai_src_folder/champ/pom.xml asserts_file_exist $aai_src_folder/data-router/pom.xml + asserts_file_exist $aai_src_folder/esr-gui/pom.xml + asserts_file_exist $aai_src_folder/esr-server/pom.xml + asserts_file_exist $aai_src_folder/gizmo/pom.xml asserts_file_exist $aai_src_folder/logging-service/pom.xml asserts_file_exist $aai_src_folder/model-loader/pom.xml asserts_file_exist $aai_src_folder/resources/pom.xml @@ -57,14 +57,13 @@ function test_compile_aai_repos { clone_all_aai_repos compile_aai_repos - asserts_file_exist $aai_src_folder/aai-common/aai-annotations/target/aai-annotations-1.1.0-SNAPSHOT.jar - asserts_file_exist $aai_src_folder/aai-common/aai-auth/target/aai-auth-1.1.0-SNAPSHOT.jar - asserts_file_exist $aai_src_folder/aai-common/aai-core/target/aai-core-1.1.0-SNAPSHOT.jar - asserts_file_exist $aai_src_folder/aai-common/aai-schema/target/aai-schema-1.1.0-SNAPSHOT.jar + for common in annotations auth core schema utils; do + asserts_file_exist $aai_src_folder/aai-common/aai-$common/target/aai-$common-1.1.0-SNAPSHOT.jar + done - asserts_file_exist $aai_src_folder/logging-service/common-logging/target/common-logging-1.1.0-SNAPSHOT.jar - asserts_file_exist $aai_src_folder/logging-service/eelf-logging/target/eelf-logging-1.1.0-SNAPSHOT.jar - asserts_file_exist $aai_src_folder/logging-service/logging-api/target/logging-api-1.1.0-SNAPSHOT.jar + for service in common-logging eelf-logging logging-api; do + asserts_file_exist $aai_src_folder/logging-service/$service/target/$service-1.1.0-SNAPSHOT.jar + done asserts_file_exist $aai_src_folder/resources/aai-resources/target/aai-resources.jar asserts_file_exist $aai_src_folder/traversal/aai-traversal/target/traversal.jar diff --git a/bootstrap/vagrant-onap/tests/test_ccsdk b/bootstrap/vagrant-onap/tests/test_ccsdk index 2d2b87a54..81bdd4877 100644 --- a/bootstrap/vagrant-onap/tests/test_ccsdk +++ b/bootstrap/vagrant-onap/tests/test_ccsdk @@ -27,13 +27,13 @@ function test_clone_ccsdk_repos { } # test_compile_ccsdk_repos() - Verify the compilation of CCSDK repositories -function compile_ccsdk_repos { +function test_compile_ccsdk_repos { clone_ccsdk_repos compile_ccsdk_repos - asserts_file_exist $ccsdk_src_folder/dashboard/oom-app-common/target/oom-app-common-1.1.0-SNAPSHOT.jar - asserts_file_exist $ccsdk_src_folder/dashboard/oom-app-os/target/oom-app-os-1.1.0-SNAPSHOT.war - asserts_file_exist $ccsdk_src_folder/dashboard/oom-app-overlay/target/oom-app-overlay-1.1.0-SNAPSHOT.war + asserts_file_exist $ccsdk_src_folder/dashboard/ccsdk-app-common/target/ccsdk-app-common-1.1.0-SNAPSHOT.jar + asserts_file_exist $ccsdk_src_folder/dashboard/ccsdk-app-os/target/ccsdk-app-os-1.1.0-SNAPSHOT.war + asserts_file_exist $ccsdk_src_folder/dashboard/ccsdk-app-overlay/target/ccsdk-app-overlay-1.1.0-SNAPSHOT.war asserts_file_exist $ccsdk_src_folder/distribution/dgbuilder/target/dgbuilder.0.1.0-SNAPSHOT.zip asserts_file_exist $ccsdk_src_folder/distribution/platform-logic/installer/target/platform-logic-installer-0.1.0-SNAPSHOT.zip asserts_file_exist $ccsdk_src_folder/platform/nbapi/target/commonnbapi-0.0.3.war diff --git a/bootstrap/vagrant-onap/tests/test_dcae b/bootstrap/vagrant-onap/tests/test_dcae index 104cadd12..c6887cd78 100644 --- a/bootstrap/vagrant-onap/tests/test_dcae +++ b/bootstrap/vagrant-onap/tests/test_dcae @@ -28,6 +28,7 @@ function test_clone_all_dcae_repos { asserts_file_exist $dcae_src_folder/dmaapbc/pom.xml asserts_file_exist $dcae_src_folder/operation/README.md asserts_file_exist $dcae_src_folder/operation/utils/pom.xml + asserts_file_exist $dcae_src_folder/orch-dispatcher/LICENSE.txt asserts_file_exist $dcae_src_folder/pgaas/LICENSE.txt asserts_file_exist $dcae_src_folder/utils/README.md asserts_file_exist $dcae_src_folder/utils/buildtools/LICENSE.txt diff --git a/bootstrap/vagrant-onap/tests/test_functions b/bootstrap/vagrant-onap/tests/test_functions index 17a66313a..8043ebbd7 100644 --- a/bootstrap/vagrant-onap/tests/test_functions +++ b/bootstrap/vagrant-onap/tests/test_functions @@ -7,14 +7,10 @@ covered_functions=( "create_configuration_files" "clone_repo" "install_dev_tools" "configure_bind" "install_java" "install_maven" "install_nodejs" "install_python" "install_docker" "pull_docker_image" "install_docker_compose" "configure_service" -"start_ODL" "compile_src" "build_docker_image" +"start_ODL" "compile_src" "build_docker_image" "docker_openecomp_login" +"pull_openecomp_image" "pull_onap_image" "coverity_repos" ) -# TODO(electrocucaracha): Remove/Modify functions that doesn't support proxy settings -if [ -z $http_proxy ] & [ -z $https_proxy ]; then - covered_functions=(${covered_functions[@]} "docker_openecomp_login" "pull_openecomp_image") -fi - # test_create_configuration_files() - Verify the creation of a configuration files function test_create_configuration_files { create_configuration_files @@ -33,14 +29,22 @@ function test_docker_openecomp_login { docker_openecomp_login } -# test_pull_openecomp_image() - Verify the addition of a OpenECOMP container image +# test_pull_openecomp_image() - Verify the OpenECOMP container image pulling process function test_pull_openecomp_image { - pull_openecomp_image portalapps ep:1610-1 + local image_name=portal-apps + unset docker_version + pull_openecomp_image $image_name - asserts_installed_package docker-ce - asserts_image ep:1610-1 + asserts_image $nexus_docker_repo/openecomp/$image_name +} - docker rmi -f ep:1610-1 +# test_pull_onap_image() - Verify the ONAP cointainer pulling process +function test_pull_onap_image { + local image_name=portal-apps + unset docker_version + pull_onap_image $image_name + + asserts_image $nexus_docker_repo/onap/$image_name } # test_clone_repo() - Verify cloning and pulling source code from repositories @@ -117,8 +121,6 @@ function test_pull_docker_image { pull_docker_image $image asserts_image $image - - docker rmi -f $image } # test_install_docker_compose() - Verify the correct installation of Docker Compose tool @@ -161,8 +163,32 @@ function test_build_docker_image { build_docker_image $git_src_folder/ccsdk/distribution/ubuntu docker asserts_image onap/ccsdk-ubuntu-image +} - docker rmi -f onap/ccsdk-ubuntu-image +# test_coverity_repos() - Verify that all the repos are covered by scripts +function test_coverity_repos { + # Get repositories list from source code files + repos_list=() + for module in $( stat -c "%F %n" /var/onap/* | grep -v "_\|functions\|commons\|files" | cut -d' ' -f 3-); do + source $module + module_repo_list=$(eval echo \${$(basename $module)_repos[@]}) + repos_list=(${repos_list[@]} ${module_repo_list[@]}) + done + + pushd /var/onap_tests/ + cp projects.txt remaining_projects.txt + for covered_repo in "${repos_list[@]}"; do + sed -i "/$covered_repo/d" remaining_projects.txt + done + + threshold=75 + num_projects=$(wc -l < projects.txt) + num_remaining_projects=$(wc -l < remaining_projects.txt) + coverage=`echo "scale=2; 100-($num_remaining_projects/$num_projects*100)" | bc | cut -d . -f 1` + if [ $coverage -lt $threshold ]; then + raise_error "There are repositories that are not covered by scripts" + fi + popd } if [ "$1" != '*' ]; then diff --git a/bootstrap/vagrant-onap/tests/test_vnfsdk b/bootstrap/vagrant-onap/tests/test_vnfsdk new file mode 100644 index 000000000..5aeca45c2 --- /dev/null +++ b/bootstrap/vagrant-onap/tests/test_vnfsdk @@ -0,0 +1,50 @@ +#!/bin/bash + +source /var/onap_tests/_test_base +source /var/onap/vnfsdk + +covered_functions=( +"clone_all_vnfsdk_repos" "compile_all_vnfsdk_repos" "get_vnfsdk_images" "install_vnfsdk" +) + +# test_clone_all_vnfsdk_repos() - Verify the cloning of VNFSDK source repo. +function test_clone_all_vnfsdk_repos { + clone_all_vnfsdk_repos + + asserts_file_exist $vnfsdk_src_folder/refrepo/pom.xml +} + +# test_compile_all_vnfsdk_repos () - Verify if VNFSDK source repo compiles correctly. +function test_compile_all_vnfsdk_repos { + clone_all_vnfsdk_repos + { + compile_all_vnfsdk_repos + } || { + set -e + } +} + +# test_get_vnfsdk_images() - Verify that the VNFSDK images are created or retrieved +function test_get_vnfsdk_images { + clone_all_vnfsdk_repos + get_vnfsdk_images + + asserts_image refrepo:1.0-STAGING-latest + asserts_image refrepo:latest +} + +# test_install_vnfsdk() - Verify that VNFSDK docker images are running. +function test_install_vnfsdk { + clone_all_vnfsdk_repos + get_vnfsdk_images + install_vnfsdk + + asserts_image_running refrepo:1.0-STAGING-latest + asserts_image refrepo:latest +} + +if [ "$1" != '*' ]; then + unset covered_functions + covered_functions=$1 +fi +main "${covered_functions[@]}"
\ No newline at end of file diff --git a/bootstrap/vagrant-onap/tools/run.sh b/bootstrap/vagrant-onap/tools/run.sh index 9e03384f7..2f2743a16 100755 --- a/bootstrap/vagrant-onap/tools/run.sh +++ b/bootstrap/vagrant-onap/tools/run.sh @@ -16,7 +16,7 @@ Optional arguments: Test case to use in testing mode. Commands: all_in_one Deploy in all-in-one mode. - dns|mr|sdc|aai|mso|robot|vid|sdnc|portal|dcae|policy|appc|vfc|multicloud|ccsdk Deploy chosen service. + dns|mr|sdc|aai|mso|robot|vid|sdnc|portal|dcae|policy|appc|vfc|vnfsdk|multicloud|ccsdk Deploy chosen service. testing Deploy in testing mode. EOF } @@ -65,7 +65,7 @@ case $COMMAND in "all_in_one" ) export DEPLOY_MODE='all-in-one' ;; - "dns" | "mr" | "sdc" | "aai" | "mso" | "robot" | "vid" | "sdnc" | "portal" | "dcae" | "policy" | "appc" | "vfc" | "multicloud" | "ccsdk" ) + "dns" | "mr" | "sdc" | "aai" | "mso" | "robot" | "vid" | "sdnc" | "portal" | "dcae" | "policy" | "appc" | "vfc" | "vnfsdk"| "multicloud" | "ccsdk" ) export DEPLOY_MODE='individual' ;; "testing" ) diff --git a/bootstrap/vagrant-onap/tools/update_project_list.sh b/bootstrap/vagrant-onap/tools/update_project_list.sh new file mode 100755 index 000000000..2f0ebb9a3 --- /dev/null +++ b/bootstrap/vagrant-onap/tools/update_project_list.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +ssh $1@gerrit.onap.org -p 29418 gerrit ls-projects > projects.tmp +tail -n +2 projects.tmp > tests/projects.txt +rm projects.tmp |