From 323cf83c06630f675e65270c0a90b1c42b30ca00 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sat, 3 Jun 2023 18:16:41 +0200 Subject: [PATCH] update project --- agent_based/inv_juniper_hw_modules.py | 13 ++--- gui/views/inv_juniper_hw_modules.py | 42 +++++++++++++++ gui/wato/inv_juniper_hw_modules.py | 65 +++++++++++++++++++++++ inv_juniper_hw_modules-0.02-20230603.mkp | Bin 0 -> 2892 bytes inv_juniper_hw_modules.mkp | Bin 2924 -> 2892 bytes packages/inv_juniper_hw_modules | 11 ++-- 6 files changed, 119 insertions(+), 12 deletions(-) create mode 100644 gui/views/inv_juniper_hw_modules.py create mode 100644 gui/wato/inv_juniper_hw_modules.py create mode 100644 inv_juniper_hw_modules-0.02-20230603.mkp diff --git a/agent_based/inv_juniper_hw_modules.py b/agent_based/inv_juniper_hw_modules.py index 842c215..9ed6bb7 100644 --- a/agent_based/inv_juniper_hw_modules.py +++ b/agent_based/inv_juniper_hw_modules.py @@ -9,10 +9,11 @@ # # inventory of juniper hardware modules # +# 2023-06-03: moved gui files to ~/local/lib/chek_mk/gui/plugins/... +# 2023-06-03: fixed KeyError: 'serial_number' +# - -import time -from typing import List, NamedTuple, Optional, Dict +from typing import List, Dict from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( StringTable, @@ -31,7 +32,7 @@ def parse_inv_juniper_hw_modules(string_table: List[StringTable]) -> List[Dict]: modules = [] jnx_contents_entry, jnx_box_anatomy, sys_uptime = string_table - sys_uptime = int(sys_uptime[0][0]) / 100 # change to seconds + # sys_uptime = int(sys_uptime[0][0]) / 100 # change to seconds # first entry in jnx_contents_entry is the chassis without data (?) if jnx_contents_entry[0][5:9] == ['', '', '', '0']: box_class, box_descr, box_serial_no, box_revision, box_installed = jnx_box_anatomy[0] @@ -44,7 +45,7 @@ def parse_inv_juniper_hw_modules(string_table: List[StringTable]) -> List[Dict]: chassis_id, chassis_descr, chassis_clei_code, model in jnx_contents_entry: index = f'{container_index}.{l1_index}.{l2_index}.{l3_index}' - installed = time.ctime(time.time() - sys_uptime + (int(installed))) if installed != '0' else None + # installed = time.ctime(time.time() - sys_uptime + (int(installed))) if installed != '0' else None module = {} for key, value in [ @@ -76,7 +77,7 @@ def inventory_hw_modules(params, section: List[Dict]) -> InventoryResult: for module in section: # do not add parts without serial number - if allparts is False and module['serial_number'] is None: + if allparts is False and module.get('serial_number') is None: continue key_columns = {'index': module['index']} diff --git a/gui/views/inv_juniper_hw_modules.py b/gui/views/inv_juniper_hw_modules.py new file mode 100644 index 0000000..f3e92fd --- /dev/null +++ b/gui/views/inv_juniper_hw_modules.py @@ -0,0 +1,42 @@ +#!/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 : 2022-06-02 +# + +from cmk.gui.i18n import _ +from cmk.gui.plugins.views.utils import ( + inventory_displayhints, +) +from cmk.gui.plugins.views.inventory import ( + declare_invtable_view, +) + +inventory_displayhints.update({ + '.hardware.juniper-hw-modules:': {'title': _('Modules'), + 'keyorder': ['index', 'description', 'serial_number', 'revision', 'part_no', ], + 'view': 'invmodules_of_host', + }, + '.hardware.juniper-hw-modules:*.index': {'title': _('Index'), }, + '.hardware.juniper-hw-modules:*.serial_number': {'title': _('Serial number')}, + '.hardware.juniper-hw-modules:*.description': {'title': _('Description')}, + '.hardware.juniper-hw-modules:*.revision': {'title': _('Revision'), }, + '.hardware.juniper-hw-modules:*.installed_at': {'title': _('Installed at'), }, + '.hardware.juniper-hw-modules:*.part_no': {'title': _('Part No'), }, + '.hardware.juniper-hw-modules:*.chassis_id': {'title': _('Chassis ID'), }, + '.hardware.juniper-hw-modules:*.chassis_descr': {'title': _('Chassis description')}, + '.hardware.juniper-hw-modules:*.chassis_clei_code': {'title': _('Chassis CLEI code'), }, + '.hardware.juniper-hw-modules:*.model': {'title': _('Model'), }, + '.hardware.juniper-hw-modules:*.type': {'title': _('Type (OID)'), }, +}) + +declare_invtable_view( + 'invmodules', + '.hardware.juniper-hw-modules:', + _('Juniper Hardware Modules'), + _('Juniper Hardware Modules') +) diff --git a/gui/wato/inv_juniper_hw_modules.py b/gui/wato/inv_juniper_hw_modules.py new file mode 100644 index 0000000..45e8666 --- /dev/null +++ b/gui/wato/inv_juniper_hw_modules.py @@ -0,0 +1,65 @@ +#!/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 : 2022-06-02 +# + +from cmk.gui.i18n import _ +from cmk.gui.plugins.wato.utils import ( + HostRulespec, + rulespec_registry, +) +from cmk.gui.valuespec import ( + Dictionary, + FixedValue, + ListChoice, +) + +from cmk.gui.plugins.wato.inventory import ( + RulespecGroupInventory, +) + +_removecolumns = [ + ('chassis_clei_code', 'Chassis CLEI code'), + ('chassis_descr', 'Chassis description'), + ('chassis_id', 'Chassis ID'), + # ('installed_at', 'Installed at'), + ('model', 'Model'), + ('type', 'Type (OID)'), +] + + +def _valuespec_inv_juniper_hw_modules(): + return Dictionary( + title=_('Juniper hardware inventory'), + elements=[ + ('allparts', + FixedValue( + True, + title=_('Inventory parts without serial number'), + totext=_(''), + default_value=False, + )), + ('removecolumns', + ListChoice( + title=_('List of columns to remove'), + help=_('information to remove from inventory'), + choices=_removecolumns, + default_value=[ + ], + )), + ], + ) + + +rulespec_registry.register( + HostRulespec( + group=RulespecGroupInventory, + match_type="dict", + name="inv_parameters:inv_juniper_hw_modules", + valuespec=_valuespec_inv_juniper_hw_modules, + )) diff --git a/inv_juniper_hw_modules-0.02-20230603.mkp b/inv_juniper_hw_modules-0.02-20230603.mkp new file mode 100644 index 0000000000000000000000000000000000000000..fe2581d20b321de4a22b447ba15d945d096f0c15 GIT binary patch literal 2892 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 literal 0 HcmV?d00001 diff --git a/inv_juniper_hw_modules.mkp b/inv_juniper_hw_modules.mkp index db46a7256243cc2aa4207c7f7ff9ad26c2b4b300..fe2581d20b321de4a22b447ba15d945d096f0c15 100644 GIT binary patch literal 2892 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 literal 2924 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 KM2bKPivI$S6VCbo diff --git a/packages/inv_juniper_hw_modules b/packages/inv_juniper_hw_modules index 7f722a6..cb0413e 100644 --- a/packages/inv_juniper_hw_modules +++ b/packages/inv_juniper_hw_modules @@ -2,12 +2,11 @@ 'description': 'Inventory of Juniper networks hardware modules\n', 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['inv_juniper_hw_modules.py'], - 'web': ['plugins/views/inv_juniper_hw_modules.py', - 'plugins/wato/inv_juniper_hw_modules.py']}, + 'gui': ['views/inv_juniper_hw_modules.py', + 'wato/inv_juniper_hw_modules.py']}, 'name': 'inv_juniper_hw_modules', - 'num_files': 3, 'title': 'Juniper networks hardware inventory', - 'version': '20220602.v.0.01', - 'version.min_required': '2.0.0', - 'version.packaged': '2021.09.20', + 'version': '0.02-20230603', + 'version.min_required': '2.1.0b1', + 'version.packaged': '2.1.0p21', 'version.usable_until': None} \ No newline at end of file -- GitLab