From 5496449588ca40226ba459cb171f2bc46a6e4c06 Mon Sep 17 00:00:00 2001 From: Dinesh Dutt <dd.ps4u@gmail.com> Date: Mon, 22 Jan 2024 04:17:22 -0800 Subject: [PATCH] poller/ospfNbr: fix IOSXE uptime parsing Signed-off-by: Dinesh Dutt <dd.ps4u@gmail.com> --- suzieq/poller/worker/services/ospfNbr.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/suzieq/poller/worker/services/ospfNbr.py b/suzieq/poller/worker/services/ospfNbr.py index 0bfae0d631..55da3272f7 100644 --- a/suzieq/poller/worker/services/ospfNbr.py +++ b/suzieq/poller/worker/services/ospfNbr.py @@ -3,8 +3,9 @@ import numpy as np from suzieq.poller.worker.services.service import Service -from suzieq.shared.utils import get_timestamp_from_cisco_time -from suzieq.shared.utils import get_timestamp_from_junos_time +from suzieq.shared.utils import (get_timestamp_from_cisco_time, + get_timestamp_from_iosxe_time, + get_timestamp_from_junos_time) class OspfNbrService(Service): @@ -136,15 +137,16 @@ def _clean_nxos_data(self, processed_data, raw_data): return processed_data def _clean_ios_data(self, processed_data, raw_data): + rel_timestamp = raw_data[0]['cmd_timestamp']/1000 for entry in processed_data: # make area the dotted model area = entry.get('area', '') if area.isdecimal(): entry['area'] = str(ip_address(int(area))) entry['state'] = entry['state'].lower() - entry['lastUpTime'] = get_timestamp_from_cisco_time( - entry['lastUpTime'], raw_data[0]['timestamp']/1000) - entry['lastChangeTime'] = entry['lastUpTime'] + up_ts: int = get_timestamp_from_iosxe_time(entry['lastUpTime'], + rel_timestamp) + entry['lastChangeTime'] = up_ts*1000 entry['lastDownTime'] = 0 entry['lsaRtxCnt'] = int(entry['lsaRetxCnt']) entry['areaStub'] = entry['areaStub'] == 'Stub'