e79a6ada515333c42d984a34710e6a37011eb296
[sdnc/oam.git] / csit / scripts / sdnr / sdnr-launch.sh
1 #!/bin/bash
2 #
3 #  ============LICENSE_START=======================================================
4 #  ONAP : ccsdk feature sdnr wt
5 #  ================================================================================
6 #  Copyright (C) 2021 highstreet technologies GmbH Intellectual Property.
7 #  All rights reserved.
8 #  ================================================================================
9 #  Licensed under the Apache License, Version 2.0 (the "License");
10 #  you may not use this file except in compliance with the License.
11 #  You may obtain a copy of the License at
12 #
13 #      http://www.apache.org/licenses/LICENSE-2.0
14 #
15 #  Unless required by applicable law or agreed to in writing, software
16 #  distributed under the License is distributed on an "AS IS" BASIS,
17 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 #  See the License for the specific language governing permissions and
19 #  limitations under the License.
20 #  ============LICENSE_END=========================================================
21 #
22 docker version
23 docker-compose version
24 # update installed docker compose version
25 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
26 sudo chmod +x /usr/local/bin/docker-compose
27 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
28 which docker-compose
29 docker version
30 docker-compose version
31 # WA: no space left on device.
32 docker system prune -f -a
33
34 if [[ -z $WORKSPACE ]]; then
35     CUR_PATH="`dirname \"$0\"`"              # relative path
36     CUR_PATH="`( cd \"$CUR_PATH\" && pwd )`"  # absolutized and normalized
37     if [ -z "$CUR_PATH" ] ; then
38         echo "Permission error!"
39         exit 1
40     fi
41
42     # define location of workpsace based on where the current script is
43     WORKSPACE=$(cd $CUR_PATH/../../ && pwd)
44 fi
45
46 if [[ -z $SCRIPTS ]]; then
47     SCRIPTS=$(cd $WORKSPACE/scripts && pwd)
48 fi
49
50 HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $7}')
51 SDNC_WEB_PORT=${SDNC_WEB_PORT:-8282}
52
53 env_file="--env-file ${SCRIPTS}/sdnr/docker-compose/.env"
54 echo $env_file
55
56 # Define sdnrdb type
57 # default: ESDB
58 # alternative: MARIADB
59 SDNRDB_TYPE="${SDNRDB_TYPE:-ESDB}"
60 if [[ "$SDNRDB_TYPE" == "ESDB" ]]; then
61   sdnrdb_compose_file="docker-compose-sdnrdb-elasticsearch.yaml"
62 else
63   sdnrdb_compose_file="docker-compose-sdnrdb-mariadb.yaml"
64 fi
65 docker ps -a
66
67 function onap_dependent_components_launch() {
68     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-onap-addons.yaml pull
69     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-onap-addons.yaml up -d
70 }
71 function netconfserver_simulator_launch() {
72     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-netconfserver-simulator.yaml pull
73     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-netconfserver-simulator.yaml up -d
74 }
75
76 function nts_manager_launch() {
77     # starts all ntsim managers defined in the csv file
78     ${SCRIPTS}/sdnr/docker-compose/nts-manager-launch.sh $1
79 }
80
81 function nts_networkfunctions_launch() {
82     # starts all ntsim networkfucntions defined in the csv file
83     ${SCRIPTS}/sdnr/docker-compose/nts-networkfunctions-launch.sh $1
84 }
85
86
87 function sdnr_launch() {
88     #if [ -n "${CALLHOME}" ] ; then
89       #sdnrwtbootfeatures="-e SDNRWT_BOOTFEATURES=odl-netconf-callhome-ssh,sdnr-wt-feature-aggregator "
90       #callhomeport="-p ${CALL_HOME_PORT}:6666 "
91     #fi
92     if [ $SDNR_CLUSTER_MODE == "true" ]; then
93         sdnr_launch_cluster $1
94     else
95         sdnr_launch_single_node $1
96     fi
97     cd $WORKSPACE
98     ./getAllInfo.sh -c sdnr -kp
99 }
100
101
102 function sdnr_launch_single_node() {
103
104     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-single-sdnr.yaml \
105                              -f ${WORKSPACE}/scripts/sdnr/docker-compose/$sdnrdb_compose_file \
106                              pull
107     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-single-sdnr.yaml \
108                              -f ${WORKSPACE}/scripts/sdnr/docker-compose/$sdnrdb_compose_file \
109                              up -d
110          for i in {1..50}; do
111              curl -sS -m 1 -D - ${HOST_IP}:8181/ready | grep 200 && break
112              echo sleep $i
113              sleep $i
114              if [ $i == 50 ]; then
115                 echo "[ERROR] SDNC/R container not ready"
116                 docker ps -a
117                 # exit 1
118              fi
119          done
120 }
121
122 function sdnr_web_launch() {
123     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-single-sdnr.yaml \
124                              -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-single-sdnr-web.override.yaml \
125                              -f ${WORKSPACE}/scripts/sdnr/docker-compose/$sdnrdb_compose_file \
126                              pull
127     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-single-sdnr.yaml \
128                              -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose-single-sdnr-web.override.yaml \
129                              -f ${WORKSPACE}/scripts/sdnr/docker-compose/$sdnrdb_compose_file \
130                              up -d
131          for i in {1..50}; do
132              curl -sS -m 1 -D - ${HOST_IP}:${SDNC_WEB_PORT}/ready | grep 200 && break
133              echo sleep $i
134              sleep $i
135     done
136 }
137
138 function sdnr_launch_cluster() {
139     # source ${SCRIPTS}/sdnr/sdnrEnv_Cluster.sh
140     SDNRDM="false"
141     [[ -n "$1" ]]  && SDNRDM="true" && echo "SDNRDM arg detected - running in headless mode"
142     echo "SDNR being launched in Cluster mode"
143     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose/cluster-sdnr.yaml pull
144     docker-compose $env_file -f ${WORKSPACE}/scripts/sdnr/docker-compose/docker-compose/cluster-sdnr.yaml up -d
145     # Wait for initialization of docker services. At the moment its the master SDNR node
146          HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $7}')
147          for i in {1..50}; do
148              curl -sS -m 1 -D - ${HOST_IP}:${ODLUXPORT}/ready | grep 200 && break
149              echo sleep $i
150              sleep $i
151          done
152 }