From 079d72a3abe271c0b08f1f5020b6be76b2b52441 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Sun, 23 Apr 2023 11:18:25 +0200
Subject: [PATCH] update project

---
 CHANGELOG                             |   3 +-
 agent_based/inv_checkpoint_updates.py |  61 +++++++++++++++-----------
 gui/views/inv_checkpoint_updates.py   |  39 ++++++++++++++++
 inv_checkpoint_updates.mkp            | Bin 2713 -> 2813 bytes
 packages/inv_checkpoint_updates       |   9 ++--
 5 files changed, 80 insertions(+), 32 deletions(-)
 create mode 100644 gui/views/inv_checkpoint_updates.py

diff --git a/CHANGELOG b/CHANGELOG
index c7e0629..742fc49 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -5,4 +5,5 @@
 2020-11-27: rewrite for CMK check API 1.0 (CMK 2.0)
 2020-11-28: added available updates
 2021-02-08: transfered license/support info to seperate plugin
-2021-02-22: code cleanup
\ No newline at end of file
+2021-02-22: code cleanup
+2023-04-23: refactoring, moved views file to ~/local/lib/check_mk/gui/plugins/views
diff --git a/agent_based/inv_checkpoint_updates.py b/agent_based/inv_checkpoint_updates.py
index 213069d..07638df 100644
--- a/agent_based/inv_checkpoint_updates.py
+++ b/agent_based/inv_checkpoint_updates.py
@@ -1,17 +1,23 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
-#
-# Author: thl-cmk[at]outlook[dot]com / thl-cmk.hopto.org
+
+# License: GNU General Public License v2
+
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2016-06-29
 #
 # Check Point updates inventory
 #
-# 2016-06-29 : inventory Check Point Appliance
-# 2018-03-05 : added Patches, Deployment Agent Build
-# 2018-03-07 : added Licenses
-# 2020-06-01 : cleanup, prepared for cmk1.7x, rename from inv_checkpoint_svn to checkpoint_inv_base
-# 2020-11-27 : rewrite for CMK check API 1.0 (CMK 2.0)
-# 2020-11-28 : added available updates
-# 2021-02-08 : transfered license/support info to seperate plugin
+# 2016-06-29: inventory Check Point Appliance
+# 2018-03-05: added Patches, Deployment Agent Build
+# 2018-03-07: added Licenses
+# 2020-06-01: cleanup, prepared for cmk1.7x, rename from inv_checkpoint_svn to checkpoint_inv_base
+# 2020-11-27: rewrite for CMK check API 1.0 (CMK 2.0)
+# 2020-11-28: added available updates
+# 2021-02-08: transferred license/support info to separate plugin
+# 2021-02-22: code cleanup
+# 2021-04-23: refactoring
 #
 # sample string_table
 # [
@@ -34,8 +40,7 @@
 # ]
 #
 
-from typing import List, NamedTuple
-
+from typing import List, NamedTuple, Optional
 from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
     StringTable,
     InventoryResult,
@@ -62,27 +67,31 @@ class CheckpointUpdatesAvailable(NamedTuple):
     description: str
     type: str
     status: str
-    availablesince: str
+    available_since: str
     recommended: str
-    installedat: str
+    installed_at: str
 
 
 class CheckpointUpdates(NamedTuple):
-    updatesrecommended: list
-    updatesavailable: list
+    updates_recommended: list
+    updates_available: list
 
 
-def parse_checkpoint_updates(string_table: List[StringTable]) -> CheckpointUpdates:
-    section = CheckpointUpdates
-    section.updatesrecommended = list(string_table[0])
-    section.updatesavailable = list(string_table[1])
+def parse_checkpoint_updates(string_table: List[StringTable]) -> Optional[CheckpointUpdates]:
+    try:
+        section = CheckpointUpdates(
+            updates_recommended=list(string_table[0]),
+            updates_available=list(string_table[1])
+        )
+    except IndexError:
+        return
     return section
 
 
 def inventory_checkpoint_updates(section: CheckpointUpdates) -> InventoryResult:
     path = ['software', 'check_point', 'updates']
 
-    for update in section.updatesrecommended:
+    for update in section.updates_recommended:
         update = CheckpointUpdatesRecommended(*update)
         yield TableRow(
             path=path,
@@ -94,13 +103,13 @@ def inventory_checkpoint_updates(section: CheckpointUpdates) -> InventoryResult:
             },
         )
 
-    for update in section.updatesavailable:
+    for update in section.updates_available:
         update = CheckpointUpdatesAvailable(*update)
 
-        if not 'installed' in update.status.lower():
-            installedat = 'N/A'
+        if 'installed' not in update.status.lower():
+            installed_at = 'N/A'
         else:
-            installedat = update.installedat.replace('T', ' ').replace('Z', '')
+            installed_at = update.installed_at.replace('T', ' ').replace('Z', '')
 
         yield TableRow(
             path=path,
@@ -110,8 +119,8 @@ def inventory_checkpoint_updates(section: CheckpointUpdates) -> InventoryResult:
                 'type': update.type,
                 'status': update.status,
                 'recommended': update.recommended,
-                'available_since': update.availablesince[:10],
-                'installed_at': installedat,
+                'available_since': update.available_since[:10],
+                'installed_at': installed_at,
             },
         )
 
diff --git a/gui/views/inv_checkpoint_updates.py b/gui/views/inv_checkpoint_updates.py
new file mode 100644
index 0000000..98adca4
--- /dev/null
+++ b/gui/views/inv_checkpoint_updates.py
@@ -0,0 +1,39 @@
+#!/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  : 2016-06-29
+
+# 2023-04-23: moved views file to ~/local/lib/check_mk/gui/plugins/views
+
+from cmk.gui.i18n import _
+from cmk.gui.plugins.views.inventory import declare_invtable_view
+from cmk.gui.plugins.views.utils import (
+    inventory_displayhints,
+)
+
+inventory_displayhints.update({
+    '.software.check_point.updates:': {
+        'title': _('Updates'),
+        'keyorder': [
+            'file_name',
+            'type',
+            'status',
+            'recommended',
+            'available_since',
+            'installed_at',
+            'description'
+        ],
+        'view': 'invcheckpointupdates_of_host',
+    },
+})
+
+declare_invtable_view(
+    'invcheckpointupdates',
+    '.software.check_point.updates:',
+    _('Check Point updates'),
+    _('Check Point updates'),
+)
diff --git a/inv_checkpoint_updates.mkp b/inv_checkpoint_updates.mkp
index 69aefe6c9f244b9787e006462f4cc1554198e79a..ff2cc34734d6e8ea01719af5cdc03503dde426c9 100644
GIT binary patch
literal 2813
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
EA0+Im&;S4c

literal 2713
zcmbWkX&@7f!vJtc%JCp~7NO0`HTM-Ji-ciBlCa!!<Q#^P$T>%BRIVfsN$x9h<Tj+3
zqnP`8P&2~j+W+JG{r&wUQrX!t&55oo4Aj$5XIC$GSDyfX)YA}Wbb#BF5cgmO6(tpA
zB^4ztNGL=Jq73o#31Ir|upK<B!GGj=CRDy3Yi;@N-WJNDKy<+G&HMBf6Z|&(F>hjy
zWU8`J-32eZ=^;jR8<WiQsh*%~9UeTLwbBA}j(@mPr426qP@6yLuVFfSY8S=&CwexW
zJX_yZP^GsS62TfdR;SSBO5yXN@MS9hDSJztR<c(Aqw{qkp@?dq4}d7&Ro(9ep`lz3
zEA)fUV~WeT#K0&lG@0I~Rj7&cNV_6H>_=tpN~ULSlmFXR<u}w+TMlfMq~gWKHfeA2
z`wV)Atg_-`CDLSo6I#-D)8=BA7H9^W&It_#)-C<{cLi=q*{e{s-Pa|40CF1R6qX;R
zlk4(x)I$u4pIwT+XAQ6}vRb@cG0<#v<wQWy><$UrkLjKZ)zSQ!-^Y<Ls@2X<nvi_|
z&tR9a9kL*d<2g7W>glu3^H)B>zu&7yXxLv7F}GD+$#LRL0F6{VPipjMi5ULnFr&Zp
z0vKaq)qW5HYrdHm`68N!XZKm+bCZJ(=kOw$=J?PHS3;5rIi7U&O`UG#CVaRyVLc7?
zx+!8R|I*9cas7Hpp+8DuZ);=)ll40;7MXJz{EJ53vdzL3-*OVBGTjLT82_Cp>~{q|
zJNA!u3;e5J$(TY0l%3Bi{kzR5Au+J_j3dXon3%H#|150jDR3f=$iOz9XKWVALIe>h
zTHZCaNx<6jm$%tMbJWGs$Bs0Gm(I8r<GK~fL*?gA5G_N{DL;~zo@fQILM<!GgK$?A
z!)7EidHqv<CCSSmS^bgpP16vmyE$G2*r)Heh1{PcX$W)i{-fRM5<@|FyhwhrOWp3A
z=<ED=un@RYRmI4tKld;9a@IM=E&(FHiw{zq6vGH)(ZAI5vFB1{ln|ZEjBEKZBQ$}!
zu-9x$Zd_#SM(2H9dT~K*16I_~4?xazV;;Rt`k*KENy5QR%<}mrQChU9DM8CRlEpLK
zuxBxA6w89jCiFe5srWcg<iBxKZ1_)eW%RJNWL4eqr{6LldW}2!(F5MWGmcOJPiSJi
zhxwkWd3QLo-o+Xu0XU`<FFS!83gO40dT$DNigT&g_-g4SbO4E2U=!;%w3?h0jf?-(
zkA8JF-!uytx-lW>+o760V{RA@$Mb=@U=ELanjCn%GskDu7H#f9qtEi(q>MckIpm4&
z)9=(oXxcO_SySDOZE5$j*2D!fsice<{JX7UwYt$dQ1X3?nj>RzQFAZOFPIFe<*ri<
z3ry5fid8q=?%9uE8bKn!QqE;L`BgY&J(`%YlGOKI`HT1?r|CVY$Nun4By}!ws?m>f
zB&kB5jKP7GopklPt8@9_?Mm@&hAk*3q1R@ZgY$!WO_-^$`E8n)(%+dzG6fxprO;2Z
zvte5lnZH(QWP?4b=p!fgk!sZ~w8nNK?5*6X>{Jh?-iME1>;Yzmfv%h+$B4!=JKHpR
zr9`3zN8=t00PJ(*qM_`s-8I`m^-BYyKlP@e0g;D^)hnxy>2_XX7`}bfu81}uqaGuC
ztYkG*t@hl8bLb`9><Qb4j8h-ei#-=jFGv4G&eW`hNFX1UQ4SL%po;z81}_^7ZNl?)
zUBIShVJVm3gXcZVPmVOpvCd$7Z}0~Vn{kvQJ`*$fro^3oJ1=;)iEUMF-K_wfiJuB^
zJ0e>QG+yK#ZTfobd%{0IsSAVx5k1;-CCe>XrOUPTJ7fhhoMgE0`+~+Fu-U6<9x)2W
z^ykQM^>6x*-pHcIrRVWEszcz;<5<fJ?n@CYc*GE!wDss&Mqn$TylCG6ss34P!%1iA
z&6kE1`zwaiPD+UmEMppe{+}Evn_6*`-qc?i&v-<pyWbW;iVBMsIeQh^0d|P2EE_26
zO$m-uQb*MBSRMaHnr0AB>%82cvV2?{KtA;tkjF5(Ey!%u4PJ|7PdGM*0T)fFg(t=H
zGk&2@kNUye6m#ds!`1$ncHjP#TQvAEu@rD#IcezAFTxR`40@H?v;jhXF|jBP%)_a8
z1qEH-c~GmTx^E2qH^Qg#^f%oEIX?qtFP)FKu$O9v6rOeph)=MmWjin{rh*R@-0cVR
z8v8vRt0M?_r&u91LT;C5KnZ?bL~uI#>H-n?rG05fV^I}@qvFcw3qM@wnrEu}cM^V0
zdar!<gdfhmLt_;k%=#Dy<5+IHU02|aOXtn>@7im8n_a5wFjgYXgF5{Fp-?(+euW64
z5H=q+xg7peww`I-S-VO%MgCHp%jE87vAOcYiYCkrr<ZbYI|~TGK7!4fBlpJL>A8&Q
zN$8xAXjB#Gmr-0pVU;(y@kt2I>3ZVF3tO0ATOXtWSyn{983NdzA)aKS;i2E~)`g{3
zU-PcEe;Ic0X#t__2qGE_uOE*u_im^nR_2gY{6e>5-e#m>sQ}Av&5T)F`Ot+p6;R^s
z0tHB5Zd;`G!O|gWuLR^H|5KRx1-Smzy91&Icng~(LC`Y{GXJU?_-YgwN^73M|J~z;
z$;|bZSlV9eD`VT(N|&+7wdTC0ZkN0&FFUkK1;F~uT7KKfObK}#P4@H5D|!-nIuv~d
z$M?;ukfzrk8sXMR8oS;?^&?6hrKt9$`M~u$;V$*Gi9@T;XYf0Bo2@pM2?naACYu>3
z@|7po`Ae+QlS;oKLe7Q%vlg5fGkLu=9|J*%`a+-PtdWSw;9;(dg*Q*79nc0^VSd{#
z+$Sm_g=5@y+?1w<Dj~Usp?8?&HEl;{2qDoy<H*Q2Q0kS(OQg<R1LWSa%-YJ&CHmf;
zkq*LK#23uNJ)xoFApvdM-To`i)o~1t;ttF%%Dk~k>r)))ENI7IZh5yy(?`(tgo;D6
z-U%b4P%-$ccU|LQ>4KkSS*Ay9_r8Jm_}oTiF<}C9otJt-38^Ytql&?JKfgVaN)c%d
zZ7d>`9aM53Z_@NbAnH?I#2&~2ouWm~Eu)NN*|x^MzrX%Vb`&vQe%~WfaF0W?SPVQ^
zykk7<g>Uz1$0f3M(qsxfDh-Da-Et0O?*R9_w(OQ-^?=38?6TI=rXN7b3NPAEj$|;`
zJo#2xa)uKgNvwL_kr8mG6OLGQa#OMb?IBHQo0+9;KTGcalg7}Q8z1&RocCNi>%7#?
zKpouDJ3HTSMGhRzcIuvAU0?_*J|iCK>*#4wcI<gnHjnfrSb3uu^*I#S%KCw=@GDVX
z*n>ZwD~Q?x1(k|cA4h2Jn+x(BXMO+F;nc6%GRNxSIH9~%Ejcm^;uXVsoIUbQ$8h(e
z>KTI|Y7EVLEy3`-D9DLCC_$<iTgUmdCQWekF_J2wRknxL6_%`P!UF}hQN}CZyjlb8
zeBJYwzx_wl=q(7|s)8S2KDvnX0~uxAK`9&8_Le_rroNWdTKGmImHTn{(@AygGx6zn
z*jYPvWSgS(-uGbV)q7NAreyJQLC%k*g)Rh*ruG>jG>ayAVd`rCPv<C_V$xREXQpr_
GrvCx0vqe_`

diff --git a/packages/inv_checkpoint_updates b/packages/inv_checkpoint_updates
index 4849056..46e0f55 100644
--- a/packages/inv_checkpoint_updates
+++ b/packages/inv_checkpoint_updates
@@ -5,11 +5,10 @@
                 '- 2021-02-08: initial release\n',
  'download_url': 'https://thl-cmk.hopto.org',
  'files': {'agent_based': ['inv_checkpoint_updates.py'],
-           'web': ['plugins/views/inv_checkpoint_updates.py']},
+           'gui': ['views/inv_checkpoint_updates.py']},
  'name': 'inv_checkpoint_updates',
- 'num_files': 2,
  'title': 'Check Point appliance avilable updates inventory plugin',
- 'version': '20210208.v.0.1',
- 'version.min_required': '2.0.0',
- 'version.packaged': '2021.09.20',
+ 'version': '0.2.1-20230423',
+ 'version.min_required': '2.1.0b1',
+ 'version.packaged': '2.1.0p21',
  'version.usable_until': None}
\ No newline at end of file
-- 
GitLab