From c10eaf60d29de57fa4a0be45bdefaf1c390b886e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Nov=C3=BD?= Date: Tue, 26 May 2020 16:57:58 +0200 Subject: [PATCH] Plugin timesync_status: Fix KeyError when time is not synced --- plugins/systemd/timesync_status | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/plugins/systemd/timesync_status b/plugins/systemd/timesync_status index c223d633..6e86e4a2 100755 --- a/plugins/systemd/timesync_status +++ b/plugins/systemd/timesync_status @@ -95,11 +95,29 @@ def retrieve(): output = result.stdout.decode('utf-8') values = parse_response(output) - print('offset.value', parse_time(values['Offset'])) - print('delay.value', parse_time(values['Delay'])) - print('delay.extinfo', 'Server', values['Server']) - print('jitter.value', parse_time(values['Jitter'])) - print('poll.value', parse_time(values['Poll interval'].split('(')[0])) + # If NTP server is not responding, timesync-status will not return all + # fields, we mark these as "U" + + if 'Offset' in values: + print('offset.value', parse_time(values['Offset'])) + else: + print('offset.value U') + + if 'Delay' in values: + print('delay.value', parse_time(values['Delay'])) + print('delay.extinfo', 'Server', values['Server']) + else: + print('delay.value U') + + if 'Jitter' in values: + print('jitter.value', parse_time(values['Jitter'])) + else: + print('jitter.value U') + + if 'Poll interval' in values: + print('poll.value', parse_time(values['Poll interval'].split('(')[0])) + else: + print('poll.value U') def autoconf():