From e8e2b94f548cc6f317420d72434988d59fd08261 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Fri, 10 May 2024 22:44:05 +0200 Subject: [PATCH] update project --- README.md | 1 + agent_based/inv_opengear_serial_lines.py | 150 ------------- {doc => img}/.gitkeep | 0 {doc => img}/sample.png | Bin inv_opengear_serial_line.mkp | Bin 2324 -> 0 bytes ...nv_opengear_serial_line-0.1.1-20230614.mkp | Bin ...nv_opengear_serial_line-0.1.2-20240510.mkp | Bin 0 -> 2539 bytes .../agent_based/inv_opengear_serial_lines.py | 197 ++++++++++++++++++ .../packages}/inv_opengear_serial_line | 6 +- .../views/inv_opengear_serial_lines.py | 5 +- 10 files changed, 203 insertions(+), 156 deletions(-) delete mode 100644 agent_based/inv_opengear_serial_lines.py rename {doc => img}/.gitkeep (100%) rename {doc => img}/sample.png (100%) delete mode 100644 inv_opengear_serial_line.mkp rename inv_opengear_serial_line-0.1.1-20230614.mkp => mkp/inv_opengear_serial_line-0.1.1-20230614.mkp (100%) create mode 100644 mkp/inv_opengear_serial_line-0.1.2-20240510.mkp create mode 100644 source/agent_based/inv_opengear_serial_lines.py rename {packages => source/packages}/inv_opengear_serial_line (74%) rename {gui => source/web/plugins}/views/inv_opengear_serial_lines.py (92%) diff --git a/README.md b/README.md index 3aa5ec4..bc91117 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[PACKAGE]: ../../raw/master/mkp/inv_opengear_serial_line-0.1.2-20240510.mkp "inv_opengear_serial_line-0.1.2-20240510.mkp" # Hardware inventory ### Plugin Info diff --git a/agent_based/inv_opengear_serial_lines.py b/agent_based/inv_opengear_serial_lines.py deleted file mode 100644 index dcd581a..0000000 --- a/agent_based/inv_opengear_serial_lines.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/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 : 20212-07-08 -# File : inv_opengear_serial_line -# -# inventory of opengear console servers serial lines -# -# 2023-02-20: moved gui files from ~/local/share/check_mk/... to ~/local/lib/check_mk... -# 2023-06-16: removed unused inventory_ruleset_name and params - -from cmk.base.plugins.agent_based.agent_based_api.v1 import ( - register, - SNMPTree, - TableRow, - startswith, - OIDEnd, -) -from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( - StringTable, - InventoryResult, -) - -_opengear_state = { - '1': 'on', - '2': 'off', -} - -_opengear_log_level = { - '1': 'disabled', - '2': 'connect', - '3': 'inputAndOutput', - '4': 'inputOnly', - '5': 'outputOnly', -} - -_opengear_mode = { - '1': 'none', - '2': 'console', - '3': 'sdt', - '4': 'terminal', - '5': 'bridge', -} - -_opengear_flow_control = { - '1': 'none', - '2': 'hardware', - '3': 'software', -} - -_opengear_stop_bits = { - '1': 'one', - '2': 'two', - '3': 'oneAndAHalf', -} - -_opengear_parity = { - '1': 'none', - '2': 'odd', - '3': 'even', - '4': 'mark', - '5': 'space', -} - - -def parse_inv_opengear_serial_lines(string_table: StringTable): - section = [] - - for index, label, speed, databits, parity, stopbits, flowcontrol, mode, loglevel, \ - dcd, dtr, dsr, cts, rts in string_table: - entry = { - 'key_columns': { - 'index': f'{int(index):02}' - }, - 'inventory_columns': { - 'label': label, - 'speed': speed, - 'databits': databits, - 'parity': _opengear_parity.get(parity, parity), - 'stopbits': _opengear_stop_bits.get(stopbits, stopbits), - 'flowcontrol': _opengear_flow_control.get(flowcontrol, flowcontrol), - 'mode': _opengear_mode.get(mode, mode), - 'loglevel': _opengear_log_level.get(loglevel, loglevel), - 'cts': _opengear_state[cts], - - 'dcd': _opengear_state[dcd], - 'dtr': _opengear_state[dtr], - 'rts': _opengear_state[rts], - }, - 'status_columns': { - - } - } - - section.append(entry) - - return section - - -def inventory_bgp_peers(section) -> InventoryResult: - path = ['hardware', 'serial_lines'] - - for entry in section: - yield TableRow( - path=path, - key_columns=entry['key_columns'], - inventory_columns=entry['inventory_columns'], - status_columns=entry['status_columns'] - ) - - -register.snmp_section( - name='inv_opengear_serial_lines', - parse_function=parse_inv_opengear_serial_lines, - fetch=SNMPTree( - base='.1.3.6.1.4.1.25049.17.2.1', # OG-STATUSv2-MIB:orgSerialPortEntry - oids=[ - OIDEnd(), # line index - '2', # ogSerialPortLabel - '3', # ogSerialPortSpeed - '4', # ogSerialPortDataBits - '5', # ogSerialPortParity - '6', # ogSerialPortStopBits - '7', # ogSerialPortFlowControl - '8', # ogSerialPortMode - '9', # ogSerialPortLogLevel - # '10', # ogSerialPortRxBytes - # '11', # ogSerialPortTxBytes - # '12', # ogSerialPortFramingErrors - # '13', # ogSerialPortParityErrors - # '14', # ogSerialPortOverrunErrors - # '15', # ogSerialPortBreaks - '16', # ogSerialPortDCD - '17', # ogSerialPortDTR - '18', # ogSerialPortDSR - '19', # ogSerialPortCTS - '20', # ogSerialPortRTS - ] - ), - detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049'), # sysObjectID == opengear -) - -register.inventory_plugin( - name='inv_opengear_serial_lines', - inventory_function=inventory_bgp_peers, -) diff --git a/doc/.gitkeep b/img/.gitkeep similarity index 100% rename from doc/.gitkeep rename to img/.gitkeep diff --git a/doc/sample.png b/img/sample.png similarity index 100% rename from doc/sample.png rename to img/sample.png diff --git a/inv_opengear_serial_line.mkp b/inv_opengear_serial_line.mkp deleted file mode 100644 index 649054826aca7e12dbc7a1d67442a29494fa4ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2324 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 diff --git a/inv_opengear_serial_line-0.1.1-20230614.mkp b/mkp/inv_opengear_serial_line-0.1.1-20230614.mkp similarity index 100% rename from inv_opengear_serial_line-0.1.1-20230614.mkp rename to mkp/inv_opengear_serial_line-0.1.1-20230614.mkp diff --git a/mkp/inv_opengear_serial_line-0.1.2-20240510.mkp b/mkp/inv_opengear_serial_line-0.1.2-20240510.mkp new file mode 100644 index 0000000000000000000000000000000000000000..3708e3fe24d7b7f2fd460bea62a388d829e8771f GIT binary patch literal 2539 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 literal 0 HcmV?d00001 diff --git a/source/agent_based/inv_opengear_serial_lines.py b/source/agent_based/inv_opengear_serial_lines.py new file mode 100644 index 0000000..8d22bb9 --- /dev/null +++ b/source/agent_based/inv_opengear_serial_lines.py @@ -0,0 +1,197 @@ +#!/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 : 20212-07-08 +# File : inv_opengear_serial_line +# +# inventory of opengear console servers serial lines +# +# 2023-02-20: moved gui files from ~/local/share/check_mk/... to ~/local/lib/check_mk... +# 2023-06-16: removed unused inventory_ruleset_name and params +# 2024-05-10: fixed wrong inventory function name +# integrated .1.3.6.1.4.1.25049.17.2.1 and .1.3.6.1.4.1.25049.10.19.2.2.1 + +from collections.abc import Mapping, Sequence +from typing import List + +from cmk.base.plugins.agent_based.agent_based_api.v1 import ( + OIDEnd, + SNMPTree, + TableRow, + register, + startswith, +) +from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( + InventoryResult, + StringTable, +) + +_opengear_state = { + '0': 'off', + '1': 'on', + '2': 'off', +} + +_opengear_log_level = { + '1': 'disabled', + '2': 'connect', + '3': 'inputAndOutput', + '4': 'inputOnly', + '5': 'outputOnly', +} + +_opengear_mode = { + '1': 'none', + '2': 'console', + '3': 'sdt', + '4': 'terminal', + '5': 'bridge', +} + +_opengear_flow_control = { + '1': 'none', + '2': 'hardware', + '3': 'software', +} + +_opengear_stop_bits = { + '1': 'one', + '2': 'two', + '3': 'oneAndAHalf', +} + +_opengear_parity = { + '1': 'none', + '2': 'odd', + '3': 'even', + '4': 'mark', + '5': 'space', +} + +SECTION = Sequence[Mapping[str, Mapping[str, str]]] + + +def parse_inv_opengear_serial_lines(string_table: List[StringTable]) -> SECTION | None: + try: + raw_data, raw_data_v2 = string_table + except ValueError: + return + + if not raw_data: + raw_data = raw_data_v2 + + section = [] + + for line in raw_data: + try: + index, label, speed, databits, parity, stopbits, flowcontrol, mode, loglevel, dcd, dtr, dsr, cts, rts = line + except ValueError: + return + + entry = { + 'key_columns': { + 'index': f'{int(index):02}' + }, + 'inventory_columns': { + 'label': label, + 'speed': speed, + 'databits': databits, + 'parity': _opengear_parity.get(parity, parity), + 'stopbits': _opengear_stop_bits.get(stopbits, stopbits), + 'flowcontrol': _opengear_flow_control.get(flowcontrol, flowcontrol), + 'mode': _opengear_mode.get(mode, mode), + 'loglevel': _opengear_log_level.get(loglevel, loglevel), + 'cts': _opengear_state[cts], + + 'dcd': _opengear_state[dcd], + 'dtr': _opengear_state[dtr], + 'rts': _opengear_state[rts], + }, + 'status_columns': { + } + } + + section.append(entry) + + return section + + +def inv_opengear_serial_lines(section: SECTION) -> InventoryResult: + path = ['hardware', 'serial_lines'] + + for entry in section: + yield TableRow( + path=path, + key_columns=entry['key_columns'], + inventory_columns=entry['inventory_columns'], + status_columns=entry['status_columns'] + ) + + +register.snmp_section( + name='inv_opengear_serial_lines', + parse_function=parse_inv_opengear_serial_lines, + fetch=[ + SNMPTree( + base='.1.3.6.1.4.1.25049.17.2.1', # OG-STATUSv2-MIB:orgSerialPortEntry + oids=[ + OIDEnd(), # line index + '2', # ogSerialPortLabel + '3', # ogSerialPortSpeed + '4', # ogSerialPortDataBits + '5', # ogSerialPortParity + '6', # ogSerialPortStopBits + '7', # ogSerialPortFlowControl + '8', # ogSerialPortMode + '9', # ogSerialPortLogLevel + # '10', # ogSerialPortRxBytes + # '11', # ogSerialPortTxBytes + # '12', # ogSerialPortFramingErrors + # '13', # ogSerialPortParityErrors + # '14', # ogSerialPortOverrunErrors + # '15', # ogSerialPortBreaks + '16', # ogSerialPortDCD + '17', # ogSerialPortDTR + '18', # ogSerialPortDSR + '19', # ogSerialPortCTS + '20', # ogSerialPortRTS + ] + ), + SNMPTree( + base='.1.3.6.1.4.1.25049.10.19.2.2.1', # + oids=[ + OIDEnd(), # line index + '2', # ogSerialPortLabel + '3', # ogSerialPortSpeed + '4', # ogSerialPortDataBits + '5', # ogSerialPortParity + '6', # ogSerialPortStopBits + '7', # ogSerialPortFlowControl + '8', # ogSerialPortMode + '9', # ogSerialPortLogLevel + # '10', # ogSerialPortRxBytes + # '11', # ogSerialPortTxBytes + # '12', # ogSerialPortFramingErrors + # '13', # ogSerialPortParityErrors + # '14', # ogSerialPortOverrunErrors + # '15', # ogSerialPortBreaks + '16', # ogSerialPortDCD + '17', # ogSerialPortDTR + '18', # ogSerialPortDSR + '19', # ogSerialPortCTS + '20', # ogSerialPortRTS + ] + ), + ], + + detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049'), +) + +register.inventory_plugin( + name='inv_opengear_serial_lines', + inventory_function=inv_opengear_serial_lines, +) diff --git a/packages/inv_opengear_serial_line b/source/packages/inv_opengear_serial_line similarity index 74% rename from packages/inv_opengear_serial_line rename to source/packages/inv_opengear_serial_line index 7926a6f..ca74202 100644 --- a/packages/inv_opengear_serial_line +++ b/source/packages/inv_opengear_serial_line @@ -2,10 +2,10 @@ 'description': 'Inventory for opengear KVM devices serial lines\n', 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['inv_opengear_serial_lines.py'], - 'gui': ['views/inv_opengear_serial_lines.py']}, + 'web': ['plugins/views/inv_opengear_serial_lines.py']}, 'name': 'inv_opengear_serial_line', 'title': 'opengear serial line inventory', - 'version': '0.1.1-20230614', + 'version': '0.1.2-20240510', 'version.min_required': '2.2.0b1', - 'version.packaged': '2.2.0p2', + 'version.packaged': '2.2.0p24', 'version.usable_until': None} diff --git a/gui/views/inv_opengear_serial_lines.py b/source/web/plugins/views/inv_opengear_serial_lines.py similarity index 92% rename from gui/views/inv_opengear_serial_lines.py rename to source/web/plugins/views/inv_opengear_serial_lines.py index 3187360..cd32ece 100644 --- a/gui/views/inv_opengear_serial_lines.py +++ b/source/web/plugins/views/inv_opengear_serial_lines.py @@ -11,18 +11,17 @@ # 2023-02-20: moved from ~/local/share/check_mk/... to ~/local/lib/check_mk... # 2023-06-14: removed declare_invtable_view from view definition on cmk 2.2 (see werk 15493) # changed inventory_displayhints import (see werk 15493) - +# 2024-05-10: moved back to ~/local/share/check_mk/... from ~/local/lib/check_mk... fixed crash in web.log from cmk.gui.i18n import _ from cmk.gui.views.inventory.registry import inventory_displayhints - inventory_displayhints.update({ '.hardware.serial_lines:': { 'title': _('Serial lines'), 'keyorder': [ 'index', - 'label', + 'label', 'speed', 'databits', 'parity', 'stopbits', 'flowcontrol' ], 'view': 'invseriallines_of_host', -- GitLab