fix: do not discover non-existent frequency sensors (#6199)

This commit is contained in:
Tony Murray
2017-03-15 04:15:27 -05:00
committed by Neil Lathwood
parent 004556dc01
commit 31dfe62965
2 changed files with 17 additions and 13 deletions

View File

@@ -80,7 +80,7 @@ if ($enabled == 1) {
// sanitize sysDescr // sanitize sysDescr
$device_info = array_map(function ($entry) { $device_info = array_map(function ($entry) {
// remove hostnames from linux and macosx // remove hostnames from linux and macosx
$entry['sysDescr'] = preg_replace_callback('/^(Linux |Darwin )[A-Za-z0-9._\-]+ ([0-9.]{5,9})/', function ($matches) { $entry['sysDescr'] = preg_replace_callback('/^(Linux |Darwin |FreeBSD )[A-Za-z0-9._\-]+ ([0-9.]{3,9})/', function ($matches) {
return $matches[1] . 'hostname ' .$matches[2]; return $matches[1] . 'hostname ' .$matches[2];
}, $entry['sysDescr']); }, $entry['sysDescr']);

View File

@@ -21,19 +21,23 @@ for ($i = 1; $i <= $numPhase; $i++) {
} }
$freq_oid = '.1.3.6.1.2.1.33.1.4.2.0'; $freq_oid = '.1.3.6.1.2.1.33.1.4.2.0';
$descr = 'Output'; $current_freq = snmp_get($device, $freq_oid, '-Oqv');
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid); if (is_numeric($current_freq)) {
$current = (snmp_get($device, $freq_oid, '-Oqv') / $divisor); $descr = 'Output';
$type = 'rfc1628'; $divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid);
$type = 'rfc1628';
$index = '4.2.0';
$index = '4.2.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, 1, null, null, null, null, $current_freq / $divisor);
discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); }
$freq_oid = '.1.3.6.1.2.1.33.1.5.1.0'; $freq_oid = '.1.3.6.1.2.1.33.1.5.1.0';
$descr = 'Bypass'; $current_freq = snmp_get($device, $freq_oid, '-Oqv');
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid); if (is_numeric($current_freq)) {
$current = (snmp_get($device, $freq_oid, '-Oqv') / $divisor); $descr = 'Bypass';
$type = 'rfc1628'; $divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid);
$type = 'rfc1628';
$index = '5.1.0';
$index = '5.1.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, 1, null, null, null, null, $current_freq / $divisor);
discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); }