Skip to content

Commit 0b29cae

Browse files
Jörg Dreffeinnbuchwitz
authored andcommitted
fix!: handle changed opnsense api since 22.7.x
1 parent f76b277 commit 0b29cae

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

check_opnsense.py

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# check_opnsense.py - A check plugin for monitoring OPNsense firewalls.
66
# Copyright (C) 2018 Nicolai Buchwitz <[email protected]>
77
#
8-
# Version: 0.1.0
8+
# Version: 0.1.1
99
#
1010
# ------------------------------------------------------------------------------
1111
# This program is free software; you can redistribute it and/or
@@ -211,18 +211,27 @@ def check_updates(self) -> None:
211211
url = self.get_url("core/firmware/status")
212212
data = self.request(url)
213213

214-
if data["status"] == "ok" and data["status_upgrade_action"] == "all":
214+
if (
215+
data["status"] == "ok"
216+
and data.get("status_upgrade_action", "") == "all"
217+
and "updates" in data
218+
):
219+
# legacy api call
215220
count = data["updates"]
216221

217222
self.check_result = CheckState.WARNING
218-
self.check_message = "{} pending updates".format(count)
219-
220-
if data["upgrade_needs_reboot"]:
221-
self.check_result = CheckState.CRITICAL
222-
self.check_message = "{}. Subsequent reboot required.".format(self.check_message)
223+
self.check_message = f"{count} pending updates"
224+
elif data["status"] == "update":
225+
# api call since 22.7.x
226+
self.check_result = CheckState.WARNING
227+
self.check_message = data["status_msg"]
223228
else:
224229
self.check_message = "System up to date"
225230

231+
if data["upgrade_needs_reboot"]:
232+
self.check_result = CheckState.CRITICAL
233+
self.check_message = f"{self.check_message}. Subsequent reboot required."
234+
226235
def __init__(self) -> None:
227236
self.options = {}
228237
self.perfdata = []

0 commit comments

Comments
 (0)