From 7600cc4f850a32fefb28bd05831b0fb33451b926 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Tue, 12 May 2015 11:56:18 +0200 Subject: [PATCH 1/6] Fixed apc powerbar phase limit discovery for AP7852 firmware: 2.7.3 --- includes/discovery/current/apc.inc.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 667b8f6da..184fa3e05 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -96,6 +96,17 @@ if ($device['os'] == "apc") $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); + if ($limit < 0 and $lowlimit < 0 and $warnlimit < 0){ + $limit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.4.".$index; #rPDULoadPhaseConfigOverloadThreshold + $lowlimit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.2.".$index; #rPDULoadPhaseConfigLoLoadThreshold + $warnlimit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.3.".$index; #rPDULoadPhaseConfigNearOverloadThreshold + + $limit = snmp_get($device, $limit_oid, "-Oqv", ""); + $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); + $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); + + echo "Phase "; + } discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, '10', '1', $lowlimit, NULL, $warnlimit, $limit, $current); } } From c1702d643e4de01b18ab912fc6852136be43d1bd Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Tue, 12 May 2015 22:53:01 +0200 Subject: [PATCH 2/6] Miner fixes --- includes/discovery/current/apc.inc.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 184fa3e05..499d913d4 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -96,7 +96,10 @@ if ($device['os'] == "apc") $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); - if ($limit < 0 and $lowlimit < 0 and $warnlimit < 0){ + if ($limit < 0 && $lowlimit < 0 && $warnlimit < 0){ + + echo "Phase "; + $limit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.4.".$index; #rPDULoadPhaseConfigOverloadThreshold $lowlimit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.2.".$index; #rPDULoadPhaseConfigLoLoadThreshold $warnlimit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.3.".$index; #rPDULoadPhaseConfigNearOverloadThreshold @@ -104,8 +107,6 @@ if ($device['os'] == "apc") $limit = snmp_get($device, $limit_oid, "-Oqv", ""); $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); - - echo "Phase "; } discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, '10', '1', $lowlimit, NULL, $warnlimit, $limit, $current); } From 37d3ff0f2a3f30efe79646f22b9a0718c0c5e680 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Tue, 12 May 2015 23:29:47 +0200 Subject: [PATCH 3/6] Clean the code changed the phase discovery --- includes/discovery/current/apc.inc.php | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 499d913d4..53329368d 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -4,7 +4,7 @@ if ($device['os'] == "apc") { # PDU - Phase - $oids = snmp_walk($device, "rPDUStatusPhaseIndex", "-OsqnU", "PowerNet-MIB"); + $oids = snmp_walk($device, "rPDULoadPhaseConfigIndex", "-OsqnU", "PowerNet-MIB"); if ($oids) { if ($debug) { echo($oids."\n"); } @@ -96,19 +96,8 @@ if ($device['os'] == "apc") $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); - if ($limit < 0 && $lowlimit < 0 && $warnlimit < 0){ - - echo "Phase "; - - $limit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.4.".$index; #rPDULoadPhaseConfigOverloadThreshold - $lowlimit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.2.".$index; #rPDULoadPhaseConfigLoLoadThreshold - $warnlimit_oid = "1.3.6.1.4.1.318.1.1.12.2.2.1.1.3.".$index; #rPDULoadPhaseConfigNearOverloadThreshold - - $limit = snmp_get($device, $limit_oid, "-Oqv", ""); - $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); - $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); - } - discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, '10', '1', $lowlimit, NULL, $warnlimit, $limit, $current); + if ($limit < 0 && $lowlimit < 0 && $warnlimit < 0) + discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, '10', '1', $lowlimit, NULL, $warnlimit, $limit, $current); } } From a5e8c36706070af3d6a69ae2b57bef8b936bb136 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Tue, 12 May 2015 23:34:01 +0200 Subject: [PATCH 4/6] Fix for other apc devices --- includes/discovery/current/apc.inc.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 53329368d..2f78deed9 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -4,7 +4,11 @@ if ($device['os'] == "apc") { # PDU - Phase - $oids = snmp_walk($device, "rPDULoadPhaseConfigIndex", "-OsqnU", "PowerNet-MIB"); + $oids = snmp_walk($device, "rPDUStatusPhaseIndex", "-OsqnU", "PowerNet-MIB"); + if (empty($oids)) { + $oids = snmp_walk($device, "rPDULoadPhaseConfigIndex", "-OsqnU", "PowerNet-MIB"); + } + if ($oids) { if ($debug) { echo($oids."\n"); } @@ -210,4 +214,4 @@ if ($device['os'] == "apc") } } -?> + From 2f53708d5a4c56ae31e2a340b65daab446c449df Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Tue, 12 May 2015 23:40:20 +0200 Subject: [PATCH 5/6] Bugfix --- includes/discovery/current/apc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 2f78deed9..07b4b629b 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -100,7 +100,7 @@ if ($device['os'] == "apc") $lowlimit = snmp_get($device, $lowlimit_oid, "-Oqv", ""); $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); - if ($limit < 0 && $lowlimit < 0 && $warnlimit < 0) + if ($limit != -1 && $lowlimit != -1 && $warnlimit != -1) discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, '10', '1', $lowlimit, NULL, $warnlimit, $limit, $current); } } From 33162e2e74faf1f7e3355d143500c70b8211d6b5 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Wed, 13 May 2015 00:02:05 +0200 Subject: [PATCH 6/6] Small fix --- includes/discovery/current/apc.inc.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 07b4b629b..e148fa3e7 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -101,7 +101,9 @@ if ($device['os'] == "apc") $warnlimit = snmp_get($device, $warnlimit_oid, "-Oqv", ""); if ($limit != -1 && $lowlimit != -1 && $warnlimit != -1) + { discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, '10', '1', $lowlimit, NULL, $warnlimit, $limit, $current); + } } }