aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/dmaap-message-router/dmaap-mr-launch.sh
blob: 4fef682101e4567f50818302ff3cb2188ea4a461 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash
#
# ============LICENSE_START=======================================================
# ONAP DMAAP MR 
# ================================================================================
# Copyright (C) 2018 AT&T Intellectual Property. All rights
#                             reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============LICENSE_END============================================
# ===================================================================
# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
# This script is a copy of plans/dmaap/mrpubsub/setup.sh, placed in the scripts
# dir, and edited to be a callable function from other plans. e.g. dmaap-buscontroller needs it.
#
source ${SCRIPTS}/common_functions.sh

# function to launch DMaaP MR docker containers.
# sets global var IP with assigned IP address of MR container.
# (kafka and zk containers are not called externally)

function dmaap_mr_launch() {
		#
		# the default prefix for docker containers is the directory name containing the docker-compose.yml file.
		# It can be over-written by an env variable COMPOSE_PROJECT_NAME.  This env var seems to be set in the Jenkins CSIT environment
		COMPOSE_PREFIX=${COMPOSE_PROJECT_NAME:-dockercompose}
		export COMPOSE_PROJECT_NAME=$COMPOSE_PREFIX
		echo "COMPOSE_PROJECT_NAME=$COMPOSE_PROJECT_NAME"
		echo "COMPOSE_PREFIX=$COMPOSE_PREFIX"

		# Clone DMaaP Message Router repo
		mkdir -p $WORKSPACE/archives/dmaapmr
		cd $WORKSPACE/archives/dmaapmr
		#unset http_proxy https_proxy
		git clone --depth 1 http://gerrit.onap.org/r/dmaap/messagerouter/messageservice -b master
		cd messageservice
		git pull
		cd $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose
		cp $WORKSPACE/archives/dmaapmr/messageservice/bundleconfig-local/etc/appprops/MsgRtrApi.properties /var/tmp/


		# start DMaaP MR containers with docker compose and configuration from docker-compose.yml
		docker login -u docker -p docker nexus3.onap.org:10001
		docker-compose up -d
		docker ps

		# Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper
		for i in {1..50}; do
			if [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] && \
				[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_zookeeper_1) ] && \
				[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] 
			then
				echo "DMaaP Service Running"	
				break    		
			else 
				echo sleep $i		
				sleep $i
			fi
		done


		DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_dmaap_1)
		IP=${DMAAP_MR_IP}
		KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_kafka_1)
		ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_zookeeper_1)

		echo DMAAP_MR_IP=${DMAAP_MR_IP}
		echo IP=${IP}
		echo KAFKA_IP=${KAFKA_IP}
		echo ZOOKEEPER_IP=${ZOOKEEPER_IP}

		# Initial docker-compose up and down is for populating kafka and zookeeper IPs in /var/tmp/MsgRtrApi.properites
		docker-compose down 

		# Update kafkfa and zookeeper properties in MsgRtrApi.propeties which will be copied to DMaaP Container
		sed -i -e 's/<zookeeper_host>/zookeeper/' /var/tmp/MsgRtrApi.properties
		sed -i -e 's/<kafka_host>:<kafka_port>/kafka:9092/' /var/tmp/MsgRtrApi.properties

		docker-compose build
		docker login -u docker -p docker nexus3.onap.org:10001
		docker-compose up -d 
		docker ps

		# Wait for initialization of Docker containers
		for i in {1..50}; do
				if [ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ] && \
						[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_zookeeper_1) ] && \
						[ $(docker inspect --format '{{ .State.Running }}' ${COMPOSE_PREFIX}_dmaap_1) ]
				then
						echo "DMaaP Service Running"
						break
				else
						echo sleep $i
						sleep $i
				fi
		done
		DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_dmaap_1)
		IP=${DMAAP_MR_IP}
		KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_kafka_1)
		ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${COMPOSE_PREFIX}_zookeeper_1)

		echo "After restart of ZK and Kafka..."
		echo DMAAP_MR_IP=${DMAAP_MR_IP}
		echo IP=${IP}
		echo KAFKA_IP=${KAFKA_IP}
		echo ZOOKEEPER_IP=${ZOOKEEPER_IP}

        source ${SCRIPTS}/common_functions.sh
        bypass_ip_adress ${DMAAP_MR_IP}
        bypass_ip_adress ${KAFKA_IP}
        bypass_ip_adress ${ZOOKEEPER_IP}

		# Wait for initialization of docker services
		for i in {1..50}; do
			curl -sS -m 1 ${DMAAP_MR_IP}:3904/events/TestTopic && break 
			echo sleep $i
			sleep $i
		done
}