Bound wait time for a component's port
[policy/engine.git] / packages / docker / src / main / docker / wait-for-port.sh
1 #!/bin/bash
2 #
3 #============LICENSE_START==================================================
4 #  ONAP Policy Engine
5 #===========================================================================
6 #  Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
7 #===========================================================================
8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
11 #
12 #         http://www.apache.org/licenses/LICENSE-2.0
13 #
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 # See the License for the specific language governing permissions and
18 # limitations under the License.
19 #============LICENSE_END==================================================
20 #
21
22
23 if [[ $# -ne 2 ]]; then
24         echo "Usage: wait-for-port hostname port" >&2
25         exit 1
26 fi
27
28 export host=$1
29 export port=$2
30
31 echo "Waiting for $host port $port open"
32 timeout 120 bash -c 'until nc -vz "$host" "$port"; do echo -n "."; sleep 1; done'
33 rc=$?
34
35 if [[ $rc != 0 ]]; then
36         echo "$host port $port cannot be reached"
37         exit $rc
38 fi
39
40 echo "$host port $port is open"
41 exit 0