eid-ops/global/overlay/usr/lib/nagios/plugins/check_eidastest_qa.sh
2024-01-08 18:56:09 +01:00

83 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
. /usr/lib/nagios/plugins/utils.sh
check_return() {
if [[ $1 -ne 0 ]]; then
echo "CRITICAL - Service FAIL"
exit $STATE_CRITICAL
fi
}
exec_status=$(curl -s https://api.swedenconnect.se/testid/qa/execution-status | jq --raw-output .)
exec_status_result=$?
check_return "$exec_status_result"
calculate_time() {
md_date=$(date -d "$1" +%s)
now=$(date +%s)
diff=$(("$md_date"-"$now"))
if ((diff < 0)); then ((diff*=-1)); fi
echo $diff
}
exec_time=$(echo "$exec_status" | jq --raw-output '."last execution result".executiontimestamp')
exec_time_result=$?
check_return "$exec_time_result"
diff_exec_time=$(calculate_time "$exec_time")
day=$(( 24 * 3600))
if [ "$diff_exec_time" -gt "$day" ]; then
echo "CRITICAL - tests are too old!!"
exit $STATE_CRITICAL
fi
raw_not_executed_test=$(echo "$exec_status" | jq --raw-output '."last execution result".notExecutedTests[]')
declare -a not_executed_test=($(echo "$raw_not_executed_test" | tr "\n" " "))
if [[ "${not_executed_test[*]}" == *"XA"* ]] || [[ "${not_executed_test[*]}" == *"XB"* ]]
then
echo "XA, XB or both not executed"
exit $STATE_CRITICAL
fi
raw_lands=$(curl -s https://api.swedenconnect.se/testid/qa/execution-status | jq --raw-output '."last execution result".failed[].result')
raw_lands_result=$?
check_return "$raw_lands_result"
declare -a lands=($(echo $raw_lands | tr "\n" " "))
exit_status=0
output=""
for land in "${lands[@]}"
do
if [[ "$land" == XA* ]]
then
exit_status=1
output="$output $land test country failing"
fi
if [[ "$land" == XB* ]]
then
exit_status=1
output="$output $land test country failing"
fi
done
if [ "$exit_status" -gt 0 ]
then
echo "$output"
exit $STATE_CRITICAL
else
echo "Tests on test lands are error free"
exit $STATE_OK
fi