#!/usr/bin/python3
#
# Univention Monitoring Plugin
#
# SPDX-FileCopyrightText: 2022-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only

from univention.config_registry import ucr
from univention.monitoring import Alert


class NTP(Alert):

    def write_metrics(self):
        _rc, output = self.exec_command(['/usr/lib/nagios/plugins/check_ntp_time', '-H', ucr['hostname']], env={'LANG': 'C'})
        try:
            ntp_offset = float(output.split('|', 1)[-1].split(';')[0].split('=')[-1].rstrip('s'))
        except ValueError:
            self.log.error('Checking NTP time failed: %s', output)
        else:
            self.write_metric('univention_ntp_offset_seconds', ntp_offset)
            self.log.debug(output)


if __name__ == '__main__':
    NTP.main()
