blob: fc26af282191c7ce84d8f4f6c706c2f3308c9bae [file] [log] [blame]
Victor Moralesdd074802017-07-26 16:06:35 -05001#!/bin/bash
2
3set -o xtrace
4
5source /var/onap/functions
Victor Moralesdd074802017-07-26 16:06:35 -05006
Victor Morales8b8e7392017-09-25 22:13:26 -07007vfc_src_folder=$git_src_folder/vfc
Victor Moralesf6c0bf12017-10-27 11:08:04 -07008vfc_repos=("vfc/gvnfm" "vfc/gvnfm/vnflcm" "vfc/gvnfm/vnfmgr" \
9"vfc/gvnfm/vnfres" "vfc/nfvo" "vfc/nfvo/catalog" "vfc/nfvo/driver" \
10"vfc/nfvo/driver/ems" "vfc/nfvo/driver/sfc" "vfc/nfvo/driver/vnfm" \
11"vfc/nfvo/driver/vnfm/gvnfm" "vfc/nfvo/driver/vnfm/svnfm" "vfc/nfvo/lcm" \
12"vfc/nfvo/resmanagement" "vfc/nfvo/wfengine")
Victor Moralesdd074802017-07-26 16:06:35 -050013
14# clone_all_vfc_repos() - Function that clones VF-C source repo.
15function clone_all_vfc_repos {
Victor Moralesf6c0bf12017-10-27 11:08:04 -070016 for repo in ${vfc_repos[@]}; do
17 clone_repo $repo $vfc_src_folder${repo#*vfc}
Victor Moralesdd074802017-07-26 16:06:35 -050018 done
19}
20
21# compile_all_vfc_repos() - Function that compiles VF-C source repo.
22function compile_all_vfc_repos {
Victor Morales970ec192017-07-31 09:10:11 -050023 install_python_package tox
24
Victor Moralesdbe2e0b2017-09-20 09:55:45 -070025 tox_repos=("gvnfm/vnflcm/lcm" "gvnfm/vnfmgr/mgr" "gvnfm/vnfres/res" "nfvo/lcm" \
26 "nfvo/driver/vnfm/gvnfm/gvnfmadapter" "nfvo/driver/vnfm/svnfm/zte/vmanager")
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070027 for dirc in ${tox_repos[@]}; do
Victor Morales8b8e7392017-09-25 22:13:26 -070028 pushd $vfc_src_folder/$dirc
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070029 tox -e py27
30 popd
31 done
Victor Moralesdd074802017-07-26 16:06:35 -050032
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070033 # TODO(sshank): Add compile for other vfc_repos. (Java based.)
Victor Moralesdd074802017-07-26 16:06:35 -050034
35 # Java based:
36 # nfvo/catalog
37 # nfvo/driver/ems/ems/sems/boco/ems-driver
38 # nfvo/driver/sfc/zte/sfc-driver
39 # nfvo/driver/vnfm/gvnfm/juju/juju-vnfmadapter
40 # nfvo/driver/vnfm/svnfm/huawei/vnfmadapter
41 # nfvo/resmanagement
42 # nfvo/wfengine
43}
44
Victor Morales8b8e7392017-09-25 22:13:26 -070045# _build_vfc_image() - Build VFC docker image
46function _build_vfc_image {
47 pushd $vfc_src_folder/$1/docker
48 sed -i "s/^push_image/#push_image/g" build_image.sh
49 sed -i 's|IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"|IMAGE_NAME=${ORG}/${IMAGE}|g' build_image.sh
Shashank Kumar Shankar6cc4a432017-09-05 13:26:19 -070050 ./build_image.sh
51 popd
52}
53
54# get_vfc_images() - Build VFC docker images
55function get_vfc_images {
56 if [[ "$build_image" == "True" ]]; then
57 install_docker
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070058 # Separate methods are required since the image build process will change.
Victor Morales8b8e7392017-09-25 22:13:26 -070059 _build_vfc_image gvnfm/vnflcm/lcm onap/nslcm
60 _build_vfc_image gvnfm/vnfmgr/mgr onap/gvnfmdriver
61 _build_vfc_image gvnfm/vnfres/res onap/vnfres
62 _build_vfc_image nfvo/lcm onap/vnflcm
63 _build_vfc_image nfvo/driver/vnfm/gvnfm/gvnfmadapter
64
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070065 build_gvnfm_lcm_image
66 build_gvnfm_vnfmgr_image
67 build_gvnfm_vnfres_image
Shashank Kumar Shankar6cc4a432017-09-05 13:26:19 -070068 build_nfvo_lcm_image
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070069 build_nfvo_vnfm_gvnfmadapter_image
70 # TODO(sshank): Add other VFC component docker image builds.
Shashank Kumar Shankar6cc4a432017-09-05 13:26:19 -070071 else
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070072 pull_onap_image vfc/gvnfm/vnflcm/lcm
73 pull_onap_image vfc/gvnfm/vnfmgr/mgr
74 pull_onap_image vfc/gvnfm/vnfres/res
75 pull_onap_image vfc/nfvo/lcm
76 pull_onap_image vfc/nfvo/driver/vnfm/gvnfm/gvnfmadapter
Shashank Kumar Shankar6cc4a432017-09-05 13:26:19 -070077 fi
78}
79
Victor Moralesdd074802017-07-26 16:06:35 -050080# install_vfc() - Download and install vfc service from source code
81function install_vfc {
Victor Morales896c8072017-09-12 12:19:57 -070082 nslcm_image=`docker images | grep nslcm | grep latest| awk '{print $1 ":" $2}'`
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -070083 vnflcm_image=`docker images | grep vnflcm | grep latest| awk '{print $1 ":" $2}'`
84 vnfmgr_image=`docker images | grep vnfmgr | grep latest| awk '{print $1 ":" $2}'`
85 vnfres_image=`docker images | grep vnfres | grep latest| awk '{print $1 ":" $2}'`
86 gvnfmdriver_image=`docker images | grep gvnfmdriver | grep latest| awk '{print $1 ":" $2}'`
87
88 docker run -d --name vfc-nslcm -p 8403:8403 -e MSB_ADDR=127.0.0.1 $nslcm_image
89 docker run -d --name vfc-vnflcm -p 8801:8801 -e MSB_ADDR=127.0.0.1 $vnflcm_image
90 docker run -d --name vfc-vnfmgr -p 8803:8803 -e MSB_ADDR=127.0.0.1 $vnfmgr_image
91 docker run -d --name vfc-vnfres -p 8802:8802 -e MSB_ADDR=127.0.0.1 $vnfres_image
92 docker run -d --name vfc-gvnfmdriver -p 8484:8484 -e MSB_ADDR=127.0.0.1 $gvnfmdriver_image
93
94 # TODO(sshank): Run other VFC component docker images.
Victor Morales94b3e972017-08-17 14:55:55 -050095}
96
97# init_vfc() - Function that initialize VF-C services
98function init_vfc {
99 install_package libmysqlclient-dev
100
Idan Amit1690e082017-08-20 08:58:14 +0300101 if [[ "$clone_repo" == "True" ]]; then
102 clone_all_vfc_repos
Shashank Kumar Shankar0be68942017-09-14 11:10:41 -0700103 if [[ "$compile_repo" == "True" ]]; then
Idan Amit1690e082017-08-20 08:58:14 +0300104 compile_all_vfc_repos
105 fi
Victor Moralesdd074802017-07-26 16:06:35 -0500106 fi
107
Victor Morales6a919972017-09-28 18:29:54 -0700108 if [[ "$skip_get_images" == "False" ]]; then
109 get_vfc_images
110 if [[ "$skip_install" == "False" ]]; then
111 install_vfc
112 fi
113 fi
Victor Moralesdd074802017-07-26 16:06:35 -0500114}