From caf7f70821b14cec6b97c37615da080dc0e10c5c Mon Sep 17 00:00:00 2001 From: "Th.L" <thl-cmk@outlook.com> Date: Thu, 18 Mar 2021 10:12:10 +0100 Subject: [PATCH] update project --- agent_based/checkpoint_inv_updates.py | 156 ------------------------ inv_checkpoint_updates.mkp | Bin 2693 -> 52 bytes web/plugins/views/checkpoint_updates.py | 32 ----- 3 files changed, 188 deletions(-) delete mode 100644 agent_based/checkpoint_inv_updates.py delete mode 100644 web/plugins/views/checkpoint_updates.py diff --git a/agent_based/checkpoint_inv_updates.py b/agent_based/checkpoint_inv_updates.py deleted file mode 100644 index 631aa18..0000000 --- a/agent_based/checkpoint_inv_updates.py +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# Author: thl-cmk[at]outlook[dot]com / thl-cmk.hopto.org -# -# 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 -# -# sample string_table -# [ -# [ -# ['Check_Point_SmartConsole_R80_40_jumbo_HF_B411_Win.tgz', 'HFA', 'Installed'], -# ['Check_Point_R80_40_JUMBO_HF_Bundle_T78_sk165456_FULL.tgz', 'Wrapper', 'Installed'], -# ['Check_Point_CPinfo_Bundle_R80_40_T53.tgz', 'HFA', 'Installed'] -# ], -# [ -# ['Check_Point_SmartConsole_R80_40_jumbo_HF_B411_Win.tgz', 'R80.40 SmartConsole Build 411', 'capability', 'Installed', '2020-09-30T00:00:00Z', 'Recommended', '2020-10-12T15:19:51Z'], -# ['Check_Point_R80_40_JUMBO_HF_Bundle_T78_sk165456_FULL.tgz', 'R80.40 Jumbo Hotfix Accumulator General Availability (Take 78)', 'jumbo', 'Installed', '2020-08-24T00:00:00Z', 'Recommended', '2020-10-12T15:36:58Z'], -# ['Check_Point_CPinfo_Bundle_R80_40_T53.tgz', 'Check Point CPinfo build 202 for R80.40', 'capability', 'Installed', '2020-01-26T00:00:00Z', 'Recommended', '2020-10-12T15:19:16Z'], -# ['Check_Point_SmartConsole_R80_40_jumbo_HF_B410_Win.tgz', 'Check Point SmartConsole R80.40 Jumbo Hotfix B410', 'capability', 'Available for Install', '2020-08-24T00:00:00Z', 'Not Recommended', '2020-09-08T16:33:07Z'], -# ['Check_Point_R80_40_JUMBO_HF_Bundle_T77_sk165456_FULL.tgz', 'Check_Point_R80_40_JUMBO_HF_Bundle_T77_sk165456_FULL.tgz', 'jumbo', 'Installed as part of', '1970-01-01T00:00:00Z', 'Not Recommended', '2020-09-07T19:06:50Z'], -# ['Check_Point_R81_T392_Fresh_Install_and_Upgrade.tgz', 'R81 Gaia Fresh Install and upgrade', 'major', 'Available for Download', '2020-10-22T00:00:00Z', 'Not Recommended', '1970-01-01T00:00:00Z'], -# ['Blink_image_1.1_Check_Point_R81_T392_SecurityManagement.tgz', '<b>[Latest] R81 Security Management for appliances </b>', 'major', 'Available for Download', '2020-10-22T00:00:00Z', 'Not Recommended', '1970-01-01T00:00:00Z'], -# ['Blink_image_1.1_Check_Point_R80.40_T294_JHF_T78_SecurityManagement.tgz', '<b>[Latest] R80.40 Security Management + JHF T78 for Appliances and Open Servers</b>', 'major', 'Available for Download', '2020-08-24T00:00:00Z', 'Not Recommended', '1970-01-01T00:00:00Z'], -# ['Check_Point_R80.40_T294_Fresh_Install_and_Upgrade.tgz', 'Check Point R80.40 Gaia Fresh Install and upgrade', 'major', 'Available for Download', '2020-01-27T00:00:00Z', 'Not Recommended', '1970-01-01T00:00:00Z'] -# ], -# ] -# - -from typing import List, NamedTuple - -from .agent_based_api.v1.type_defs import ( - StringTable, - InventoryResult, -) -from .agent_based_api.v1 import ( - register, - SNMPTree, - TableRow, - startswith, - all_of, - any_of, - equals, -) - - -class CheckpointUpdatesRecommended(NamedTuple): - name: str - type: str - status: list - - -class CheckpointUpdatesAvailable(NamedTuple): - filename: str - description: str - type: str - status: str - availablesince: str - recommended: str - installedat: str - - -class CheckpointUpdates(NamedTuple): - updatesrecommended: list - updatesavailable: list - - -def parse_checkpoint_updates(string_table: List[StringTable]) -> CheckpointUpdates: - section = CheckpointUpdates - section.updatesrecommended = string_table[0] - section.updatesavailable = string_table[1] - return section - - -def inventory_checkpoint_updates(section: CheckpointUpdates) -> InventoryResult: - path = ['software', 'check_point', 'updates'] - - for update in section.updatesrecommended: - update = CheckpointUpdatesRecommended(*update) - yield TableRow( - path=path, - key_columns={'file_name': update.name}, - inventory_columns={ - 'type': update.type, - 'status': update.status, - 'recommended': 'Recommended', - }, - ) - - for update in section.updatesavailable: - update = CheckpointUpdatesAvailable(*update) - - if not 'installed' in update.status.lower(): - installedat = 'N/A' - else: - installedat = update.installedat.replace('T', ' ').replace('Z', '') - - yield TableRow( - path=path, - key_columns={'file_name': update.filename}, - inventory_columns={ - 'description': update.description, - 'type': update.type, - 'status': update.status, - 'recommended': update.recommended, - 'available_since': update.availablesince[:10], - 'installed_at': installedat, - }, - ) - - -register.snmp_section( - name='checkpoint_inv_updates', - parse_function=parse_checkpoint_updates, - fetch=[ - SNMPTree( - base='.1.3.6.1.4.1.2620.1.6.20.8.1', # CHECKPOINT-MIB::updatesRecommendedEntry - oids=[ - '2', # updatesRecommendedName - '3', # updatesRecommendedType - '4', # updatesRecommendedStatus - ] - ), - SNMPTree( - base='.1.3.6.1.4.1.2620.1.6.20.10.1', # CHECKPOINT-MIB::availableUpdates - oids=[ - '2', # filename - '3', # description - '4', # type - '5', # status - '6', # available_since - '7', # recommended - '8', # installed_at - ] - ), - ], - detect=any_of( - startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'), - all_of( - equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'), - equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'), - ) - ) -) - -register.inventory_plugin( - name='checkpoint_inv_updates', - inventory_function=inventory_checkpoint_updates, -) diff --git a/inv_checkpoint_updates.mkp b/inv_checkpoint_updates.mkp index 035192c073cc5bbf097a247db2fc43b60c17faa3..ac8b39ac43fa359887a463409326ed94445b7157 100644 GIT binary patch delta 14 VcmZn_HDQ<U=HSSX44%lY3ji0|11SIi delta 2676 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 Vv*Z6FExM1z=5xt_gDr-Q?SI!7RgC}u diff --git a/web/plugins/views/checkpoint_updates.py b/web/plugins/views/checkpoint_updates.py deleted file mode 100644 index 8e5eb6f..0000000 --- a/web/plugins/views/checkpoint_updates.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import cmk.gui.utils -from cmk.gui.plugins.views import ( - inventory_displayhints,) -from cmk.gui.i18n import _ - -inventory_displayhints.update({ - '.software.check_point.updates:': { - 'title': _('Updates'), - 'keyorder': [ - 'file_name', - 'type', - 'status', - 'recommended', - 'available_since', - 'installed_at', - 'description' - ], - 'view': 'invcheckpointupdates_of_host', - }, - }) - -from cmk.gui.plugins.views.inventory import declare_invtable_view - -declare_invtable_view( - 'invcheckpointupdates', - '.software.check_point.updates:', - _('Check Point updates'), - _('Check Point updates'), -) -- GitLab