Skip to content
Commits on Source (2)
......@@ -16,11 +16,16 @@ HOSTNAME = socket.gethostname()
def notify(message):
"""Send a notification."""
r = requests.post( # pylint: disable=invalid-name
"https://notify.shore.co.il/send", params={"message": message}
)
if not r.ok:
logging.error(f"Failed to send notification: {r.reason}.")
for _ in range(3):
r = requests.post( # pylint: disable=invalid-name
"https://notify.shore.co.il/send", params={"message": message}
)
if r.ok:
return
logging.warning(
f"Failed to send notification: {r.reason}, will retry."
)
logging.error("Failed to send notification.")
def main(): # noqa: MC0001
......@@ -107,15 +112,15 @@ def main(): # noqa: MC0001
elif check.ExitCode == nagios.NagiosCode.WARNING:
logging.info("Check status is WARNING.")
if args.warn and not args.dry_run:
notify(f"{check.Output} on {HOSTNAME}.")
notify(f"({HOSTNAME} {check.Output}")
elif check.ExitCode == nagios.NagiosCode.CRITICAL:
logging.info("Check status is CRITICAL.")
if not args.dry_run:
notify(f"{check.Output} on {HOSTNAME}.")
notify(f"({HOSTNAME} {check.Output}")
elif check.ExitCode == nagios.NagiosCode.UNKNOWN:
logging.info("Check status is UNKNOWN.")
if args.unknown and not args.dry_run:
notify(f"{check.Output} on {HOSTNAME}.")
notify(f"({HOSTNAME} {check.Output}")
else:
logging.info(
f"Check status is invalid for a Nagios plugin ({check.ExitCode})."
......