From d0bd245bba8237a35450bb27025a43c4b0931430 Mon Sep 17 00:00:00 2001 From: thl-cmk <thl-cmk@outlook.com> Date: Mon, 22 Feb 2021 20:14:51 +0100 Subject: [PATCH] update project --- agent_based/checkpoint_inv_base.py | 138 +++++++++++++++++++++++++++++ inv_checkpoint_base.mkp | Bin 2288 -> 2276 bytes packages/inv_checkpoint_base | 2 +- 3 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 agent_based/checkpoint_inv_base.py diff --git a/agent_based/checkpoint_inv_base.py b/agent_based/checkpoint_inv_base.py new file mode 100644 index 0000000..b74bd14 --- /dev/null +++ b/agent_based/checkpoint_inv_base.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# Author: thl-cmk[at]outlook[dot]com / thl-cmk.hopto.org +# +# Check Point base 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 +# 2021-02-22 : code cleanup +# +# sample string_table +# [ +# [ +# ['5M7C043', 'Smart-1 5150', 'CheckPoint', 'Smart-1', 'R80.40', '994000022', 'Gaia', '3', '10'] +# ], +# [ +# ['1959'] +# ], +# ] +# + +from typing import List, NamedTuple + +from .agent_based_api.v1.type_defs import ( + StringTable, + InventoryResult, +) +from .agent_based_api.v1 import ( + Attributes, + register, + SNMPTree, + startswith, + all_of, + any_of, + equals, +) + + +def parse_checkpoint_inv_base(string_table: List[StringTable]) -> List: + class CheckpointInvBaseInfo(NamedTuple): + serialnumber: str + productname: str + manufacturer: str + series: str + version: str + build: str + osname: str + osmajorver: str + osminorver: str + + section = [] + baseinfo = CheckpointInvBaseInfo(*string_table[0][0]) + updateagentversion = string_table[1][0][0] + + invPath = ['hardware', 'system'] + + if not baseinfo.serialnumber == '': + section.append((invPath, 'serial', baseinfo.serialnumber)) + if not baseinfo.series == '': + section.append((invPath, 'appliance_series', baseinfo.series)) + if not baseinfo.manufacturer == '': + section.append((invPath, 'manufacturer', baseinfo.manufacturer)) + if not baseinfo.productname == '': + section.append((invPath, 'product_name', baseinfo.productname)) + + invPath = ['software', 'check_point', 'os_info'] + + if not baseinfo.version == '': + section.append((invPath, 'svn_version', baseinfo.version)) + if not baseinfo.build == '': + section.append((invPath, 'svn_build', baseinfo.build)) + if not baseinfo.osname == '': + section.append((invPath, 'os_name', baseinfo.osname)) + if not baseinfo.osmajorver == '' and not baseinfo.osminorver == '': + section.append((invPath, 'os_version', baseinfo.osmajorver + '.' + baseinfo.osminorver)) + if not updateagentversion == '': + section.append((invPath, 'deployment_agent_build', updateagentversion)) + + return section + + +def inventory_checkpoint_base(section: List) -> InventoryResult: + class invEntry(NamedTuple): + invPath: list + key: str + value: str + + for entry in section: + entry = invEntry(*entry) + yield Attributes( + path=entry.invPath, + inventory_attributes={entry.key: entry.value}) + + +register.snmp_section( + name='checkpoint_inv_base', + parse_function=parse_checkpoint_inv_base, + fetch=[ + SNMPTree( + base='.1.3.6.1.4.1.2620.1.6', # CHECKPOINT-MIB::svn + oids=[ + '16.3', # svnApplianceSerialNumber + '16.7', # svnApplianceProductName + '16.9', # svnApplianceManufacturer + '16.10', # svnApplianceSeries + '4.1', # svnVersion + '4.2', # svnBuild + '5.1', # osName + '5.2', # osMajorVer + '5.3', # osMinorVer + ] + ), + SNMPTree( + base='.1.3.6.1.4.1.2620.1.6.20', # CHECKPOINT-MIB::svnUpdatesInfo + oids=[ + '1', # svnUpdatesInfoBuild + ] + ), + ], + detect=any_of( + startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.2620'), # sysObjectID == CheckPoint + all_of( + equals('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.8072.3.2.10'), # sysObjectID == Linux + equals('.1.3.6.1.4.1.2620.1.6.1.0', 'SVN Foundation'), # CheckPoint software installed + ) + ) +) + +register.inventory_plugin( + name='checkpoint_inv_base', + inventory_function=inventory_checkpoint_base, +) \ No newline at end of file diff --git a/inv_checkpoint_base.mkp b/inv_checkpoint_base.mkp index 20dc6690b5c35e7394492bc968a322f68a4438f0..d82c8c554090a0e1d8604bacee9a94afc98f4efe 100644 GIT binary patch delta 2216 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 delta 2221 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 diff --git a/packages/inv_checkpoint_base b/packages/inv_checkpoint_base index 09079b2..99eaf06 100644 --- a/packages/inv_checkpoint_base +++ b/packages/inv_checkpoint_base @@ -6,7 +6,7 @@ '- 2021-02-08: initial release\n' '- 2021-02-22: code cleanup\n', 'download_url': 'https://thl-cmk.hopto.org', - 'files': {'lib': ['python3/cmk/base/plugins/agent_based/checkpoint_inv_base.py'], + 'files': {'agent_based': ['checkpoint_inv_base.py'], 'web': ['plugins/views/checkpoint_base.py']}, 'name': 'inv_checkpoint_base', 'num_files': 2, -- GitLab