Collection of CheckMK checks (see https://checkmk.com/). All checks and plugins are provided as is. Absolutely no warranty. Send any comments to thl-cmk[at]outlook[dot]com

Skip to content
Snippets Groups Projects
Commit 5803e497 authored by thl-cmk's avatar thl-cmk :flag_na:
Browse files

update project

parent f748846b
No related branches found
No related tags found
No related merge requests found
[PACKAGE]: ../../raw/master/mkp/inv_opengear_base-0.0.3-20240510.mkp "inv_opengear_base-0.0.3-20240510.mkp"
# Hardware inventory
This plugin adds the serial number, model, manufacturer and firmware version of opengear console servers to the inventory.
......
File moved
File moved
File deleted
File added
......@@ -28,16 +28,16 @@
# ]
#
from typing import List, Optional
from typing import List
from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
StringTable,
InventoryResult,
StringTable,
)
from cmk.base.plugins.agent_based.agent_based_api.v1 import (
Attributes,
register,
SNMPTree,
register,
startswith,
)
......@@ -78,23 +78,30 @@ _opengear_models = {
}
def parse_inv_opengear_base(string_table: List[StringTable]) -> Optional[List]:
inv_data, ogSerialPortCTS, sysObjectID = string_table
def parse_inv_opengear_base(string_table: List[StringTable]) -> List | None:
try:
inv_data, ogSerialPortCTS, sysObjectID = string_table
except ValueError:
return
try:
firmware_version, serial_number = inv_data[0]
except IndexError:
except (IndexError, ValueError):
return
try:
sysObjectID = sysObjectID[0][0]
except (IndexError, ValueError):
return
if serial_number == 'N/A':
serial_number = ''
number_of_lines = len(ogSerialPortCTS)
sysObjectID = sysObjectID[0][0]
model_name = _opengear_models.get((sysObjectID, number_of_lines), '')
section = []
invPath = ['hardware', 'system']
inv_path = ['hardware', 'system']
for key, value in [
('serial', serial_number),
......@@ -102,16 +109,16 @@ def parse_inv_opengear_base(string_table: List[StringTable]) -> Optional[List]:
('model', model_name),
]:
if not value == '':
section.append((invPath, key, value))
section.append((inv_path, key, value))
invPath = ['software', 'firmware']
inv_path = ['software', 'firmware']
for key, value in [
('vendor', 'opengear'),
('version', firmware_version.rstrip(' ()')),
]:
if not value == '':
section.append((invPath, key, value))
section.append((inv_path, key, value))
return section
......@@ -137,7 +144,7 @@ register.snmp_section(
SNMPTree(
base='.1.3.6.1.4.1.25049.17.2.1', # OG-STATUSv2-MIB:orgSerialÜprtEntry
oids=[
'19', # ogSerialPortCTS. ogSerialPortIndex don't exist so we use CTS to get the number of lines
'19', # ogSerialPortCTS. ogSerialPortIndex don't exist, so we use CTS to get the number of lines
]
),
SNMPTree(
......@@ -147,12 +154,11 @@ register.snmp_section(
]
),
],
detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049'), # sysObjectID == opengear
detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049'),
)
def parse_inv_opengear_base_om(string_table: StringTable) -> Optional[List]:
def parse_inv_opengear_base_om(string_table: StringTable) -> List | None:
try:
host_name, serial_number, firmware_version, vendor, model_name, number_of_lines = string_table[0]
except IndexError:
......@@ -160,7 +166,7 @@ def parse_inv_opengear_base_om(string_table: StringTable) -> Optional[List]:
section = []
invPath = ['hardware', 'system']
inv_path = ['hardware', 'system']
for key, value in [
('serial', serial_number),
......@@ -169,16 +175,16 @@ def parse_inv_opengear_base_om(string_table: StringTable) -> Optional[List]:
('host_name', host_name),
]:
if not value == '':
section.append((invPath, key, value))
section.append((inv_path, key, value))
invPath = ['software', 'firmware']
inv_path = ['software', 'firmware']
for key, value in [
('vendor', 'opengear'),
('version', firmware_version.rstrip(' ()')),
]:
if not value == '':
section.append((invPath, key, value))
section.append((inv_path, key, value))
return section
......@@ -198,7 +204,7 @@ register.snmp_section(
'2.1', # ogOmSerialPortCount
]
),
detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049.1.101'), # sysObjectID == OG-PRODUCTS-MIB::ogOperationsManager
detect=startswith('.1.3.6.1.2.1.1.2.0', '.1.3.6.1.4.1.25049'),
)
register.inventory_plugin(
......
......@@ -14,7 +14,7 @@
'files': {'agent_based': ['inv_opengear_base.py']},
'name': 'inv_opengear_base',
'title': 'opengear base inventory',
'version': '0.0.2-20230614',
'version': '0.0.3-20240510',
'version.min_required': '2.0.0b1',
'version.packaged': '2.2.0p2',
'version.usable_until': '2.2.0b1'}
'version.packaged': '2.2.0p24',
'version.usable_until': '2.3.0b1'}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment