summaryrefslogtreecommitdiffstats
path: root/tests/health_mgmtapi/health-cmdapi-test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/health_mgmtapi/health-cmdapi-test.sh')
-rw-r--r--tests/health_mgmtapi/health-cmdapi-test.sh226
1 files changed, 0 insertions, 226 deletions
diff --git a/tests/health_mgmtapi/health-cmdapi-test.sh b/tests/health_mgmtapi/health-cmdapi-test.sh
deleted file mode 100644
index da981b14..00000000
--- a/tests/health_mgmtapi/health-cmdapi-test.sh
+++ /dev/null
@@ -1,226 +0,0 @@
-#!/usr/bin/env bash
-# shellcheck disable=SC1117,SC2034,SC2059,SC2086,SC2181
-
-NETDATA_VARLIB_DIR="/var/lib/netdata"
-
-check () {
- sec=1
- echo -e " ${GRAY}Check: '${1}' in $sec sec"
- sleep $sec
- number=$RANDOM
- resp=$(curl -s "http://$URL/api/v1/alarms?all&$number")
- r=$(echo "${resp}" | \
- python3 -c "import sys, json; d=json.load(sys.stdin); \
- print(\
- d['alarms']['system.cpu.10min_cpu_usage']['disabled'], \
- d['alarms']['system.cpu.10min_cpu_usage']['silenced'] , \
- d['alarms']['system.cpu.10min_cpu_iowait']['disabled'], \
- d['alarms']['system.cpu.10min_cpu_iowait']['silenced'], \
- d['alarms']['system.load.load_trigger']['disabled'], \
- d['alarms']['system.load.load_trigger']['silenced'], \
- );" 2>&1)
- if [ $? -ne 0 ] ; then
- echo -e " ${RED}ERROR: Unexpected response stored in /tmp/resp-$number.json"
- echo "$resp" > /tmp/resp-$number.json
- err=$((err+1))
- iter=0
- elif [ "${r}" != "${2}" ] ; then
- echo -e " ${GRAY}WARNING: 'Got ${r}'. Expected '${2}'"
- iter=$((iter+1))
- if [ $iter -lt 10 ] ; then
- echo -e " ${GRAY}Repeating test "
- check "$1" "$2"
- else
- echo -e " ${RED}ERROR: 'Got ${r}'. Expected '${2}'"
- iter=0
- err=$((err+1))
- fi
- else
- echo -e " ${GREEN}Success"
- iter=0
- fi
-}
-
-cmd () {
- echo -e "${WHITE}Cmd '${1}'"
- echo -en " ${GRAY}Expecting '${2}' : "
- RESPONSE=$(curl -s "http://$URL/api/v1/manage/health?${1}" -H "X-Auth-Token: $TOKEN" 2>&1)
- if [ "${RESPONSE}" != "${2}" ] ; then
- echo -e "${RED}ERROR: Response '${RESPONSE}'"
- err=$((err+1))
- else
- echo -e "${GREEN}Success"
- fi
-}
-
-check_list() {
- RESPONSE=$(curl -s "http://$URL/api/v1/manage/health?cmd=LIST" -H "X-Auth-Token: $TOKEN" 2>&1)
-
- NAME="$1-list.json"
- echo $RESPONSE > $NAME
- diff $NAME expected_list/$NAME 1>/dev/null 2>&1
- if [ $? -eq 0 ]; then
- echo -e "${GREEN}Success: The list command got the correct answer for $NAME!"
- else
- echo -e "${RED}ERROR: the files $NAME and expected_list/$NAME does not match."
- exit 1
- fi
-}
-
-WHITE='\033[0;37m'
-RED='\033[0;31m'
-GREEN='\033[0;32m'
-GRAY='\033[0;37m'
-
-SETUP=0
-RESTART=0
-CLEANUP=0
-TEST=0
-URL="localhost:19999"
-
-err=0
-
-
- HEALTH_CMDAPI_MSG_AUTHERROR="Auth Error"
- HEALTH_CMDAPI_MSG_SILENCEALL="All alarm notifications are silenced"
- HEALTH_CMDAPI_MSG_DISABLEALL="All health checks are disabled"
- HEALTH_CMDAPI_MSG_RESET="All health checks and notifications are enabled"
- HEALTH_CMDAPI_MSG_DISABLE="Health checks disabled for alarms matching the selectors"
- HEALTH_CMDAPI_MSG_SILENCE="Alarm notifications silenced for alarms matching the selectors"
- HEALTH_CMDAPI_MSG_ADDED="Alarm selector added"
- HEALTH_CMDAPI_MSG_INVALID_KEY="Invalid key. Ignoring it."
- HEALTH_CMDAPI_MSG_STYPEWARNING="WARNING: Added alarm selector to silence/disable alarms without a SILENCE or DISABLE command."
- HEALTH_CMDAPI_MSG_NOSELECTORWARNING="WARNING: SILENCE or DISABLE command is ineffective without defining any alarm selectors."
-
- if [ -f "${NETDATA_VARLIB_DIR}/netdata.api.key" ] ;then
- read -r CORRECT_TOKEN < "${NETDATA_VARLIB_DIR}/netdata.api.key"
- else
- echo "${NETDATA_VARLIB_DIR}/netdata.api.key not found"
- exit 1
- fi
- # Set correct token
- TOKEN="${CORRECT_TOKEN}"
-
- # Test default state
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check "Default State" "False False False False False False"
- check_list "RESET"
-
- # Test auth failure
- TOKEN="Wrong token"
- cmd "cmd=DISABLE ALL" "$HEALTH_CMDAPI_MSG_AUTHERROR"
- check "Default State" "False False False False False False"
- check_list "DISABLE_ALL_ERROR"
-
- # Set correct token
- TOKEN="${CORRECT_TOKEN}"
-
- # Test disable
- cmd "cmd=DISABLE ALL" "$HEALTH_CMDAPI_MSG_DISABLEALL"
- check "All disabled" "True False True False True False"
- check_list "DISABLE_ALL"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check "Default State" "False False False False False False"
- check_list "RESET"
-
- # Test silence
- cmd "cmd=SILENCE ALL" "$HEALTH_CMDAPI_MSG_SILENCEALL"
- check "All silenced" "False True False True False True"
- check_list "SILENCE_ALL"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check "Default State" "False False False False False False"
- check_list "RESET"
-
- # Add silencer by name
- printf -v resp "$HEALTH_CMDAPI_MSG_SILENCE\n$HEALTH_CMDAPI_MSG_ADDED"
- cmd "cmd=SILENCE&alarm=*10min_cpu_usage *load_trigger" "${resp}"
- check "Silence notifications for alarm1 and load_trigger" "False True False False False True"
- check_list "SILENCE_ALARM_CPU_USAGE_LOAD_TRIGGER"
-
- # Convert to disable health checks
- cmd "cmd=DISABLE" "$HEALTH_CMDAPI_MSG_DISABLE"
- check "Disable notifications for alarm1 and load_trigger" "True False False False True False"
- check_list "DISABLE"
-
- # Convert back to silence notifications
- cmd "cmd=SILENCE" "$HEALTH_CMDAPI_MSG_SILENCE"
- check "Silence notifications for alarm1 and load_trigger" "False True False False False True"
- check_list "SILENCE"
-
- # Add second silencer by name
- cmd "alarm=*10min_cpu_iowait" "$HEALTH_CMDAPI_MSG_ADDED"
- check "Silence notifications for alarm1,alarm2 and load_trigger" "False True False True False True"
- check_list "ALARM_CPU_IOWAIT"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check_list "RESET"
-
- # Add silencer by chart
- printf -v resp "$HEALTH_CMDAPI_MSG_DISABLE\n$HEALTH_CMDAPI_MSG_ADDED"
- cmd "cmd=DISABLE&chart=system.load" "${resp}"
- check "Default State" "False False False False True False"
- check_list "DISABLE_SYSTEM_LOAD"
-
- # Add silencer by context
- cmd "context=system.cpu" "$HEALTH_CMDAPI_MSG_ADDED"
- check "Default State" "True False True False True False"
- check_list "CONTEXT_SYSTEM_CPU"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check_list "RESET"
-
- # Add second condition to a selector (AND)
- printf -v resp "$HEALTH_CMDAPI_MSG_SILENCE\n$HEALTH_CMDAPI_MSG_ADDED"
- cmd "cmd=SILENCE&alarm=*10min_cpu_usage *load_trigger&chart=system.load" "${resp}"
- check "Silence notifications load_trigger" "False False False False False True"
- check_list "SILENCE_ALARM_CPU_USAGE"
-
- # Add second selector with two conditions
- cmd "alarm=*10min_cpu_usage *load_trigger&context=system.cpu" "$HEALTH_CMDAPI_MSG_ADDED"
- check "Silence notifications load_trigger" "False True False False False True"
- check_list "ALARM_CPU_USAGE"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check_list "RESET"
-
- # Add silencer without a command to disable or silence alarms
- printf -v resp "$HEALTH_CMDAPI_MSG_ADDED\n$HEALTH_CMDAPI_MSG_STYPEWARNING"
- cmd "families=load" "${resp}"
- check "Family selector with no command" "False False False False False False"
- check_list "FAMILIES_LOAD"
-
- # Add silence command
- cmd "cmd=SILENCE" "$HEALTH_CMDAPI_MSG_SILENCE"
- check "Silence family load" "False False False False False True"
- check_list "SILENCE_2"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check_list "RESET"
-
- # Add command without silencers
- printf -v resp "$HEALTH_CMDAPI_MSG_SILENCE\n$HEALTH_CMDAPI_MSG_NOSELECTORWARNING"
- cmd "cmd=SILENCE" "${resp}"
- check "Command with no selector" "False False False False False False"
- check_list "SILENCE_3"
-
- # Add hosts silencer
- cmd "hosts=*" "$HEALTH_CMDAPI_MSG_ADDED"
- check "Silence all hosts" "False True False True False True"
- check_list "HOSTS"
-
- # Reset
- cmd "cmd=RESET" "$HEALTH_CMDAPI_MSG_RESET"
- check_list "RESET"
-
-if [ $err -gt 0 ] ; then
- echo "$err error(s) found"
- exit 1
-fi