From 6f848193611d75365a6821f03441bf621c4442cb Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Thu, 16 Jan 2025 18:03:17 +0100
Subject: [PATCH] fixed missing lib/args.py in MKP package

---
 README.md                                     |   2 +-
 mkp/bgp_topology-0.0.4-20240116.mkp           | Bin 0 -> 10441 bytes
 .../bgp_topology/constants.py                 |   2 +-
 .../bgp_topology/lib/args.py                  | 126 ++++++++++++++++++
 .../bgp_topology/lib/bgp_topology.py          |   1 +
 source/packages/bgp_topology                  |   5 +-
 6 files changed, 132 insertions(+), 4 deletions(-)
 create mode 100644 mkp/bgp_topology-0.0.4-20240116.mkp
 create mode 100644 source/cmk_addons_plugins/bgp_topology/lib/args.py

diff --git a/README.md b/README.md
index 2f96fda..05d21ff 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/bgp_topology-0.0.3-20240104.mkp "bgp_topology-0.0.3-20240104.mkp"
+[PACKAGE]: ../../raw/master/mkp/bgp_topology-0.0.4-20240116.mkp "bgp_topology-0.0.4-20240116.mkp"
 # BGP Topology
 
 This plugin will create a Network Visualization Topology from the Peer relations of your _BGP peer services_ in Checkmk. 
diff --git a/mkp/bgp_topology-0.0.4-20240116.mkp b/mkp/bgp_topology-0.0.4-20240116.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..4f1664b90c10b6cdca31c8bab5f94a06f7510015
GIT binary patch
literal 10441
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

literal 0
HcmV?d00001

diff --git a/source/cmk_addons_plugins/bgp_topology/constants.py b/source/cmk_addons_plugins/bgp_topology/constants.py
index 950bb41..0ca394e 100644
--- a/source/cmk_addons_plugins/bgp_topology/constants.py
+++ b/source/cmk_addons_plugins/bgp_topology/constants.py
@@ -13,7 +13,7 @@
 __AUTHOR__ = 'thl-cmk[at]outlook[dot]com'
 __URL__ = 'https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/bgp_topology'
 __USAGE__ = '~/local/lib/python3/cmk_addons/plugins/bgp_topology/libexec/check_bgp_topology --make-default --host bgp1'
-__VERSION__ = '0.0.3-20250104'
+__VERSION__ = '0.0.4-20250116'
 
 from typing import Final
 
diff --git a/source/cmk_addons_plugins/bgp_topology/lib/args.py b/source/cmk_addons_plugins/bgp_topology/lib/args.py
new file mode 100644
index 0000000..4ed36e0
--- /dev/null
+++ b/source/cmk_addons_plugins/bgp_topology/lib/args.py
@@ -0,0 +1,126 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2024-12-23
+# File  : bgp_topology/lib/args.py
+
+
+from argparse import ArgumentParser, Namespace, RawTextHelpFormatter
+from collections.abc import Sequence
+
+from cmk_addons.plugins.bgp_topology.constants import (
+    __AUTHOR__,
+    __URL__,
+    __USAGE__,
+    __VERSION__,
+    ARG_PARSER_ANCHOR,
+    ARG_PARSER_ANCHOR_AS,
+    ARG_PARSER_ANCHOR_BOTH,
+    ARG_PARSER_ANCHOR_ID,
+    ARG_PARSER_EMBLEM_AS,
+    ARG_PARSER_EMBLEM_ID,
+    ARG_PARSER_HOST,
+    ARG_PARSER_MAKE_DEFAULT,
+    ARG_PARSER_NONE,
+    ARG_PARSER_SITES_EXCLUDE,
+    ARG_PARSER_SITES_INCLUDE,
+    ARG_PARSER_DEBUG,
+    EMBLEM_BGP_AS,
+    EMBLEM_BGP_ID,
+)
+from cmk_addons.plugins.bgp_topology.lib.utils import (
+    OMD_ROOT,
+)
+
+
+class Params(Namespace):
+    bgp_anchor: str
+    make_default: bool = False
+    bgp_emblem_as: str = EMBLEM_BGP_AS
+    bgp_emblem_id: str = EMBLEM_BGP_ID
+    include_sites: Sequence[str] | None = None
+    exclude_sites: Sequence[str] | None = None
+    host: str = ''
+    debug: bool = False
+
+
+def parse_arguments(argv: Sequence[str]) -> Params:
+    parser = ArgumentParser(
+        prog='bgp_topology',
+        formatter_class=RawTextHelpFormatter,
+        description=f"""Create BGP peer network topology for Checkmk""",
+        epilog=f"""
+Example usage:
+{__USAGE__}        
+
+Version: {__VERSION__} | Written by {__AUTHOR__}
+for more information see: {__URL__}
+        """
+    )
+    parser.add_argument(
+        ARG_PARSER_ANCHOR,
+        choices=[
+            ARG_PARSER_ANCHOR_BOTH,
+            ARG_PARSER_ANCHOR_AS,
+            ARG_PARSER_ANCHOR_ID,
+            ARG_PARSER_NONE,
+        ],
+        default=ARG_PARSER_ANCHOR_BOTH,
+        help='Anchor for external BGP objects (default: %(default)s).',
+    )
+    parser.add_argument(
+        ARG_PARSER_EMBLEM_AS,
+        type=str,
+        default=EMBLEM_BGP_AS,
+        help='Emblem to use for BGP-AS objects (default: %(default)s).',
+    )
+    parser.add_argument(
+        ARG_PARSER_EMBLEM_ID,
+        type=str,
+        default=EMBLEM_BGP_ID,
+        help='Emblem to use for BGP-ID objects (default: %(default)s).',
+    )
+    parser.add_argument(
+        ARG_PARSER_MAKE_DEFAULT,
+        action='store_const', const=True,
+        default=False,
+        help='Make this topology the default (default: %(default)s).',
+    )
+    parser.add_argument(
+        ARG_PARSER_HOST,
+        required=True,
+        type=str,
+        help="""The name of the Checkmk host to which the plugin is attached. This is set 
+automatically by Checkmk. If a site filter is active, the host name is 
+appended to the subdirectory where the topology is stored (“BGP” becomes 
+“BGP_host_name”). This way we can have more than one BGP topology without 
+overwriting each other.""",
+    )
+    site_filter = parser.add_mutually_exclusive_group()
+    site_filter.add_argument(
+        ARG_PARSER_SITES_INCLUDE,
+        type=str,
+        nargs='+',
+        help=f"""List of Checkmk site names to include in the topology creation. 
+Can not used together with {ARG_PARSER_SITES_EXCLUDE}""",
+    )
+    site_filter.add_argument(
+        ARG_PARSER_SITES_EXCLUDE,
+        type=str,
+        nargs='+',
+        help=f"""List of Checkmk site names to exclude from the topology creation. 
+Can not used together with {ARG_PARSER_SITES_INCLUDE}""",
+    )
+    parser.add_argument(
+        ARG_PARSER_DEBUG,
+        action='store_const', const=True,
+        default=False,
+        help='enable debug output',
+    )
+
+    return parser.parse_args(argv)
+
diff --git a/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py b/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py
index dbe8624..4d42221 100644
--- a/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py
+++ b/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py
@@ -13,6 +13,7 @@
 #             fixed handling of anchors
 #             changed topology name to be always BGP_{host}
 # 2025-01-04: changed output directory to host name only
+# 2025-0116: fixed missing lib/args.py in MKP package
 
 from collections.abc import MutableMapping, MutableSequence, Sequence
 from dataclasses import dataclass
diff --git a/source/packages/bgp_topology b/source/packages/bgp_topology
index 4169455..0635daa 100644
--- a/source/packages/bgp_topology
+++ b/source/packages/bgp_topology
@@ -29,10 +29,11 @@
                                   'bgp_topology/libexec/check_bgp_topology',
                                   'bgp_topology/rulesets/bgp_topology.py',
                                   'bgp_topology/server_side_calls/bgp_topology.py',
-                                  'bgp_topology/graphing/bgp_topology.py']},
+                                  'bgp_topology/graphing/bgp_topology.py',
+                                  'bgp_topology/lib/args.py']},
  'name': 'bgp_topology',
  'title': 'BGP peer topology',
- 'version': '0.0.3-20240104',
+ 'version': '0.0.4-20240116',
  'version.min_required': '2.3.0b1',
  'version.packaged': 'cmk-mkp-tool 0.2.0',
  'version.usable_until': '2.4.0b1'}
-- 
GitLab