Centralize src_folder and repos info
[integration.git] / bootstrap / vagrant-onap / lib / vfc
1 #!/bin/bash
2
3 source /var/onap/functions
4
5 # compile_all_vfc_repos() - Function that compiles VF-C source repo.
6 function compile_all_vfc_repos {
7     install_python_package tox
8
9     tox_repos=("gvnfm/vnflcm/lcm" "gvnfm/vnfmgr/mgr" "gvnfm/vnfres/res" "nfvo/lcm" \
10         "nfvo/driver/vnfm/gvnfm/gvnfmadapter" "nfvo/driver/vnfm/svnfm/zte/vmanager")
11     for dirc in ${tox_repos[@]}; do
12         pushd $vfc_src_folder/$dirc
13         tox -e py27
14         popd
15     done
16
17     # TODO(sshank): Add compile for other vfc_repos. (Java based.)
18
19     # Java based:
20     # nfvo/catalog
21     # nfvo/driver/ems/ems/sems/boco/ems-driver
22     # nfvo/driver/sfc/zte/sfc-driver
23     # nfvo/driver/vnfm/gvnfm/juju/juju-vnfmadapter
24     # nfvo/driver/vnfm/svnfm/huawei/vnfmadapter
25     # nfvo/resmanagement
26     # nfvo/wfengine
27 }
28
29 # _build_vfc_image() - Build VFC  docker image
30 function _build_vfc_image {
31     pushd $vfc_src_folder/$1/docker
32     sed -i "s/^push_image/#push_image/g" build_image.sh
33     sed -i 's|IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"|IMAGE_NAME=${ORG}/${IMAGE}|g' build_image.sh
34     ./build_image.sh
35     popd
36 }
37
38 # get_vfc_images() - Build VFC docker images
39 function get_vfc_images {
40     if [[ "$build_image" == "True" ]]; then
41         install_docker
42         # Separate methods are required since the image build process will change.
43         _build_vfc_image gvnfm/vnflcm/lcm onap/nslcm
44         _build_vfc_image gvnfm/vnfmgr/mgr onap/gvnfmdriver
45         _build_vfc_image gvnfm/vnfres/res onap/vnfres
46         _build_vfc_image nfvo/lcm onap/vnflcm
47         _build_vfc_image nfvo/driver/vnfm/gvnfm/gvnfmadapter
48
49         build_gvnfm_lcm_image
50         build_gvnfm_vnfmgr_image
51         build_gvnfm_vnfres_image
52         build_nfvo_lcm_image
53         build_nfvo_vnfm_gvnfmadapter_image
54         # TODO(sshank): Add other VFC component docker image builds.
55     else
56         pull_onap_image vfc/gvnfm/vnflcm/lcm
57         pull_onap_image vfc/gvnfm/vnfmgr/mgr
58         pull_onap_image vfc/gvnfm/vnfres/res
59         pull_onap_image vfc/nfvo/lcm
60         pull_onap_image vfc/nfvo/driver/vnfm/gvnfm/gvnfmadapter
61     fi
62 }
63
64 # install_vfc() - Download and install vfc service from source code
65 function install_vfc {
66     nslcm_image=`docker images | grep nslcm | grep latest| awk '{print $1 ":" $2}'`
67     vnflcm_image=`docker images | grep vnflcm | grep latest| awk '{print $1 ":" $2}'`
68     vnfmgr_image=`docker images | grep vnfmgr | grep latest| awk '{print $1 ":" $2}'`
69     vnfres_image=`docker images | grep vnfres | grep latest| awk '{print $1 ":" $2}'`
70     gvnfmdriver_image=`docker images | grep gvnfmdriver | grep latest| awk '{print $1 ":" $2}'`
71
72     run_docker_image -d --name vfc-nslcm -p 8403:8403 -e MSB_ADDR=127.0.0.1 $nslcm_image
73     run_docker_image -d --name vfc-vnflcm -p 8801:8801 -e MSB_ADDR=127.0.0.1 $vnflcm_image
74     run_docker_image -d --name vfc-vnfmgr -p 8803:8803 -e MSB_ADDR=127.0.0.1 $vnfmgr_image
75     run_docker_image -d --name vfc-vnfres -p 8802:8802 -e MSB_ADDR=127.0.0.1 $vnfres_image
76     run_docker_image -d --name vfc-gvnfmdriver -p 8484:8484 -e MSB_ADDR=127.0.0.1 $gvnfmdriver_image
77
78     # TODO(sshank): Run other VFC component docker images.
79 }
80
81 # init_vfc() - Function that initialize VF-C services
82 function init_vfc {
83     install_package libmysqlclient-dev
84
85     if [[ "$clone_repo" == "True" ]]; then
86         clone_repos "vfc"
87         if [[ "$compile_repo" == "True" ]]; then
88             compile_all_vfc_repos
89         fi
90     fi
91
92     if [[ "$skip_get_images" == "False" ]]; then
93         get_vfc_images
94         if [[ "$skip_install" == "False" ]]; then
95             install_vfc
96         fi
97     fi
98 }