X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=scripts%2Fpolicy%2Fwait_for_port.sh;h=1d2f51553022e25faf43276e72b0825225c0b0bf;hb=1d3ceea1defb5640e9f850dad647904b41002988;hp=10f08ded18fa549203e7413799e68bbaed63bbb8;hpb=9abb61ca2cea1907cab2cec312d6dca6e53a93cd;p=integration%2Fcsit.git diff --git a/scripts/policy/wait_for_port.sh b/scripts/policy/wait_for_port.sh index 10f08ded..1d2f5155 100755 --- a/scripts/policy/wait_for_port.sh +++ b/scripts/policy/wait_for_port.sh @@ -1,18 +1,39 @@ -#!/bin/bash +#!/bin/sh -if [[ $# -ne 2 ]]; then - echo "Usage: wait-for-port hostname port" >&2 - exit 1 +tmout=120 +cmd= +while getopts c:t: opt; do + case "$opt" in + c) cmd="$OPTARG" ;; + t) tmout="$OPTARG" ;; + esac +done +nargs=$(expr $OPTIND - 1) +shift $nargs + +even_args=$(expr $# % 2) +if [ $# -lt 2 -o $even_args -ne 0 ]; then + echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2 + exit 1 fi -host=$1 -port=$2 +while [ $# -ge 2 ]; do + export host=$1 + export port=$2 + shift + shift + + echo "Waiting for $host port $port..." + timeout $tmout sh -c 'until nc -vz "$host" "$port"; do echo -n "."; + sleep 1; done' + rc=$? -echo "Waiting for $host port $port open" -until telnet $host $port /dev/null | grep -q '^Connected'; do - sleep 1 + if [ $rc != 0 ]; then + echo "$host port $port cannot be reached" + exit $rc + fi done -echo "$host port $port is open" +$cmd exit 0