From fcac1239fc1233153fa379658f2dd35f6271e667 Mon Sep 17 00:00:00 2001 From: d-k-7 <63383694+d-k-7@users.noreply.github.com> Date: Tue, 8 Jun 2021 18:38:23 -0400 Subject: [PATCH] Improved raritan pdu support (#12937) * return "Outlet " + index in event outlet description is empty * update tests to account for blank outlet description * add hardware, serial, and version detection for Raritan PDUs --- includes/definitions/discovery/raritan-pdu.yaml | 11 +++++++++++ .../discovery/sensors/current/raritan-pdu.inc.php | 5 ++++- includes/discovery/sensors/power/raritan-pdu.inc.php | 3 +++ tests/data/raritan-pdu.json | 8 ++++---- tests/snmpsim/raritan-pdu.snmprec | 2 +- 5 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 includes/definitions/discovery/raritan-pdu.yaml diff --git a/includes/definitions/discovery/raritan-pdu.yaml b/includes/definitions/discovery/raritan-pdu.yaml new file mode 100644 index 0000000000..ddf23c84ab --- /dev/null +++ b/includes/definitions/discovery/raritan-pdu.yaml @@ -0,0 +1,11 @@ +modules: + os: + hardware: + - .1.3.6.1.4.1.13742.6.3.2.1.1.3.1 + - .1.3.6.1.4.1.13742.4.1.1.12.0 + serial: + - .1.3.6.1.4.1.13742.6.3.2.1.1.4.1 + - .1.3.6.1.4.1.13742.4.1.1.2.0 + version: + - .1.3.6.1.4.1.13742.6.3.2.3.1.6.1.1.1 + - .1.3.6.1.4.1.13742.4.1.1.1.0 diff --git a/includes/discovery/sensors/current/raritan-pdu.inc.php b/includes/discovery/sensors/current/raritan-pdu.inc.php index 7260a74b53..acfbcbdc94 100644 --- a/includes/discovery/sensors/current/raritan-pdu.inc.php +++ b/includes/discovery/sensors/current/raritan-pdu.inc.php @@ -66,7 +66,10 @@ if ($outlet_oids) { $outletsuffix = "$outlet_index"; $outlet_insert_index = $outlet_index; $outlet_oid = ".1.3.6.1.4.1.13742.6.5.4.3.1.4.1.$outletsuffix.1"; - $outlet_descr = snmp_get($device, ".1.3.6.1.4.1.13742.6.3.5.3.1.3.1.$outletsuffix", '-Ovq'); + $outlet_descr = snmp_get($device, "outletName.1.$outletsuffix", '-Ovq', 'PDU2-MIB'); + if (! $outlet_descr) { + $outlet_descr = 'Outlet ' . $outletsuffix; + } $outlet_low_warn_limit = snmp_get($device, "outletSensorSignedLowerWarningThreshold.1.$outlet_index.rmsCurrent", '-Ovq', 'PDU2-MIB'); $outlet_low_limit = snmp_get($device, "outletSensorSignedLowerCriticalThreshold.1.$outlet_index.rmsCurrent", '-Ovq', 'PDU2-MIB'); $outlet_high_warn_limit = snmp_get($device, "outletSensorSignedUpperWarningThreshold.1.$outlet_index.rmsCurrent", '-Ovq', 'PDU2-MIB'); diff --git a/includes/discovery/sensors/power/raritan-pdu.inc.php b/includes/discovery/sensors/power/raritan-pdu.inc.php index 199b5ebeba..fb92658a71 100644 --- a/includes/discovery/sensors/power/raritan-pdu.inc.php +++ b/includes/discovery/sensors/power/raritan-pdu.inc.php @@ -62,6 +62,9 @@ if ($outlet_oids) { $outlet_insert_index = $outlet_index; $outlet_oid = ".1.3.6.1.4.1.13742.6.5.4.3.1.4.1.$outletsuffix.5"; $outlet_descr = snmp_get($device, "outletName.1.$outletsuffix", '-Ovq', 'PDU2-MIB'); + if (! $outlet_descr) { + $outlet_descr = 'Outlet ' . $outletsuffix; + } $outlet_divisor = pow(10, snmp_get($device, "outletSensorDecimalDigits.1.$outlet_index.activePower", '-Ovq', 'PDU2-MIB')); $outlet_power = (snmp_get($device, "measurementsOutletSensorValue.1.$outlet_index.activePower", '-Ovq', 'PDU2-MIB') / $outlet_divisor); if ($outlet_power >= 0) { diff --git a/tests/data/raritan-pdu.json b/tests/data/raritan-pdu.json index b25549648c..6e8729f8dc 100644 --- a/tests/data/raritan-pdu.json +++ b/tests/data/raritan-pdu.json @@ -30,7 +30,7 @@ "sensor_oid": ".1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.1", "sensor_index": "1", "sensor_type": "raritan", - "sensor_descr": "OUTLET1", + "sensor_descr": "Outlet 1", "group": null, "sensor_divisor": 1000, "sensor_multiplier": 1, @@ -390,7 +390,7 @@ "sensor_oid": ".1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.5", "sensor_index": "1", "sensor_type": "raritan", - "sensor_descr": "OUTLET1", + "sensor_descr": "Outlet 1", "group": null, "sensor_divisor": 1, "sensor_multiplier": 1, @@ -803,7 +803,7 @@ "sensor_oid": ".1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.1", "sensor_index": "1", "sensor_type": "raritan", - "sensor_descr": "OUTLET1", + "sensor_descr": "Outlet 1", "group": null, "sensor_divisor": 1000, "sensor_multiplier": 1, @@ -1163,7 +1163,7 @@ "sensor_oid": ".1.3.6.1.4.1.13742.6.5.4.3.1.4.1.1.5", "sensor_index": "1", "sensor_type": "raritan", - "sensor_descr": "OUTLET1", + "sensor_descr": "Outlet 1", "group": null, "sensor_divisor": 1, "sensor_multiplier": 1, diff --git a/tests/snmpsim/raritan-pdu.snmprec b/tests/snmpsim/raritan-pdu.snmprec index 9365a95ebf..8a0797d8c4 100644 --- a/tests/snmpsim/raritan-pdu.snmprec +++ b/tests/snmpsim/raritan-pdu.snmprec @@ -185,7 +185,7 @@ 1.3.6.1.4.1.13742.6.3.5.3.1.2.1.10|4|10 1.3.6.1.4.1.13742.6.3.5.3.1.2.1.11|4|11 1.3.6.1.4.1.13742.6.3.5.3.1.2.1.12|4|12 -1.3.6.1.4.1.13742.6.3.5.3.1.3.1.1|4|OUTLET1 +1.3.6.1.4.1.13742.6.3.5.3.1.3.1.1|4| 1.3.6.1.4.1.13742.6.3.5.3.1.3.1.2|4|OUTLET2 1.3.6.1.4.1.13742.6.3.5.3.1.3.1.3|4|OUTLET3 1.3.6.1.4.1.13742.6.3.5.3.1.3.1.4|4|OUTLET4