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

---
 README.md                                     |   2 +-
 mkp/arista_bgp_peer-1.0.1-20250329.mkp        | Bin 0 -> 3260 bytes
 .../bgp_peer}/agent_based/arista_bgp_peer.py  |  27 +++++++++---------
 .../agent_based/inv_arista_bgp_peer.py        |  22 +++++++-------
 .../bgp_peer/lib}/arista_bgp_peer.py          |   0
 source/packages/arista_bgp_peer               |  14 ++++-----
 6 files changed, 32 insertions(+), 33 deletions(-)
 create mode 100644 mkp/arista_bgp_peer-1.0.1-20250329.mkp
 rename source/{ => cmk_addons_plugins/bgp_peer}/agent_based/arista_bgp_peer.py (93%)
 rename source/{ => cmk_addons_plugins/bgp_peer}/agent_based/inv_arista_bgp_peer.py (92%)
 rename source/{agent_based/utils => cmk_addons_plugins/bgp_peer/lib}/arista_bgp_peer.py (100%)

diff --git a/README.md b/README.md
index 8a0e902..89ef462 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/arista_bgp_peer-1.0.0-20230613.mkp "arista_bgp_peer-1.0.0-20230613.mkp"
+[PACKAGE]: ../../raw/master/mkp/arista_bgp_peer-1.0.1-20250329.mkp "arista_bgp_peer-1.0.1-20250329.mkp"
 # BGP peer
 
 Monitors the status of Arista Networks BGP peers (IPv4 and IPv6)
diff --git a/mkp/arista_bgp_peer-1.0.1-20250329.mkp b/mkp/arista_bgp_peer-1.0.1-20250329.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..cf1b110cfdfdc5788d66e03a7a3a4b9bfef4523f
GIT binary patch
literal 3260
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

literal 0
HcmV?d00001

diff --git a/source/agent_based/arista_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/agent_based/arista_bgp_peer.py
similarity index 93%
rename from source/agent_based/arista_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/agent_based/arista_bgp_peer.py
index 2ac7500..86de594 100644
--- a/source/agent_based/arista_bgp_peer.py
+++ b/source/cmk_addons_plugins/bgp_peer/agent_based/arista_bgp_peer.py
@@ -9,31 +9,30 @@
 #
 # Monitor status of Arista Networks BGP Peers (IPv4 and IPv6)
 #
-#
-#
+
+# 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 typing import Dict, List, Optional, Tuple
 
-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_get_ip_address_from_oid,
+    bgp_get_peer_entry,
 )
 
-from cmk.base.plugins.agent_based.utils.arista_bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.arista_bgp_peer import (
     arista_afi_safi_mapping,
 )
 
@@ -109,7 +108,7 @@ def parse_arista_bgp_peer(string_table: List[StringByteTable]) -> Optional[Dict[
     return peer_table
 
 
-register.snmp_section(
+snmp_section_arista_bgp_peer=SNMPSection(
     name='arista_bgp_peer',
     parse_function=parse_arista_bgp_peer,
     parsed_section_name='bgp_peer',
diff --git a/source/agent_based/inv_arista_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/agent_based/inv_arista_bgp_peer.py
similarity index 92%
rename from source/agent_based/inv_arista_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/agent_based/inv_arista_bgp_peer.py
index b6380f9..1750349 100644
--- a/source/agent_based/inv_arista_bgp_peer.py
+++ b/source/cmk_addons_plugins/bgp_peer/agent_based/inv_arista_bgp_peer.py
@@ -9,29 +9,29 @@
 #
 # inventory of Arista Networks BGP Peers (IPv4 and IPv6)
 #
-#
+
+# 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_get_ip_address_from_oid,
     bgp_render_ip_address,
     get_bgp_type,
-    bgp_get_ip_address_from_oid,
 )
-from cmk.base.plugins.agent_based.utils.arista_bgp_peer import (
+from cmk_addons.plugins.bgp_peer.lib.arista_bgp_peer import (
     arista_afi_safi_mapping,
 )
 
@@ -85,7 +85,7 @@ def parse_inv_arista_bgp_peer(string_table: List[StringByteTable]):
     return bgp_peers
 
 
-register.snmp_section(
+snmp_section_inv_arista_bgp_peer=SNMPSection(
     name='inv_arista_bgp_peer',
     parse_function=parse_inv_arista_bgp_peer,
     parsed_section_name='inv_bgp_peer',
diff --git a/source/agent_based/utils/arista_bgp_peer.py b/source/cmk_addons_plugins/bgp_peer/lib/arista_bgp_peer.py
similarity index 100%
rename from source/agent_based/utils/arista_bgp_peer.py
rename to source/cmk_addons_plugins/bgp_peer/lib/arista_bgp_peer.py
diff --git a/source/packages/arista_bgp_peer b/source/packages/arista_bgp_peer
index 6b850c7..463c163 100644
--- a/source/packages/arista_bgp_peer
+++ b/source/packages/arista_bgp_peer
@@ -20,12 +20,12 @@
                 'NOTE: this plugin will supersede the original arista_bgp '
                 'plugin\n',
  'download_url': 'https://thl-cmk.hopto.org/gitlab/arista/arista_bgp_peer',
- 'files': {'agent_based': ['arista_bgp_peer.py',
-                           'inv_arista_bgp_peer.py',
-                           'utils/arista_bgp_peer.py']},
+ 'files': {'cmk_addons_plugins': ['bgp_peer/agent_based/arista_bgp_peer.py',
+                                  'bgp_peer/lib/arista_bgp_peer.py',
+                                  'bgp_peer/agent_based/inv_arista_bgp_peer.py']},
  'name': 'arista_bgp_peer',
  'title': 'Arista 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