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 zcmV<72Ojvu66_BKABzYG&_t02BY#-oZ{j!>?`QrBAM+t_f)oc@W|3HFq?wx=Y1$i= z?%qlWMJX{Q*N|ir2UJ!3@AquSi5+N|-DSI4$#141v48LR`T6~x69>^MzW9@60CGJV z@n4Yo@8B9=U*HkG8jMEH(1CV5!0>|x7jGbWM!ghVImaZ`$^A{_#qx5xj(<~Yf~@<s z{nbVtx(@rx&C}eYi#VrY96!zdm@by_rfc<D$nr_HOoN05am2K~L|YQkIDJO9Bn~q~ zzQsF|&UOJ^u8~lPcTpI7zMH2Z(^ylQWRuIwVjz1RCp5O>^pT@iK}a%yfoG3k*nRLa z;=}XY3Zkt`l5Arq&(>nkuz!)aA<Uxe;Rd37<4Pl#HPC>D9L5|h{L6%Yfpng0ZlS%H zl{0WK#?IK@+5`B9)qZ;uL~crc&4ZMCW;qO_Arf!-1n&FNls)*tc63Odc@H6R^N0p4 zDz|Y&_HV!b0r21cUlvDyCI1Jb8vpU&`pWSCP59py{BKWC`!xUCJ%7|z=+BfI>Cf>B z`<cS4>}O!kTR?$Z75U+L-d4!p2J)je<36(|JD56WI%{lTI>QwlWXL+vm2Qpa9Lpdo zK+;?q5;Rv4D$4;C<zdKtmn90C@cyq{e<jQ|Bf{JB-x;xco&OFVj}8Cdrv8_-dW-sx z$D^_My}Bwwg@;!TmVfJyhYW`uXY{7^AEAqfJP7>;+^PP*sl5BgWuB#%4?%QEqAg0E zVKaz^t#_#Z&pukleh@uQP)=9<_pGJ$4tl-@OA=*df<E8=gg%pqq+W==<qu)7lznLH zaOelVw@lFMTMB@Fy8DU{nxI!V2EcsuC}9{@WcwKRoiVpx7JqdVue6;9`lPwtZf8fZ z9oR4$%<(cwV?STg?2;ta_Hfw(jm+C5AwgNRNp@cN1TDaf_rKiqlQh_Z1CxoY>H{=I zv-`U*x1XW#Z_&`kwqrZ(BN`vc7DDpHx7%%1=Vs6d#wvD(o3UdReE;tT^et?eHAnvC z-gp@$=?NvQ>wnCkKMVtUN=tKX_UX3Y;M|8L<<CW^{+q_pBf5W12<l|(I1hdFK+u=l z`%j-g-E}9G+3zxm&u?*jCX*itCCjr;yR?YUZtz@_X4<t(RM>k$4<D$Z;(had|682W zQ|dLspc#~`xPbvb7p&L)Wwami7s8W@Sl1izH_fZ>(0?22ienoOiV;B<iq6o!hU<ux zpV4>-zpN7BhVpb=$KhHvJyD{X6^_)Y6AH(QRg;RNJEfMZX0?WjbwcrY(P~l}awmTq zFPiP)bK4uA)!^vN6CRy;!lQFf_)1U1TCHl<{GM`k!ouqnt4Z<tun?35t6A^$f^|Z# zv0%yfD}S28Tcu0chcUFy;ZI!9+$xKewO}oap4xdcuzJXnC4k-I@}jH=do1T_2@{|_ z!$MnDf+PC+x(GYP+$%d!v{(->47!bSVT7ifd@&WcEVMAdmI_548eUkx<@3^?Srai1 zzoHi_;Ae<p>hic#4FQGhW^MHVR7aUrEW{LGEPwdsp?T&m<1pVu#bK*_vtcTHI)1V1 zi-!Har@JKLS-GUfRdeb{R8{9>fY0h&u}IRpa<Qai`ckRxl&ki~{Nc(XXX<Mq@*8^g zt=1}yHwc^pLZD!iKz!g6Dx*Eb-k<&Z91^96{=*O3ys(Ep221Gs5Iq-~>@$g--PlQ( zKYs>MW~;|J%Dw9)fxX2xo4)IlRVD}PwAd79oRRm8kUic|9_rnZEDvd~)%|?~>cgbu zF<@yc#+cpSe7jFcF(M!QF5Zc!4-`Cl$SKLhGy6uT>`QIUU1`A-P~xQ-arya0mTWp| zRhjT0&Xs8`x~Tsn58oVsJcNr0LhqC&et+S5TH9hV;Vu-5*h2+Rq0niCjJqi)4P7sL zwP9Y8djWm(h2AIAgY^~n^T7iCw>WMUr^T3oFGpv2E$_=*lnpW!<uhA!d0*Iv4`(@# zi5TU$x3-rgB=S2iC5AJCbFB19?<**$_^J073{+gx`zx|&9@kKZoYeX`MkQ%IRDXwP zg}}8iYS?}CxbGHOP4hG=%ehF-@?gSU@7zu7=OM{Dkg?t->q+ROmXAC|Ys?e5mw0r| z631G5slW45!YWSo3|!h+MV34V1m12c-gHVgnevofD$gtLyi#HMqJ;i1H$^^oTd(_5 zCQUtUS+X6bmXdc*<XNsHqmG(hbAR>#gO^xl7VylbqGrQ=*6B{Pr4knGBu+Ze-Bt2j zOCA_fj#bO5MeB&EI;dNM#1hCt*3o=9vIw=APnCNeRIQeT3U_pr?$%U)te~uV$~tVb zlP<Sd8sRS^?9`G))#???%_{9Gk2r9u7hVBb5!m6U^Kuwj-1R81tzl}t@_*e5IfM>B zh-W;@H7jx8XUb3|g9{5q%4+@9N_KmHz(@X?d)!a);hy~#N976LA;3`q>`mYhGE^bu zsnj8Eq~hc`&LQkdg|QE&L&&uX`T2W-ybwR4kWQ;Tyi<j@{K#h&<Veu1F5mFWjIFpJ zUO*bMwt|+Kd#ozg!BD+DC{nyGFV^6B3YBqR2c=AtQ1@WqZtKE`5hF&77%^hRh!G=3 zj2JOu#E20iMvNFSV#J6MBSwrEF=E7s5hF&77%^hRh!G=3{v7!~#AFEi08jt`bKwKr 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