From 613bd2526442791cfb9f45f035708eaf3c3de456 Mon Sep 17 00:00:00 2001 From: GigleGig Date: Fri, 28 Nov 2025 16:47:52 +0100 Subject: [PATCH 1/2] services/bgp: set default value for afiSafi to avoid None Signed-off-by: GigleGig --- suzieq/poller/worker/services/bgp.py | 33 +++++++++++++++++++--------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/suzieq/poller/worker/services/bgp.py b/suzieq/poller/worker/services/bgp.py index 7a19fb6824..c405d24e99 100644 --- a/suzieq/poller/worker/services/bgp.py +++ b/suzieq/poller/worker/services/bgp.py @@ -324,18 +324,31 @@ def _clean_nxos_data(self, processed_data, raw_data): continue if 'afiSafi' in entry: + afis = entry.get('afiSafi') or [] + af_adv = entry.get('afAdvertised') or [] + af_rcv = entry.get('afRcvd') or [] + entry['afisAdvOnly'] = [] entry['afisRcvOnly'] = [] - for i, item in enumerate(entry['afiSafi']): - if entry['afAdvertised'][i] != entry['afRcvd'][i]: - if entry['afAdvertised'][i] == 'true': - entry['afisAdvOnly'].append(entry['afiSafi']) - else: - entry['afisRcvOnly'].append(entry['afiSafi']) - - entry.pop('afiSafi') - entry.pop('afAdvertised') - entry.pop('afRcvd') + + for i, item in enumerate(afis): + adv = af_adv[i] if i < len(af_adv) else None + rcv = af_rcv[i] if i < len(af_rcv) else None + + # if adv is None or rcv is None: + # continue + # if adv != rcv: + # if adv == 'true': + # entry['afisAdvOnly'].append(item) + # else: + # entry['afisRcvOnly'].append(item) + + if adv and rcv and adv != rcv: + entry['afisAdvOnly' if adv == 'true' else 'afisRcvOnly'].append(item) + + entry.pop('afiSafi', None) + entry.pop('afAdvertised', None) + entry.pop('afRcvd', None) rrclient = entry.get('rrclient', []) if rrclient and 'true' in rrclient: From 0e1abba3a91a2336f39570405a81fcfa60469fbf Mon Sep 17 00:00:00 2001 From: GigleGig Date: Wed, 3 Dec 2025 16:06:25 +0100 Subject: [PATCH 2/2] poller/bgp: avoid Nonetype by giving a default list Signed-off-by: GigleGig --- suzieq/poller/worker/services/bgp.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/suzieq/poller/worker/services/bgp.py b/suzieq/poller/worker/services/bgp.py index c405d24e99..aa5613ecfc 100644 --- a/suzieq/poller/worker/services/bgp.py +++ b/suzieq/poller/worker/services/bgp.py @@ -335,14 +335,6 @@ def _clean_nxos_data(self, processed_data, raw_data): adv = af_adv[i] if i < len(af_adv) else None rcv = af_rcv[i] if i < len(af_rcv) else None - # if adv is None or rcv is None: - # continue - # if adv != rcv: - # if adv == 'true': - # entry['afisAdvOnly'].append(item) - # else: - # entry['afisRcvOnly'].append(item) - if adv and rcv and adv != rcv: entry['afisAdvOnly' if adv == 'true' else 'afisRcvOnly'].append(item)