From 52a99d4892700afbca146d21897095a68b995df8 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sun, 30 Mar 2025 17:04:29 +0200
Subject: [PATCH] modified for check APIv2

---
 README.md                                     |   2 +-
 mkp/juniper_bgp_peer-1.0.1-20250329.mkp       | Bin 0 -> 4014 bytes
 .../agent_based/inv_juniper_bgp_peer.py       |  19 ++++++++--------
 .../bgp_peer}/agent_based/juniper_bgp_peer.py |  21 +++++++++---------
 .../bgp_peer/lib}/juniper_bgp_peer.py         |   0
 source/packages/juniper_bgp_peer              |  14 ++++++------
 6 files changed, 27 insertions(+), 29 deletions(-)
 create mode 100644 mkp/juniper_bgp_peer-1.0.1-20250329.mkp
 rename source/{ => cmk_addons_plugins/bgp_peer}/agent_based/inv_juniper_bgp_peer.py (93%)
 rename source/{ => cmk_addons_plugins/bgp_peer}/agent_based/juniper_bgp_peer.py (95%)
 rename source/{agent_based/utils => cmk_addons_plugins/bgp_peer/lib}/juniper_bgp_peer.py (100%)

diff --git a/README.md b/README.md
index 5e33c91..680c884 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/juniper_bgp_peer-1.0.0-20230613.mkp "juniper_bgp_peer-1.0.0-20230613.mkp"
+[PACKAGE]: ../../raw/master/mkp/juniper_bgp_peer-1.0.1-20250329.mkp "juniper_bgp_peer-1.0.1-20250329.mkp"
 # Juniper BGP Peer
 
 Monitors status of Juniper BGP peers (IPv4 and IPv6)
diff --git a/mkp/juniper_bgp_peer-1.0.1-20250329.mkp b/mkp/juniper_bgp_peer-1.0.1-20250329.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..17f3fd431b49e0f0294ab12ed927363722faa9ea
GIT binary patch
literal 4014
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
UHPlc;4Syo|FQ@&HFaUS}0LU-WT>t<8

literal 0
HcmV?d00001

diff --git a/source/agent_based/inv_juniper_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/agent_based/inv_juniper_bgp_peer.py
similarity index 93%
rename from source/agent_based/inv_juniper_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/agent_based/inv_juniper_bgp_peer.py
index 8fec6ae..2613dc4 100644
--- a/source/agent_based/inv_juniper_bgp_peer.py
+++ b/source/cmk_addons_plugins/bgp_peer/agent_based/inv_juniper_bgp_peer.py
@@ -11,29 +11,28 @@
 #
 # THX to Jeff Fern jeff[dash]cmk[at]fcse[dot]co[dot]uk for testing and providing feedback to make this addon happen
 #
+
 # 2022-04-30: code cleanup/streamlining
-#
+# 2025-03-29: moved to check APIv2 to prepare for CMK2.4
 
 
 from typing import List
-from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
-    SNMPTree,
+from cmk.agent_based.v2 import (
     OIDBytes,
-    startswith,
     OIDEnd,
-)
-from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
+    SNMPSection,
+    SNMPTree,
     StringByteTable,
+    startswith,
 )
-from cmk.base.plugins.agent_based.utils.bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.bgp_peer import (
     InvBgpPeer,
     bgp_error_as_string,
     bgp_error_code_as_hex,
     bgp_render_ip_address,
     get_bgp_type,
 )
-from cmk.base.plugins.agent_based.utils.juniper_bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.juniper_bgp_peer import (
     juniper_afi_safi_mapping,
 )
 
@@ -86,7 +85,7 @@ def parse_inv_juniper_bgp_peer(string_table: List[StringByteTable]):
     return bgp_peers
 
 
-register.snmp_section(
+snmp_section_inv_juniper_bgp_peer=SNMPSection(
     name='inv_juniper_bgp_peer',
     parse_function=parse_inv_juniper_bgp_peer,
     parsed_section_name='inv_bgp_peer',
diff --git a/source/agent_based/juniper_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/agent_based/juniper_bgp_peer.py
similarity index 95%
rename from source/agent_based/juniper_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/agent_based/juniper_bgp_peer.py
index df60dce..6c5db35 100644
--- a/source/agent_based/juniper_bgp_peer.py
+++ b/source/cmk_addons_plugins/bgp_peer/agent_based/juniper_bgp_peer.py
@@ -18,30 +18,29 @@
 # 2023-01-25: fixed routing instance in item
 # 2023-02-20: fixed crash on unexpected input data (i.e. in_prefixes_active)
 #             THX stephen[dot]Chrobot[dash]Hudson[at]nominet[dot]uk
-#
+# 2025-03-29: moved to check APIv2 to prepare for CMK2.4
+
 
 import copy
 from typing import List, Dict, Optional, Tuple
 from dataclasses import dataclass
 
-from cmk.base.plugins.agent_based.agent_based_api.v1 import (
-    register,
-    SNMPTree,
-    startswith,
-    OIDEnd,
+from cmk.agent_based.v2 import (
     OIDBytes,
-)
-from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
+    OIDEnd,
+    SNMPSection,
+    SNMPTree,
     StringByteTable,
+    startswith,
 )
 
-from cmk.base.plugins.agent_based.utils.bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.bgp_peer import (
     BgpPeer,
     bgp_get_peer_entry,
     bgp_render_ip_address,
 )
 
-from cmk.base.plugins.agent_based.utils.juniper_bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.juniper_bgp_peer import (
     juniper_afi_safi_mapping,
 )
 
@@ -120,7 +119,7 @@ def parse_juniper_bgp_peer(string_table: List[StringByteTable]) -> Optional[Dict
     return peer_table
 
 
-register.snmp_section(
+snmp_section_juniper_bgp_peer=SNMPSection(
     name='juniper_bgp_peer',
     parse_function=parse_juniper_bgp_peer,
     parsed_section_name='bgp_peer',
diff --git a/source/agent_based/utils/juniper_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/lib/juniper_bgp_peer.py
similarity index 100%
rename from source/agent_based/utils/juniper_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/lib/juniper_bgp_peer.py
diff --git a/source/packages/juniper_bgp_peer b/source/packages/juniper_bgp_peer
index fad30f3..dca9323 100644
--- a/source/packages/juniper_bgp_peer
+++ b/source/packages/juniper_bgp_peer
@@ -20,12 +20,12 @@
                 'NOTE: this plugin will supersede the original '
                 'juniper_bgp_status plugin.\n',
  'download_url': 'https://thl-cmk.hopto.org/gitlab/checkmk/juniper-networks/juniper_bgp_peer',
- 'files': {'agent_based': ['juniper_bgp_peer.py',
-                           'inv_juniper_bgp_peer.py',
-                           'utils/juniper_bgp_peer.py']},
+ 'files': {'cmk_addons_plugins': ['bgp_peer/agent_based/inv_juniper_bgp_peer.py',
+                                  'bgp_peer/agent_based/juniper_bgp_peer.py',
+                                  'bgp_peer/lib/juniper_bgp_peer.py']},
  'name': 'juniper_bgp_peer',
  'title': 'Juniper BGP peer',
- 'version': '1.0.0-20230613',
- 'version.min_required': '2.0.0b1',
- 'version.packaged': '2.2.0p24',
- 'version.usable_until': None}
+ 'version': '1.0.1-20250329',
+ 'version.min_required': '2.3.0b1',
+ 'version.packaged': 'cmk-mkp-tool 0.2.0',
+ 'version.usable_until': '2.5.0b1'}
-- 
GitLab