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