aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/dmaap-message-router/dmaap-mr-launch.sh
blob: ccbe368c3e974fb609d75bbf7ad7d8f764e537de (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
}