qa/workunits/cephadm/test_cephadm.sh: consolidate wait loop logic

into an `is_available` function

Signed-off-by: Michael Fritch <mfritch@suse.com>
This commit is contained in:
Michael Fritch 2020-02-25 13:47:59 -07:00
parent 587cd64207
commit ea5f639485
No known key found for this signature in database
GPG Key ID: 75F3EB2E80A03B7F

View File

@ -86,6 +86,26 @@ function expect_false()
if "$@"; then return 1; else return 0; fi if "$@"; then return 1; else return 0; fi
} }
function is_available()
{
local name="$1"
local condition="$2"
local tries="$3"
local num=0
while ! eval "$condition"; do
num=$(($num + 1))
if [ "$num" -ge $tries ]; then
echo "$name is not available"
false
fi
sleep 5
done
echo "$name is available"
true
}
## prepare + check host ## prepare + check host
$SUDO $CEPHADM check-host $SUDO $CEPHADM check-host
@ -208,58 +228,24 @@ done
# add node-exporter # add node-exporter
$CEPHADM --image 'prom/node-exporter:latest' \ $CEPHADM --image 'prom/node-exporter:latest' \
deploy --name node-exporter.a --fsid $FSID deploy --name node-exporter.a --fsid $FSID
TRIES=0 cond="curl 'http://localhost:9100' | grep -q 'Node Exporter'"
while true; do is_available "node-exporter" "$cond" 5
if curl 'http://localhost:9100' | grep -q 'Node Exporter'; then
break
fi
TRIES=$(($TRIES + 1))
if [ "$TRIES" -eq 5 ]; then
echo "node exporter did not come up"
exit 1
fi
sleep 5
done
echo "node exporter ok"
# add prometheus # add prometheus
cat ${CEPHADM_SAMPLES_DIR}/prometheus.json | \ cat ${CEPHADM_SAMPLES_DIR}/prometheus.json | \
$CEPHADM --image 'prom/prometheus:latest' \ $CEPHADM --image 'prom/prometheus:latest' \
deploy --name prometheus.a --fsid $FSID \ deploy --name prometheus.a --fsid $FSID \
--config-json - --config-json -
TRIES=0 cond="curl 'localhost:9095/api/v1/query?query=up'"
while true; do is_available "prometheus" "$cond" 5
if curl 'localhost:9095/api/v1/query?query=up' | \
jq -e '.["status"] == "success"'; then
break
fi
TRIES=$(($TRIES + 1))
if [ "$TRIES" -eq 5 ]; then
echo "prom did not come up"
exit 1
fi
sleep 5
done
echo "prom ok"
# add grafana # add grafana
cat ${CEPHADM_SAMPLES_DIR}/grafana.json | \ cat ${CEPHADM_SAMPLES_DIR}/grafana.json | \
$CEPHADM --image 'pcuzner/ceph-grafana-el8:latest' \ $CEPHADM --image 'pcuzner/ceph-grafana-el8:latest' \
deploy --name grafana.a --fsid $FSID \ deploy --name grafana.a --fsid $FSID \
--config-json - --config-json -
TRIES=0 cond="curl --insecure 'https://localhost:3000' | grep -q 'grafana'"
while true; do is_available "grafana" "$cond" 30
if curl --insecure 'https://localhost:3000' | grep -q 'grafana'; then
break
fi
TRIES=$(($TRIES + 1))
if [ "$TRIES" -eq 30 ]; then
echo "grafana did not come up"
exit 1
fi
sleep 5
done
echo "grafana ok"
## run ## run
# WRITE ME # WRITE ME