X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=scripts%2Fpolicy%2Fwait_for_port.sh;fp=scripts%2Fpolicy%2Fwait_for_port.sh;h=c50cd97088a66fde681fc34fd63f6949ea19d0d7;hb=00532428c0b83065a8ae87eaa2de579c3918d984;hp=58bf25d041de625a146592a863eebb10ca8d7622;hpb=e8725131014daf39725e37d518c5b9766d86ee46;p=integration%2Fcsit.git diff --git a/scripts/policy/wait_for_port.sh b/scripts/policy/wait_for_port.sh index 58bf25d0..c50cd970 100755 --- a/scripts/policy/wait_for_port.sh +++ b/scripts/policy/wait_for_port.sh @@ -1,21 +1,40 @@ #!/bin/bash -if [[ $# -ne 2 ]]; then - echo "Usage: wait-for-port hostname port" >&2 +tmout=120 +cmd= + +while getopts c:t: opt; do + case "$opt" in + c) cmd="$OPTARG" ;; + t) tmout="$OPTARG" ;; + esac +done +let nargs=$OPTIND-1 +shift $nargs + +let even_args=$#%2 +if [[ $# -lt 2 || $even_args -ne 0 ]]; then + echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2 exit 1 fi -export host=$1 -export port=$2 +while [[ $# -ge 2 ]]; do + export host=$1 + export port=$2 + shift + shift -echo "Waiting for $host port $port open" -timeout 120 bash -c 'until nc -vz "$host" "$port"; do echo -n "."; sleep 1; done' -rc=$? + echo "Waiting for $host port $port..." + timeout $tmout bash -c 'until nc -vz "$host" "$port"; do echo -n "."; + sleep 1; done' + rc=$? -if [[ $rc != 0 ]]; then + if [[ $rc != 0 ]]; then echo "$host port $port cannot be reached" exit $rc -fi + fi +done + +$cmd -echo "$host port $port is open" exit 0