Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api changed #6

Open
jdreffein opened this issue Dec 20, 2022 · 1 comment
Open

api changed #6

jdreffein opened this issue Dec 20, 2022 · 1 comment

Comments

@jdreffein
Copy link

around 22.7.x (couldn't find anything in the update history) the api seems to have partially changed and the check now doesn't get to know about new updates.
content of 'status' is now 'update' instead of 'ok', 'status_upgrade_action' has disappeared.
good news is, that the number of updates has not to be counted any more but is reported as 'status_msg'.

here is a recent result of a current api request (22.7.8):

{"api_version":"2","connection":"ok","downgrade_packages":[],"download_size":"25MiB","last_check":"Tue Dec 20 12:54:59 CET 2022","needs_reboot":"1","new_packages":[],"os_version":"FreeBSD 13.1-RELEASE-p3","product_id":"opnsense","product_target":"opnsense","product_version":"22.7.8","reinstall_packages":[],"remove_packages":[],"repository":"ok","upgrade_major_message":"","upgrade_major_version":"","upgrade_needs_reboot":"0","upgrade_packages":[{"name":"ca_root_nss","repository":"OPNsense","current_version":"3.83","new_version":"3.85"},{"name":"git","repository":"OPNsense","current_version":"2.38.1_3","new_version":"2.38.1_4"},{"name":"glib","repository":"OPNsense","current_version":"2.74.1,2","new_version":"2.74.2_1,2"},{"name":"opnsense","repository":"OPNsense","current_version":"22.7.8","new_version":"22.7.9_3"},{"name":"opnsense-update","repository":"OPNsense","current_version":"22.7.7","new_version":"22.7.9"},{"name":"php80","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-ctype","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-curl","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-dom","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-filter","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-gettext","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-ldap","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-mbstring","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-pdo","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-session","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-simplexml","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-sockets","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-sqlite3","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-xml","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-zlib","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"py39-Babel","repository":"OPNsense","current_version":"2.10.3","new_version":"2.11.0"},{"name":"readline","repository":"OPNsense","current_version":"8.1.2","new_version":"8.2.0"},{"name":"sqlite3","repository":"OPNsense","current_version":"3.39.3_1,1","new_version":"3.40.0,1"},{"name":"suricata","repository":"OPNsense","current_version":"6.0.8_1","new_version":"6.0.9_1"},{"name":"base","size":"114228228","repository":"OPNsense","current_version":"22.7.7","new_version":"22.7.9"},{"name":"kernel","size":"32275752","repository":"OPNsense","current_version":"22.7.7","new_version":"22.7.9"}],"upgrade_sets":[],"product":{"product_abi":"22.7","product_arch":"amd64","product_check":{"api_version":"2","connection":"ok","downgrade_packages":[],"download_size":"25MiB","last_check":"Tue Dec 20 12:54:59 CET 2022","needs_reboot":"1","new_packages":[],"os_version":"FreeBSD 13.1-RELEASE-p3","product_id":"opnsense","product_target":"opnsense","product_version":"22.7.8","reinstall_packages":[],"remove_packages":[],"repository":"ok","upgrade_major_message":"","upgrade_major_version":"","upgrade_needs_reboot":"0","upgrade_packages":[{"name":"ca_root_nss","repository":"OPNsense","current_version":"3.83","new_version":"3.85"},{"name":"git","repository":"OPNsense","current_version":"2.38.1_3","new_version":"2.38.1_4"},{"name":"glib","repository":"OPNsense","current_version":"2.74.1,2","new_version":"2.74.2_1,2"},{"name":"opnsense","repository":"OPNsense","current_version":"22.7.8","new_version":"22.7.9_3"},{"name":"opnsense-update","repository":"OPNsense","current_version":"22.7.7","new_version":"22.7.9"},{"name":"php80","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-ctype","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-curl","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-dom","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-filter","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-gettext","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-ldap","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-mbstring","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-pdo","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-session","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-simplexml","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-sockets","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-sqlite3","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-xml","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"php80-zlib","repository":"OPNsense","current_version":"8.0.25","new_version":"8.0.26"},{"name":"py39-Babel","repository":"OPNsense","current_version":"2.10.3","new_version":"2.11.0"},{"name":"readline","repository":"OPNsense","current_version":"8.1.2","new_version":"8.2.0"},{"name":"sqlite3","repository":"OPNsense","current_version":"3.39.3_1,1","new_version":"3.40.0,1"},{"name":"suricata","repository":"OPNsense","current_version":"6.0.8_1","new_version":"6.0.9_1"},{"name":"base","size":"114228228","repository":"OPNsense","current_version":"22.7.7","new_version":"22.7.9"},{"name":"kernel","size":"32275752","repository":"OPNsense","current_version":"22.7.7","new_version":"22.7.9"}],"upgrade_sets":[]},"product_copyright_owner":"Deciso B.V.","product_copyright_url":"https://www.deciso.com/","product_copyright_years":"2014-2022","product_crypto":"OpenSSL","product_email":"project@opnsense.org","product_flavour":"OpenSSL","product_hash":"107b07d90","product_id":"opnsense","product_latest":"22.7.9","product_license":[],"product_log":1,"product_mirror":"https://pkg.opnsense.org/FreeBSD:13:amd64/22.7","product_name":"OPNsense","product_nickname":"Powerful Panther","product_repos":"OPNsense","product_series":"22.7","product_time":"Fri Nov 25 07:17:19 CET 2022","product_version":"22.7.8","product_website":"https://opnsense.org/"},"all_packages":{"base":{"reason":"upgrade","old":"22.7.7","new":"22.7.9","repository":"OPNsense","name":"base"},"ca_root_nss":{"reason":"upgrade","old":"3.83","new":"3.85","repository":"OPNsense","name":"ca_root_nss"},"git":{"reason":"upgrade","old":"2.38.1_3","new":"2.38.1_4","repository":"OPNsense","name":"git"},"glib":{"reason":"upgrade","old":"2.74.1,2","new":"2.74.2_1,2","repository":"OPNsense","name":"glib"},"kernel":{"reason":"upgrade","old":"22.7.7","new":"22.7.9","repository":"OPNsense","name":"kernel"},"opnsense":{"reason":"upgrade","old":"22.7.8","new":"22.7.9_3","repository":"OPNsense","name":"opnsense"},"opnsense-update":{"reason":"upgrade","old":"22.7.7","new":"22.7.9","repository":"OPNsense","name":"opnsense-update"},"php80":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80"},"php80-ctype":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-ctype"},"php80-curl":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-curl"},"php80-dom":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-dom"},"php80-filter":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-filter"},"php80-gettext":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-gettext"},"php80-ldap":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-ldap"},"php80-mbstring":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-mbstring"},"php80-pdo":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-pdo"},"php80-session":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-session"},"php80-simplexml":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-simplexml"},"php80-sockets":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-sockets"},"php80-sqlite3":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-sqlite3"},"php80-xml":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-xml"},"php80-zlib":{"reason":"upgrade","old":"8.0.25","new":"8.0.26","repository":"OPNsense","name":"php80-zlib"},"py39-Babel":{"reason":"upgrade","old":"2.10.3","new":"2.11.0","repository":"OPNsense","name":"py39-Babel"},"readline":{"reason":"upgrade","old":"8.1.2","new":"8.2.0","repository":"OPNsense","name":"readline"},"sqlite3":{"reason":"upgrade","old":"3.39.3_1,1","new":"3.40.0,1","repository":"OPNsense","name":"sqlite3"},"suricata":{"reason":"upgrade","old":"6.0.8_1","new":"6.0.9_1","repository":"OPNsense","name":"suricata"}},"all_sets":[],"status_msg":"There are 26 updates available, total download size is 164.7MiB. This update requires a reboot.","status_reboot":"1","status":"update"}

@jdreffein
Copy link
Author

suggested fix (besides additional version check), works for me:

def checkUpdates(self):
url = self.getURL('core/firmware/status')
data = self.request(url)

    if data['status'] == 'update':

        self.checkResult = NagiosState.WARNING
        self.checkMessage = data['status_msg']

        if data['needs_reboot']:
            self.checkResult = NagiosState.CRITICAL
            self.checkMessage = "{}. Subsequent reboot required.".format(self.checkMessage)
    else:
        self.checkMessage = "System up to date"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant