From ca5c2526a340fda8016df675409b22ea58b8b440 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sat, 27 Nov 2021 18:15:42 +0100
Subject: [PATCH] update project

---
 agent_based/inv_epsm.py       |  32 +++++++++++++++++++++-----------
 inv_epsm.mkp                  | Bin 2028 -> 2372 bytes
 packages/inv_epsm             |   7 ++++---
 web/plugins/views/inv_epsm.py |  22 ++++++++++++++++++++++
 4 files changed, 47 insertions(+), 14 deletions(-)
 create mode 100644 web/plugins/views/inv_epsm.py

diff --git a/agent_based/inv_epsm.py b/agent_based/inv_epsm.py
index 6d877ce..48d8022 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
GIT binary patch
delta 2364
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
YmgsjNe&_!YQ|<uVB7A&-C4z<Jzau4hD*ylh

delta 2017
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

diff --git a/packages/inv_epsm b/packages/inv_epsm
index 47f919e..17d3780 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 0000000..d90a489
--- /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'))
-- 
GitLab