From 64241dbdf3593456b9b32963c588e48f36d73c48 Mon Sep 17 00:00:00 2001 From: Martin22 Date: Mon, 9 Sep 2024 13:12:42 +0200 Subject: [PATCH] Extension of support for IMCO LS/PS backup power sources. (#16377) * Modification of the MIB name and extension to support all LS and PS backup power sources, including the addition of hardware, firmware, and serial number. * Fix os name --- .../discovery/imcopower-ls110.yaml | 6 +- includes/definitions/imcopower-ls110.yaml | 2 +- mibs/imco/{IMCO-LS110-MIB => IMCO-LSPS-MIB} | 2 +- tests/data/imcopower-ls110.json | 449 ++++++++++++++++++ tests/snmpsim/imcopower-ls110.snmprec | 4 + 5 files changed, 460 insertions(+), 3 deletions(-) rename mibs/imco/{IMCO-LS110-MIB => IMCO-LSPS-MIB} (99%) create mode 100644 tests/data/imcopower-ls110.json diff --git a/includes/definitions/discovery/imcopower-ls110.yaml b/includes/definitions/discovery/imcopower-ls110.yaml index 72e777a056..85d618a4e1 100644 --- a/includes/definitions/discovery/imcopower-ls110.yaml +++ b/includes/definitions/discovery/imcopower-ls110.yaml @@ -1,5 +1,9 @@ -mib: IMCO-LS110-MIB +mib: IMCO-LSPS-MIB modules: + os: + hardware: IMCO-LSPS-MIB::sdsModel.0 + serial: IMCO-LSPS-MIB::sdsSerialNumber.0 + version: IMCO-LSPS-MIB::sdsSoftware.0 sensors: temperature: data: diff --git a/includes/definitions/imcopower-ls110.yaml b/includes/definitions/imcopower-ls110.yaml index dc85460852..dc8232a698 100644 --- a/includes/definitions/imcopower-ls110.yaml +++ b/includes/definitions/imcopower-ls110.yaml @@ -1,5 +1,5 @@ os: imcopower-ls110 -text: 'Imco Power LS110' +text: 'Imco Power LS/PS' type: power icon: imco group: IMCO POWER diff --git a/mibs/imco/IMCO-LS110-MIB b/mibs/imco/IMCO-LSPS-MIB similarity index 99% rename from mibs/imco/IMCO-LS110-MIB rename to mibs/imco/IMCO-LSPS-MIB index 0961e2ff82..13b8579d22 100644 --- a/mibs/imco/IMCO-LS110-MIB +++ b/mibs/imco/IMCO-LSPS-MIB @@ -1,4 +1,4 @@ -IMCO-LS110-MIB DEFINITIONS ::= BEGIN +IMCO-LSPS-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, diff --git a/tests/data/imcopower-ls110.json b/tests/data/imcopower-ls110.json new file mode 100644 index 0000000000..ba1f9ea5c4 --- /dev/null +++ b/tests/data/imcopower-ls110.json @@ -0,0 +1,449 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.33283.1.30", + "sysDescr": "SDS_BIG_STSW www.AN-D.cz", + "sysContact": "", + "version": "1.3.4", + "hardware": "LS130.HS 24481004R", + "features": null, + "location": "", + "os": "imcopower-ls110", + "type": "power", + "serial": "1806527724", + "icon": "imco.png" + } + ] + }, + "poller": "matches discovery" + }, + "ports": { + "discovery": { + "ports": [ + { + "port_descr_type": null, + "port_descr_descr": null, + "port_descr_circuit": null, + "port_descr_speed": null, + "port_descr_notes": null, + "ifDescr": "AN-D 100Mbit ETH", + "ifName": "AN-D 100Mbit ETH", + "portName": null, + "ifIndex": 1, + "ifSpeed": null, + "ifSpeed_prev": null, + "ifConnectorPresent": null, + "ifOperStatus": "up", + "ifOperStatus_prev": null, + "ifAdminStatus": null, + "ifAdminStatus_prev": null, + "ifDuplex": null, + "ifMtu": null, + "ifType": "ethernetCsmacd", + "ifAlias": "AN-D 100Mbit ETH", + "ifPhysAddress": null, + "ifLastChange": 0, + "ifVlan": null, + "ifTrunk": null, + "ignore": 0, + "disabled": 0, + "deleted": 0, + "pagpOperationMode": null, + "pagpPortState": null, + "pagpPartnerDeviceId": null, + "pagpPartnerLearnMethod": null, + "pagpPartnerIfIndex": null, + "pagpPartnerGroupIfIndex": null, + "pagpPartnerDeviceName": null, + "pagpEthcOperationMode": null, + "pagpDeviceId": null, + "pagpGroupIfIndex": null, + "ifInUcastPkts": null, + "ifInUcastPkts_prev": null, + "ifInUcastPkts_delta": null, + "ifInUcastPkts_rate": null, + "ifOutUcastPkts": null, + "ifOutUcastPkts_prev": null, + "ifOutUcastPkts_delta": null, + "ifOutUcastPkts_rate": null, + "ifInErrors": null, + "ifInErrors_prev": null, + "ifInErrors_delta": null, + "ifInErrors_rate": null, + "ifOutErrors": null, + "ifOutErrors_prev": null, + "ifOutErrors_delta": null, + "ifOutErrors_rate": null, + "ifInOctets": null, + "ifInOctets_prev": null, + "ifInOctets_delta": null, + "ifInOctets_rate": null, + "ifOutOctets": null, + "ifOutOctets_prev": null, + "ifOutOctets_delta": null, + "ifOutOctets_rate": null, + "poll_prev": null, + "ifInNUcastPkts": null, + "ifInNUcastPkts_prev": null, + "ifInNUcastPkts_delta": null, + "ifInNUcastPkts_rate": null, + "ifOutNUcastPkts": null, + "ifOutNUcastPkts_prev": null, + "ifOutNUcastPkts_delta": null, + "ifOutNUcastPkts_rate": null, + "ifInDiscards": null, + "ifInDiscards_prev": null, + "ifInDiscards_delta": null, + "ifInDiscards_rate": null, + "ifOutDiscards": null, + "ifOutDiscards_prev": null, + "ifOutDiscards_delta": null, + "ifOutDiscards_rate": null, + "ifInUnknownProtos": null, + "ifInUnknownProtos_prev": null, + "ifInUnknownProtos_delta": null, + "ifInUnknownProtos_rate": null, + "ifInBroadcastPkts": null, + "ifInBroadcastPkts_prev": null, + "ifInBroadcastPkts_delta": null, + "ifInBroadcastPkts_rate": null, + "ifOutBroadcastPkts": null, + "ifOutBroadcastPkts_prev": null, + "ifOutBroadcastPkts_delta": null, + "ifOutBroadcastPkts_rate": null, + "ifInMulticastPkts": null, + "ifInMulticastPkts_prev": null, + "ifInMulticastPkts_delta": null, + "ifInMulticastPkts_rate": null, + "ifOutMulticastPkts": null, + "ifOutMulticastPkts_prev": null, + "ifOutMulticastPkts_delta": null, + "ifOutMulticastPkts_rate": null + } + ] + }, + "poller": { + "ports": [ + { + "port_descr_type": null, + "port_descr_descr": null, + "port_descr_circuit": null, + "port_descr_speed": null, + "port_descr_notes": null, + "ifDescr": "AN-D 100Mbit ETH", + "ifName": "AN-D 100Mbit ETH", + "portName": null, + "ifIndex": 1, + "ifSpeed": 100000000, + "ifSpeed_prev": null, + "ifConnectorPresent": null, + "ifOperStatus": "up", + "ifOperStatus_prev": "up", + "ifAdminStatus": "up", + "ifAdminStatus_prev": null, + "ifDuplex": null, + "ifMtu": 1500, + "ifType": "ethernetCsmacd", + "ifAlias": "AN-D 100Mbit ETH", + "ifPhysAddress": "0200b10006cf", + "ifLastChange": 0, + "ifVlan": null, + "ifTrunk": null, + "ignore": 0, + "disabled": 0, + "deleted": 0, + "pagpOperationMode": null, + "pagpPortState": null, + "pagpPartnerDeviceId": null, + "pagpPartnerLearnMethod": null, + "pagpPartnerIfIndex": null, + "pagpPartnerGroupIfIndex": null, + "pagpPartnerDeviceName": null, + "pagpEthcOperationMode": null, + "pagpDeviceId": null, + "pagpGroupIfIndex": null, + "ifInUcastPkts": 4252031, + "ifInUcastPkts_prev": 0, + "ifInUcastPkts_delta": null, + "ifInUcastPkts_rate": null, + "ifOutUcastPkts": 3038968, + "ifOutUcastPkts_prev": 0, + "ifOutUcastPkts_delta": null, + "ifOutUcastPkts_rate": null, + "ifInErrors": 0, + "ifInErrors_prev": 0, + "ifInErrors_delta": null, + "ifInErrors_rate": null, + "ifOutErrors": 0, + "ifOutErrors_prev": 0, + "ifOutErrors_delta": null, + "ifOutErrors_rate": null, + "ifInOctets": 426270088, + "ifInOctets_prev": 0, + "ifInOctets_delta": null, + "ifInOctets_rate": null, + "ifOutOctets": 347650889, + "ifOutOctets_prev": 0, + "ifOutOctets_delta": null, + "ifOutOctets_rate": null, + "poll_prev": null, + "ifInNUcastPkts": 40316, + "ifInNUcastPkts_prev": 0, + "ifInNUcastPkts_delta": null, + "ifInNUcastPkts_rate": null, + "ifOutNUcastPkts": 154, + "ifOutNUcastPkts_prev": 0, + "ifOutNUcastPkts_delta": null, + "ifOutNUcastPkts_rate": null, + "ifInDiscards": 40199, + "ifInDiscards_prev": 0, + "ifInDiscards_delta": null, + "ifInDiscards_rate": null, + "ifOutDiscards": 0, + "ifOutDiscards_prev": 0, + "ifOutDiscards_delta": null, + "ifOutDiscards_rate": null, + "ifInUnknownProtos": 0, + "ifInUnknownProtos_prev": 0, + "ifInUnknownProtos_delta": null, + "ifInUnknownProtos_rate": null, + "ifInBroadcastPkts": 0, + "ifInBroadcastPkts_prev": 0, + "ifInBroadcastPkts_delta": null, + "ifInBroadcastPkts_rate": null, + "ifOutBroadcastPkts": 0, + "ifOutBroadcastPkts_prev": 0, + "ifOutBroadcastPkts_delta": null, + "ifOutBroadcastPkts_rate": null, + "ifInMulticastPkts": 0, + "ifInMulticastPkts_prev": 0, + "ifInMulticastPkts_delta": null, + "ifInMulticastPkts_rate": null, + "ifOutMulticastPkts": 0, + "ifOutMulticastPkts_prev": 0, + "ifOutMulticastPkts_delta": null, + "ifOutMulticastPkts_rate": null + } + ] + } + }, + "processors": { + "discovery": { + "processors": [ + { + "entPhysicalIndex": 0, + "hrDeviceIndex": 1, + "processor_oid": ".1.3.6.1.2.1.25.3.3.1.2.1", + "processor_index": "1", + "processor_type": "hr", + "processor_usage": 1, + "processor_descr": "ARM", + "processor_precision": 1, + "processor_perc_warn": 75 + } + ] + }, + "poller": "matches discovery" + }, + "sensors": { + "discovery": { + "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "charge", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.7.7.0", + "sensor_index": "sdsBatteryCapacity.{{index}}", + "sensor_type": "imcopower-ls110", + "sensor_descr": "Battery Charge", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 100, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "current", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.7.6.0", + "sensor_index": "sdsOutputCurrent.0", + "sensor_type": "imcopower-ls110", + "sensor_descr": "Current", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 4.6, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "load", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.7.8.0", + "sensor_index": "sdsLoad.{{index}}", + "sensor_type": "imcopower-ls110", + "sensor_descr": "Load(VA)", + "group": null, + "sensor_divisor": 10, + "sensor_multiplier": 1, + "sensor_current": 45.5, + "sensor_limit": 80, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.2.3.0", + "sensor_index": "opto3.{{index}}", + "sensor_type": "opto3", + "sensor_descr": "Power state", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": "opto3" + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.5.1.3.0", + "sensor_index": "sdsTempSensValue.{{index}}", + "sensor_type": "imcopower-ls110", + "sensor_descr": "Temperature", + "group": null, + "sensor_divisor": 100, + "sensor_multiplier": 1, + "sensor_current": 30.33, + "sensor_limit": 50.33, + "sensor_limit_warn": null, + "sensor_limit_low": 20.33, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.7.4.0", + "sensor_index": "sdsOutputVoltage1.0", + "sensor_type": "imcopower-ls110", + "sensor_descr": "Voltage1", + "group": null, + "sensor_divisor": 100, + "sensor_multiplier": 1, + "sensor_current": 27.15, + "sensor_limit": 31.2225, + "sensor_limit_warn": null, + "sensor_limit_low": 23.0775, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "voltage", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.33283.1.30.7.5.0", + "sensor_index": "sdsOutputVoltage2.0", + "sensor_type": "imcopower-ls110", + "sensor_descr": "Voltage2", + "group": null, + "sensor_divisor": 100, + "sensor_multiplier": 1, + "sensor_current": -47.59, + "sensor_limit": -40.4515, + "sensor_limit_warn": null, + "sensor_limit_low": -54.7285, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "rrd_type": "GAUGE", + "state_name": null + } + ], + "state_indexes": [ + { + "state_name": "opto3", + "state_descr": "Online", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "opto3", + "state_descr": "Battery", + "state_draw_graph": 0, + "state_value": 2, + "state_generic_value": 2 + } + ] + }, + "poller": "matches discovery" + } +} diff --git a/tests/snmpsim/imcopower-ls110.snmprec b/tests/snmpsim/imcopower-ls110.snmprec index 5a4079aff7..cee37e680c 100644 --- a/tests/snmpsim/imcopower-ls110.snmprec +++ b/tests/snmpsim/imcopower-ls110.snmprec @@ -43,6 +43,7 @@ 1.3.6.1.2.1.25.3.2.1.1.1|2|1 1.3.6.1.2.1.25.3.2.1.2.1|6|1.3.6.1.2.1.25.3.1.3 1.3.6.1.2.1.25.3.2.1.3.1|4|CPU ARM +1.3.6.1.2.1.25.3.3.1.1.1|2|1 1.3.6.1.2.1.25.3.3.1.2.1|2|1 1.3.6.1.4.1.33283.1.30.2.3.0|2|0 1.3.6.1.4.1.33283.1.30.5.1.3.0|2|3033 @@ -51,3 +52,6 @@ 1.3.6.1.4.1.33283.1.30.7.6.0|2|46 1.3.6.1.4.1.33283.1.30.7.7.0|2|1000 1.3.6.1.4.1.33283.1.30.7.8.0|2|455 +1.3.6.1.4.1.33283.1.30.8.81.0|4|LS130.HS 24481004R +1.3.6.1.4.1.33283.1.30.8.83.0|4|1806527724 +1.3.6.1.4.1.33283.1.30.8.84.0|4|1.3.4