From c0712e0b540b8268153fd4530381a7ca8b37b215 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Wed, 25 Jan 2023 20:02:32 +0100
Subject: [PATCH] update project

---
 CHANGELOG                       |   1 +
 agent_based/juniper_bgp_peer.py |   9 ++++-----
 juniper_bgp_peer.mkp            | Bin 3735 -> 3732 bytes
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 7076676..a51514e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -3,3 +3,4 @@
 2022-05-09: added item to BgpPeer class, this is used in the discovery function
 2022-05-11: changed bgp_get_peer_entry to get proper parameters instead of Nontransparent list
             added remote_as to BgpPeerItem
+2023-01-25: fixed routing instance in item
diff --git a/agent_based/juniper_bgp_peer.py b/agent_based/juniper_bgp_peer.py
index 6b9075a..7d19cea 100644
--- a/agent_based/juniper_bgp_peer.py
+++ b/agent_based/juniper_bgp_peer.py
@@ -15,7 +15,7 @@
 # 2022-05-09: added item to BgpPeer class, this is used in the discovery function
 # 2022-05-11: changed bgp_get_peer_entry to get proper parameters instead of Nontransparent list
 #             added remote_as to BgpPeerItem
-#
+# 2023-01-25: fixed routing instance in item
 
 import copy
 from typing import List, Dict, Optional, Tuple
@@ -54,6 +54,7 @@ class JuniperPrefixes:
 
 def parse_juniper_bgp_peer(string_table: List[StringByteTable]) -> Optional[Dict[str, BgpPeer]]:
     jnxBgpM2Peer, jnxBgpM2PrefixCountersEntry = string_table
+
     peer_table = {}
     peer_prefixes = {}
 
@@ -105,10 +106,8 @@ def parse_juniper_bgp_peer(string_table: List[StringByteTable]) -> Optional[Dict
             address_family_str = juniper_afi_safi_mapping(address_family.afi, address_family.safi)
             item = f'{remote_addr} {address_family_str}'
             # ToDo: add vrf name
-            routing_instance = ''
-            if routing_instance != '0':
-                routing_instance = f'VR {routing_instance}'
-                item = f'{item} {routing_instance}'
+            routing_instance = f'VR {routing_instance}'
+            item = f'{item} {routing_instance}'
             peer_table[item] = copy.deepcopy(bgp_peer[remote_addr])
             peer_table[item].accepted_prefixes = address_family.accepted_prefixes
             peer_table[item].metric_count += address_family.metric_count
diff --git a/juniper_bgp_peer.mkp b/juniper_bgp_peer.mkp
index 3487a92b4b24004a5a7a0af434f349c58fbfc446..35fa375c97fb80499e9157bbf0fcea6393a3c5f1 100644
GIT binary patch
delta 3666
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

delta 3669
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

-- 
GitLab