forked from ge-semtk/semtk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
healthcheck.sh
executable file
·86 lines (77 loc) · 2.44 KB
/
healthcheck.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
#
# Copyright 2018 General Electric Company
#
# 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.
#
#
#
# Optional argument: full path of dir with alternate versions of:
# .env, .fun, logs/ ENV_OVERRIDE
# SEMTK = directory holding this script
SEMTK="$(cd "$(dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd -P)"
echo "SEMTK is $SEMTK"
# Handle $1 optional arg of alternate semtk dir that contains
# ENV_OVERRIDE
if [ $# -eq 1 ]; then
cp ./.env "${1}"
cp ./.fun "${1}"
pushd "${1}" || exit
. .env
popd || exit
elif [ $# -eq 0 ]; then
pushd "${SEMTK}" || exit
. .env
popd || exit
else
echo "Usage: ${BASH_SOURCE[0]} [alt_env_dir]"
fi
#
# wait for services
#
declare -a PORTS=("$PORT_SPARQLGRAPH_STATUS_SERVICE"
"$PORT_SPARQLGRAPH_RESULTS_SERVICE"
"$PORT_DISPATCH_SERVICE"
"$PORT_HIVE_SERVICE"
"$PORT_NODEGROUPSTORE_SERVICE"
"$PORT_ONTOLOGYINFO_SERVICE"
"$PORT_NODEGROUPEXECUTION_SERVICE"
"$PORT_SPARQL_QUERY_SERVICE"
"$PORT_INGESTION_SERVICE"
"$PORT_NODEGROUP_SERVICE"
"$PORT_EDCQUERYGEN_SERVICE"
"$PORT_ATHENA_SERVICE"
"$PORT_ARANGODB_SERVICE"
"$PORT_UTILITY_SERVICE"
)
# protocol for ping
if [ "$SSL_ENABLED" == "false" ]; then
PROTOCOL="http"
else
PROTOCOL="https"
fi
echo "Using no_proxy: $no_proxy"
# check for each service
for port in "${PORTS[@]}"; do
echo "${PROTOCOL}://${HOST_NAME}:${port}/serviceInfo/ping"
if ! curl --insecure --noproxy "$no_proxy" -X POST "${PROTOCOL}://${HOST_NAME}:${port}/serviceInfo/ping" 2>>/dev/null | grep -q yes ; then
echo "failure at ${PROTOCOL}://${HOST_NAME}:${port}/serviceInfo/ping"
FAILURE="true"
fi
done
if [ "${FAILURE}" == "true" ] ; then
echo FAILURE
exit 1
else
exit 0
fi