This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/support/resources/healthcheck_polling.sh

60 lines
965 B
Bash
Raw Permalink Normal View History

2022-11-03 20:41:13 +00:00
#!/bin/bash
declare -i duration=5
declare endpoint
declare key
declare value
usage() {
cat <<END
healthcheck.sh endpoint key value
Report the health status of the endpoint. Exit 0 then OK.
END
}
if [[ $1 ]]; then
endpoint=$1
else
echo "Please specify the endpoint to scan"
usage
exit 1
fi
if [[ $2 ]]; then
key=$2
else
echo "Please specify the key that has to be queried"
usage
exit 1
fi
if [[ $3 ]]; then
value=$3
else
echo "Please specify the value that has to be expected"
usage
exit 1
fi
query() {
local endpoint=$1
local key=$2
result=$(curl --max-time 5 --silent --location "${endpoint}")
if jq -e . >/dev/null 2>&1 <<<"${result}"; then
echo "${result}" | jq -c -r '.'"${key}"''
fi
}
while [[ true ]]; do
result=$(query "${endpoint}" "${key}")
if [[ "${result}" == "${value}" ]]; then
echo true
exit 0
fi
sleep ${duration}
done