Skip to content

Commit

Permalink
Improve error handling
Browse files Browse the repository at this point in the history
 - Added another try-catch around the CLI Rules parsing
   to make sure that users get a clean exit code and error messages
  • Loading branch information
martialblog committed Jul 29, 2024
1 parent 9d344f5 commit d3a2f3e
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions check_http_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import argparse
import sys
import ssl
import traceback
from urllib.error import HTTPError
from urllib.error import URLError
from datetime import datetime, timedelta, timezone
Expand Down Expand Up @@ -720,6 +721,7 @@ def main(cliargs):
json_data = ''

try:
# Requesting the data from the URL
json_data = make_request(args, url, context)
except HTTPError as e:
# Try to recover from HTTP Error, if there is JSON in the response
Expand All @@ -736,23 +738,29 @@ def main(cliargs):
sys.exit(nagios.getCode())

try:
# Loading the JSON data from the request
data = json.loads(json_data)
except ValueError as e:
debugPrint(args.debug, traceback.format_exc())
nagios.append_message(UNKNOWN_CODE, " JSON Parser error: %s" % str(e))
else:
verbosePrint(args.verbose, 1, json.dumps(data, indent=2))
# Apply rules to returned JSON data

try:
# Applying rules to returned JSON data
processor = JsonRuleProcessor(data, args)
nagios.append_message(WARNING_CODE, processor.checkWarning())
nagios.append_message(CRITICAL_CODE, processor.checkCritical())
nagios.append_metrics(processor.checkMetrics())
nagios.append_message(UNKNOWN_CODE, processor.checkUnknown())
except Exception as e: # pylint: disable=broad-exception-caught
debugPrint(args.debug, traceback.format_exc())
nagios.append_message(UNKNOWN_CODE, " Rule Parser error: %s" % str(e))

# Print Nagios specific string and exit appropriately
print(nagios.getMessage())
sys.exit(nagios.getCode())


if __name__ == "__main__":
# Program entry point
main(sys.argv[1:])
Expand Down

0 comments on commit d3a2f3e

Please sign in to comment.