Refactor clone and compile functions
[integration.git] / bootstrap / vagrant-onap / lib / dcae
1 #!/bin/bash
2
3 source /var/onap/functions
4
5 dcae_src_folder=$git_src_folder/dcae
6 dcae_repos=("dcae" "dcae/apod" "dcae/apod/analytics" "dcae/apod/buildtools"
7 "dcae/apod/cdap" "dcae/collectors" "dcae/collectors/ves" "dcae/controller"
8 "dcae/controller/analytics" "dcae/dcae-inventory" "dcae/demo"
9 "dcae/demo/startup" "dcae/demo/startup/aaf" "dcae/demo/startup/controller"
10 "dcae/demo/startup/message-router" "dcae/dmaapbc" "dcae/operation"
11 "dcae/operation/utils" "dcae/orch-dispatcher" "dcae/pgaas" "dcae/utils" "dcae/utils/buildtools")
12
13 # _create_config_file() - Creates a configuration yaml file for the controller
14 function _create_config_file {
15     cat > $dcae_src_folder/controller/config.yaml << EOL
16 ZONE: $dcae_zone
17 STATE: $dcae_state
18 DCAE-VERSION: $artifacts_version
19 HORIZON-URL: https://mycloud.rackspace.com/cloud/$tenant_id
20 KEYSTONE-URL: https://identity.api.rackspacecloud.com/v2.0
21 OPENSTACK-TENANT-ID: $tenant_id
22 OPENSTACK-TENANT-NAME: OPEN-ECOMP
23 OPENSTACK-REGION: $openstack_region
24 OPENSTACK-PRIVATE-NETWORK: $openstack_private_network_name
25 OPENSTACK-USER: $openstack_user
26 OPENSTACK-PASSWORD: $openstack_password
27 OPENSTACK-KEYNAME: ${key_name}${rand_str}_dcae
28 OPENSTACK-PUBKEY: $pub_key
29      
30 NEXUS-URL-ROOT: $nexus_repo_root
31 NEXUS-USER: $nexus_username
32 NEXUS-PASSWORD: $nexus_password
33 NEXUS-URL-SNAPSHOTS: $nexus_url_snapshots
34 NEXUS-RAWURL: $nexus_repo
35      
36 DOCKER-REGISTRY: $nexus_docker_repo
37
38 GIT-MR-REPO: http://gerrit.onap.org/r/dcae/demo/startup/message-router.git
39 EOL
40 }
41
42 # _build_docker_image() - Function that clones, compiles and build a Docker image
43 function _build_docker_image {
44     local src_folder=$1
45     local name=$2
46     install_docker
47
48     pushd $src_folder
49     # NOTE: Workaround for dmmapbc images
50     sed -i '/LocalKey/d' Dockerfile
51     local docker_build="docker build -t $name -f ./Dockerfile ."
52     if [ $http_proxy ]; then
53         docker_build+=" --build-arg http_proxy=$http_proxy"
54     fi
55     if [ $https_proxy ]; then
56         docker_build+=" --build-arg https_proxy=$https_proxy"
57     fi
58     eval $docker_build
59     popd
60 }
61
62 # _build_dcae_images() Function that builds DCAE docker images from source code.
63 function _build_dcae_images {
64     if [[ "$compile_repo" != "True" ]]; then
65         compile_repos "dcae"
66     fi
67     _build_docker_image $dcae_src_folder/dmaapbc openecomp/dcae-dmaapbc
68     _build_docker_image $dcae_src_folder/orch-dispatcher dcae/orch-dispatcher
69
70     pushd $dcae_src_folder/demo
71     bash dcae-demo-controller/src/main/docker-build/build.sh
72     popd
73
74     build_docker_image $dcae_src_folder/dcae-inventory
75 }
76
77 # get_dcae_images() - Function that retrieves or builds DCAE docker images.
78 function get_dcae_images {
79     if [[ "$build_image" == "True" ]]; then
80         _build_dcae_images
81     else
82         pull_openecomp_image dcae-dmaapbc openecomp/dcae-dmaapbc
83         pull_openecomp_image dcae-controller
84     fi
85 }
86
87 # install_dcae() - Function that clones and installs the DCAE controller services from source code
88 function install_dcae {
89     install_docker_compose
90     pushd $dcae_src_folder/demo/startup/controller
91     if [[ "$build_image" == "True" ]]; then
92         dcae_image=`docker images | grep dcae-controller | awk '{print $1 ":" $2}'`
93         sed -i "s|DOCKER-REGISTRY/openecomp/dcae-controller:DCAE-VERSION|$dcae_image|g" docker-compose.yml
94         sed -i "s|MTU|$MTU|g" docker-compose.yml
95         /opt/docker/docker-compose up -d
96     else
97         bash init.sh
98         install_package make
99         make up
100     fi
101     popd
102     # docker run -p 8080:8080 -d -v <some local directory>/config.yml:/opt/config.yml --name dcae-inventory <docker registry>/dcae-inventory:<version>
103 }
104
105 # init_dcae() - Function that initialize DCAE Controller services
106 function init_dcae {
107     if [[ "$clone_repo" == "True" ]]; then
108         clone_repos "dcae"
109         if [[ "$compile_repo" == "True" ]]; then
110             compile_repos "dcae"
111         fi
112     fi
113
114     _create_config_file
115     if [[ "$skip_get_images" == "False" ]]; then
116         get_dcae_images
117         if [[ "$skip_install" == "False" ]]; then
118             install_dcae
119         fi
120     fi
121 }