Enable sample SME invoker to query dicovered endpoint
[nonrtric.git] / docker-compose / docker-compose-policy-framework / wait_for_port.sh
1 #!/bin/sh
2 # ============LICENSE_START====================================================
3 #  Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
4 # =============================================================================
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # 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
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17 # SPDX-License-Identifier: Apache-2.0
18 # ============LICENSE_END======================================================
19
20 tmout=120
21 cmd=
22 while getopts c:t: opt; do
23     case "$opt" in
24     c) cmd="$OPTARG" ;;
25     t) tmout="$OPTARG" ;;
26     esac
27 done
28 nargs=$(expr $OPTIND - 1)
29 shift $nargs
30
31 even_args=$(expr $# % 2)
32 if [ $# -lt 2 -o $even_args -ne 0 ]; then
33     echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2
34     exit 1
35 fi
36
37 while [ $# -ge 2 ]; do
38     export host=$1
39     export port=$2
40     shift
41     shift
42
43     echo "Waiting for $host port $port..."
44     timeout $tmout sh -c 'until nc -vz "$host" "$port"; do echo -n ".";
45         sleep 1; done'
46     rc=$?
47
48     if [ $rc != 0 ]; then
49         echo "$host port $port cannot be reached"
50         exit $rc
51     fi
52 done
53
54 $cmd
55
56 exit 0