[mod] check:http_request:missing header

This commit is contained in:
Christian Fraß 2023-04-28 13:14:27 +02:00
parent 26ee1b2e3c
commit b011be560a
4 changed files with 20 additions and 6 deletions

View file

@ -22,7 +22,8 @@
"checks.generic_remote.overflow": "Laufwerk fast voll", "checks.generic_remote.overflow": "Laufwerk fast voll",
"checks.http_request.request_failed": "HTTP-Abfrage fehlgeschlagen", "checks.http_request.request_failed": "HTTP-Abfrage fehlgeschlagen",
"checks.http_request.status_code_mismatch": "Status-Code {{status_code_actual}} stimmt nicht mit dem erwarteten Wert {{status_code_expected}} überein", "checks.http_request.status_code_mismatch": "Status-Code {{status_code_actual}} stimmt nicht mit dem erwarteten Wert {{status_code_expected}} überein",
"checks.http_request.header_value_mismatch": "Header-Wert für Schlüssel '{{key}}' '{{value_actual}}' stimmt nicht mit erwartetem Wert {{value_expected}} überein", "checks.http_request.header_missing": "Header '{{key}}' ist nicht gesetzt und hat somit nicht den erwarteten Wert '{{value_expected}}'",
"checks.http_request.header_value_mismatch": "Header-Wert für Schlüssel '{{key}}' '{{value_actual}}' stimmt nicht mit erwartetem Wert '{{value_expected}}' überein",
"checks.http_request.body_misses_part": "Rumpf enthält nicht den erwarteten Teil '{{part}}'", "checks.http_request.body_misses_part": "Rumpf enthält nicht den erwarteten Teil '{{part}}'",
"misc.state_file_path": "Pfad zur Zustands-Datei", "misc.state_file_path": "Pfad zur Zustands-Datei",
"misc.check_procedure_failed": "Prüfungs-Prozedur fehlgeschlagen", "misc.check_procedure_failed": "Prüfungs-Prozedur fehlgeschlagen",

View file

@ -22,6 +22,7 @@
"checks.generic_remote.overflow": "disk drive almost full", "checks.generic_remote.overflow": "disk drive almost full",
"checks.http_request.request_failed": "HTTP request failed", "checks.http_request.request_failed": "HTTP request failed",
"checks.http_request.status_code_mismatch": "actual status code {{status_code_actual}} does not match expected value {{status_code_expected}}", "checks.http_request.status_code_mismatch": "actual status code {{status_code_actual}} does not match expected value {{status_code_expected}}",
"checks.http_request.header_missing": "header '{{key}}' is unset and hence does not match the expected value '{{value_expected}}'",
"checks.http_request.header_value_mismatch": "actual header value for key '{{key}}' '{{value_actual}}' and does not match the expected value {{value_expected}}", "checks.http_request.header_value_mismatch": "actual header value for key '{{key}}' '{{value_actual}}' and does not match the expected value {{value_expected}}",
"checks.http_request.body_misses_part": "body does not contain the expected part '{{part}}'", "checks.http_request.body_misses_part": "body does not contain the expected part '{{part}}'",
"misc.state_file_path": "state file path", "misc.state_file_path": "state file path",

View file

@ -167,9 +167,18 @@ class implementation_check_kind_http_request(interface_check_kind):
) )
elif (key == "headers"): elif (key == "headers"):
for (header_key, header_value, ) in value.items(): for (header_key, header_value, ) in value.items():
if (response.headers[header_key] == header_value): if (not (header_key in response.headers)):
pass faults.append(
translation_get(
"checks.http_request.header_missing",
{
"key": header_key,
"value_expected": header_value,
}
)
)
else: else:
if (not (response.headers[header_key] == header_value)):
faults.append( faults.append(
translation_get( translation_get(
"checks.http_request.header_value_mismatch", "checks.http_request.header_value_mismatch",
@ -180,6 +189,8 @@ class implementation_check_kind_http_request(interface_check_kind):
} }
) )
) )
else:
pass
elif (key == "body_part"): elif (key == "body_part"):
if (response.text.find(value) >= 0): if (response.text.find(value) >= 0):
pass pass

View file

@ -1,4 +1,5 @@
- auf DB umstellen? - auf DB umstellen?
- Schreib-Operationen vermindern
- Benachrichtigungen versenden, wenn ein Zustand sich wieder normalisiert hat (aber vorher über dem Schwellwert oft nicht OK war) - Benachrichtigungen versenden, wenn ein Zustand sich wieder normalisiert hat (aber vorher über dem Schwellwert oft nicht OK war)
- längere Statistiken über Metriken führen um auch Anstiege/Abfälle auszuwerten (z.B. "Speicherplatzverbrauch innerhalb einer Woche um 5GB gestiegen") - längere Statistiken über Metriken führen um auch Anstiege/Abfälle auszuwerten (z.B. "Speicherplatzverbrauch innerhalb einer Woche um 5GB gestiegen")
- Selbst-Test - Selbst-Test