diff --git a/agent_based/inv_epsm.py b/agent_based/inv_epsm.py index 6d877ce48b457ec29c7f2b4a46db5783490e535e..48d8022f17593d645152f17ab5ff6db6abf2529f 100644 --- a/agent_based/inv_epsm.py +++ b/agent_based/inv_epsm.py @@ -77,7 +77,7 @@ # 'version': 'v 3.1.2.2' # } -from typing import List, NamedTuple, Optional, Dict, Any +from typing import List, Dict, Any from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( StringTable, @@ -92,29 +92,40 @@ from cmk.base.plugins.agent_based.agent_based_api.v1 import ( startswith, ) +_device_activated = { + '1': 'True', + '2': 'False' +} -def parse_inv_espm(string_table: List[StringTable]) -> Dict[str, Any]: # Dict[str, str, List[Dict[str, str]]: +_device_detected = { + '1': 'True', + '2': 'False' +} + + +def parse_inv_espm(string_table: List[StringTable]) -> Dict[str, Any]: version, devices = string_table - section = {} - section['devices'] = [] - section['version'] = version[0][0] - for deviceid, devicename, deviceactivated, devicedetected, devicetype, deviceversion in devices: + section = { + 'devices': [], + 'version': version[0][0] + } + for deviceid, devicename, deviceactivated, devicedetected, devicetype, deviceversion in devices: section['devices'].append({ 'id': deviceid, 'name': devicename, 'type': devicetype, 'version': deviceversion, 'status_columns': { - 'activated': deviceactivated, - 'detected': devicedetected, + 'activated': _device_activated.get(deviceactivated, deviceactivated), + 'detected': _device_detected.get(devicedetected, devicedetected), }, }) return section -def inventory_hw_modules(params, section: Dict[str, Any]) -> InventoryResult: +def inventory_hw_modules(section: Dict[str, Any]) -> InventoryResult: path = ['hardware', 'system'] yield Attributes( @@ -133,6 +144,7 @@ def inventory_hw_modules(params, section: Dict[str, Any]) -> InventoryResult: status_columns = device['status_columns'] device.pop('status_columns') + yield TableRow( path=path, key_columns=key_columns, @@ -169,6 +181,4 @@ register.snmp_section( register.inventory_plugin( name='inv_espm', inventory_function=inventory_hw_modules, - inventory_default_parameters={}, - inventory_ruleset_name='inv_espm', ) diff --git a/inv_epsm.mkp b/inv_epsm.mkp index e5866e7155fd65877bbb43187bc95fcb928f903b..be3068bf6a232bfd6dfa01a920e9046f4ff875ba 100644 Binary files a/inv_epsm.mkp and b/inv_epsm.mkp differ diff --git a/packages/inv_epsm b/packages/inv_epsm index 47f919ef80eb2e01df042d4a19dc4105ce7aac6c..17d37806cfab8f1e5f40af8e482c76a831bd9e3e 100644 --- a/packages/inv_epsm +++ b/packages/inv_epsm @@ -1,9 +1,10 @@ {'author': 'Th.L. (thl-cmk[at]outlook[dot]com)', - 'description': 'Inventory Neols ePowerSwitch ', + 'description': 'Inventory Neols ePowerSwitch \n', 'download_url': 'https://thl-cmk.hopto.org', - 'files': {'agent_based': ['inv_epsm.py']}, + 'files': {'agent_based': ['inv_epsm.py'], + 'web': ['plugins/views/inv_epsm.py']}, 'name': 'inv_epsm', - 'num_files': 1, + 'num_files': 2, 'title': 'Neol ePowerswitch inventory', 'version': '20211127.v.0.0.1', 'version.min_required': '2.0.0', diff --git a/web/plugins/views/inv_epsm.py b/web/plugins/views/inv_epsm.py new file mode 100644 index 0000000000000000000000000000000000000000..d90a4892ba7b7d435f9d5097e2065b174812f14a --- /dev/null +++ b/web/plugins/views/inv_epsm.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from cmk.gui.plugins.views import ( + inventory_displayhints, ) +from cmk.gui.i18n import _ +from cmk.gui.plugins.views.inventory import declare_invtable_view + +inventory_displayhints.update({ + '.hardware.devices:': {'title': _('Devices'), + 'keyorder': ['id', 'name', 'type', 'version', 'detected', 'activated', ], + 'view': 'invdevices_of_host', + }, + '.hardware.devices:*.id': {'title': _('ID'), }, + '.hardware.devices:*.name': {'title': _('Name')}, + '.hardware.devices:*.type': {'title': _('Type'), }, + '.hardware.devices:*.version': {'title': _('Version')}, + '.hardware.devices:*.detected': {'title': _('Detected'), }, + '.hardware.devices:*.activated': {'title': _('Activated'), }, +}) + +declare_invtable_view('invdevices', '.hardware.devices:', _('Devices'), _('Devices'))