From 73d06758d036161d6567d56b734709728c022931 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Sun, 17 May 2015 16:42:09 +0200 Subject: [PATCH] Raritan PX iPDU inlet support --- includes/discovery/current/raritan.inc.php | 26 ++++++++++++++ .../discovery/frequencies/raritan.inc.php | 34 +++++++++++++++++++ includes/discovery/os/raritan.inc.php | 5 +++ includes/discovery/power/raritan.inc.php | 34 +++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 includes/discovery/frequencies/raritan.inc.php create mode 100644 includes/discovery/power/raritan.inc.php diff --git a/includes/discovery/current/raritan.inc.php b/includes/discovery/current/raritan.inc.php index b6e0701b4..c19b342a2 100644 --- a/includes/discovery/current/raritan.inc.php +++ b/includes/discovery/current/raritan.inc.php @@ -6,7 +6,33 @@ if ($device['os'] == 'raritan') { $divisor = "1000"; $outlet_divisor = $divisor; + $inlet_divisor = 10.0; $multiplier = "1"; + // Check Inlets + $inlet_oids = snmp_walk($device,"inletLabel","-Osqn","PDU2-MIB"); + $inlet_oids = trim($inlet_oids); + if ($inlet_oids) echo("PDU Inlet "); + foreach (explode("\n", $inlet_oids) as $inlet_data) + { + $inlet_data = trim($inlet_data); + if ($inlet_data) + { + list($inlet_oid,$inlet_descr) = explode(" ", $inlet_data,2); + $inlet_split_oid = explode('.', $inlet_oid); + $inlet_index = $inlet_split_oid[count($inlet_split_oid)-1]; + + $inletsuffix = "$inlet_index"; + $inlet_insert_index = $inlet_index; + + $inlet_oid = ".1.3.6.1.4.1.13742.6.5.2.3.1.4.1.$inletsuffix.1"; + $inlet_current = snmp_get($device, "measurementsInletSensorValue.1.$inletsuffix.1", "-Ovq","PDU2-MIB") / $inlet_divisor; + + if ($inlet_current >= 0) { + discover_sensor($valid['sensor'], 'current', $device, $inlet_oid, $inlet_insert_index, 'raritan', $inlet_descr, $inlet_divisor, $multiplier, NULL, NULL, NULL, NULL, $inlet_current); + } + } + } + ///////////////////////////////// # Check for per-outlet polling diff --git a/includes/discovery/frequencies/raritan.inc.php b/includes/discovery/frequencies/raritan.inc.php new file mode 100644 index 000000000..61bde4c05 --- /dev/null +++ b/includes/discovery/frequencies/raritan.inc.php @@ -0,0 +1,34 @@ += 0) { + discover_sensor($valid['sensor'], 'frequency', $device, $inlet_oid, $inlet_insert_index, 'raritan', $inlet_descr, $inlet_divisor, $multiplier, NULL, NULL, NULL, NULL, $inlet_frequency); + } + } + } +} + +?> diff --git a/includes/discovery/os/raritan.inc.php b/includes/discovery/os/raritan.inc.php index fd5ed258e..804d38023 100644 --- a/includes/discovery/os/raritan.inc.php +++ b/includes/discovery/os/raritan.inc.php @@ -5,6 +5,11 @@ if (!$os) if (strstr($sysDescr, "Raritan")) { $os = "raritan"; } } +if (!$os) +{ + if (strstr($sysDescr, "PX2")) { $os = "raritan"; } +} + ?> = 0) { + discover_sensor($valid['sensor'], 'power', $device, $inlet_oid, $inlet_insert_index, 'raritan', $inlet_descr, $inlet_divisor, $multiplier, NULL, NULL, NULL, NULL, $inlet_power); + } + } + } +} + +?>