Chore: Add gerrit maven verify GHA workflow
[sdnc/oam.git] / csit / scripts / sdnr / docker-compose / nts-networkfunctions-launch.sh
1 #!/bin/bash
2 # *******************************************************************************
3 # * ============LICENSE_START========================================================================
4 # * Copyright (C) 2021 highstreet technologies GmbH Intellectual Property. All rights reserved.
5 # * =================================================================================================
6 # * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
7 # * in compliance with the License. You may obtain a copy of the License at
8 # *
9 # * http://www.apache.org/licenses/LICENSE-2.0
10 # *
11 # * Unless required by applicable law or agreed to in writing, software distributed under the License
12 # * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 # * or implied. See the License for the specific language governing permissions and limitations under
14 # * the License.
15 # * ============LICENSE_END==========================================================================
16
17 set -o xtrace
18 set +e
19 csvfile=$1
20 export DOCKER_ENGINE_VERSION=$(docker version --format '{{.Server.APIVersion}}')
21
22 CUR_PATH="`dirname \"$0\"`"              # relative path
23 CUR_PATH="`( cd \"$CUR_PATH\" && pwd )`"  # absolutized and normalized
24 if [ -z "$CUR_PATH" ] ; then
25     echo "Permission error!"
26     exit 1
27 fi
28
29 # define location of workpsace based on where the current script is
30 WORKSPACE=$(cd $CUR_PATH/../../../ && pwd)
31 if [ $# -lt 1 ]; then
32     echo "No arguments provided. Using default 'nts-networkfunctions.csv'"
33     csvfile="$CUR_PATH/nts-networkfunctions.csv"
34 fi
35
36 firstline=0
37 # read each line of nts-networkfunctions.csv and put in into the corresponding variables
38 while IFS=',' read NAME NTS_NF_DOCKER_REPOSITORY NTS_NF_IMAGE_NAME NTS_NF_IMAGE_TAG NTS_NF_IP NTS_NF_IPv6 \
39                    NTS_HOST_NETCONF_SSH_BASE_PORT NTS_HOST_NETCONF_TLS_BASE_PORT NTS_NF_SSH_CONNECTIONS NTS_NF_TLS_CONNECTIONS \
40                    PORT NETCONF_HOST USER PASSWORD NTS_FUNCTION_TYPE; do
41     if [ $firstline -eq 0 ]; then
42         firstline=1
43         continue
44     fi
45     if [ -n "${NTS_NF_GLOBAL_TAG}" ]; then
46       NTS_NF_IMAGE_TAG=${NTS_NF_GLOBAL_TAG}
47     fi
48         if [[ -z ${USE_DEFAULT_REPO} ]]; then
49         export NTS_NF_DOCKER_REPOSITORY=$NTS_NF_DOCKER_REPOSITORY
50     fi
51     export NAME=$NAME
52     export NTS_NF_IMAGE_NAME=$NTS_NF_IMAGE_NAME
53     export NTS_NF_IMAGE_TAG=$NTS_NF_IMAGE_TAG
54     export NTS_NF_IP=$NTS_NF_IP
55     export NTS_NF_IPv6=$NTS_NF_IPv6
56     export NTS_HOST_NETCONF_SSH_BASE_PORT=$NTS_HOST_NETCONF_SSH_BASE_PORT
57     export NTS_HOST_NETCONF_TLS_BASE_PORT=$NTS_HOST_NETCONF_TLS_BASE_PORT
58     export NTS_HOST_NETCONF_SSH_BASE_PORT_PLUS_SSH_CON=$(expr $NTS_HOST_NETCONF_SSH_BASE_PORT + $NTS_NF_SSH_CONNECTIONS - 1)
59     export NTS_HOST_NETCONF_TLS_BASE_PORT_PLUS_TLS_CON=$(expr $NTS_HOST_NETCONF_TLS_BASE_PORT + $NTS_NF_TLS_CONNECTIONS - 1)
60     EXPOSE_PORT=830
61     export EXPOSE_PORT_SSH=$EXPOSE_PORT
62     EXPOSE_PORT=$(expr $EXPOSE_PORT + $NTS_NF_SSH_CONNECTIONS)
63     export EXPOSE_PORT_SSH_PLUS_CON=$(expr $EXPOSE_PORT - 1)
64     export EXPOSE_PORT_TLS=$EXPOSE_PORT
65     EXPOSE_PORT=$(expr $EXPOSE_PORT + $NTS_NF_TLS_CONNECTIONS)
66     export EXPOSE_PORT_TLS_PLUS_CON=$(expr $EXPOSE_PORT - 1)
67     export NTS_NF_CONTAINER_NAME=$NAME
68     export NTS_NF_SSH_CONNECTIONS=$NTS_NF_SSH_CONNECTIONS
69     export NTS_NF_TLS_CONNECTIONS=$NTS_NF_TLS_CONNECTIONS
70
71     SCRIPTDIR=${CUR_PATH}/$NAME/scripts
72     export SCRIPTDIR=$SCRIPTDIR
73
74     mkdir -p $SCRIPTDIR
75
76     docker-compose -p ${NAME} --env-file $CUR_PATH/.env -f $CUR_PATH/docker-compose-nts-networkfunction.yaml up -d
77 done <$csvfile
78 docker ps -a --format "table |{{.Names}}\t|{{.Image}}\t|{{printf \"%.70s\" .Ports}}|"| { head -1; sort --field-separator='|' -k 4;}
79 set -e