Bound wait time for a component's port
[policy/engine.git] / packages / docker / src / main / docker / wait-for-port.sh
index 10f08de..15c6eb8 100644 (file)
@@ -1,18 +1,41 @@
 #!/bin/bash
+#
+#============LICENSE_START==================================================
+#  ONAP Policy Engine
+#===========================================================================
+#  Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+#===========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#============LICENSE_END==================================================
+#
+
 
 if [[ $# -ne 2 ]]; then
        echo "Usage: wait-for-port hostname port" >&2
        exit 1
 fi
 
-host=$1
-port=$2
+export host=$1
+export port=$2
 
 echo "Waiting for $host port $port open"
-until telnet $host $port </dev/null 2>/dev/null | grep -q '^Connected'; do
-       sleep 1
-done
+timeout 120 bash -c 'until nc -vz "$host" "$port"; do echo -n "."; sleep 1; done'
+rc=$?
 
-echo "$host port $port is open"
+if [[ $rc != 0 ]]; then
+       echo "$host port $port cannot be reached"
+       exit $rc
+fi
 
+echo "$host port $port is open"
 exit 0