ceph/monitoring/ceph-mixin/test-jsonnet.sh

36 lines
1022 B
Bash
Executable File

#!/bin/sh -e
TEMPDIR=$(mktemp -d)
BASEDIR=$(dirname "$0")
jsonnet -J vendor -m ${TEMPDIR} $BASEDIR/dashboards.jsonnet
truncate -s 0 ${TEMPDIR}/json_difference.log
for file in ${BASEDIR}/dashboards_out/*.json
do
file_name="$(basename $file)"
for generated_file in ${TEMPDIR}/*.json
do
generated_file_name="$(basename $generated_file)"
if [ "$file_name" == "$generated_file_name" ]; then
jsondiff --indent 2 "${generated_file}" "${file}" \
| tee -a ${TEMPDIR}/json_difference.log
fi
done
done
jsonnet -J vendor -S alerts.jsonnet -o ${TEMPDIR}/prometheus_alerts.yml
jsondiff --indent 2 "prometheus_alerts.yml" "${TEMPDIR}/prometheus_alerts.yml" \
| tee -a ${TEMPDIR}/json_difference.log
err=0
if [ $(wc -l < ${TEMPDIR}/json_difference.log) -eq 0 ]
then
rm -rf ${TEMPDIR}
echo "Congratulations! Grafonnet Check Passed"
else
rm -rf ${TEMPDIR}
echo "Grafonnet Check Failed, failed comparing generated file with existing"
exit 1
fi