Fixes for misc unset variables in polling (#13421)

Remove $attribs global
This commit is contained in:
Tony Murray
2021-10-25 14:35:18 -05:00
committed by GitHub
parent d23e75f967
commit b0e0d65c86
7 changed files with 28 additions and 35 deletions

View File

@@ -116,8 +116,7 @@ function discover_device(&$device, $force_module = false)
$valid = [];
// Reset $valid array
$attribs = DeviceCache::getPrimary()->getAttribs();
$device['attribs'] = $attribs;
$device['attribs'] = DeviceCache::getPrimary()->getAttribs();
$device_start = microtime(true);
// Start counting device poll time
@@ -140,11 +139,11 @@ function discover_device(&$device, $force_module = false)
$os_module_status = Config::getOsSetting($device['os'], "discovery_modules.$module");
d_echo('Modules status: Global' . (isset($module_status) ? ($module_status ? '+ ' : '- ') : ' '));
d_echo('OS' . (isset($os_module_status) ? ($os_module_status ? '+ ' : '- ') : ' '));
d_echo('Device' . (isset($attribs['discover_' . $module]) ? ($attribs['discover_' . $module] ? '+ ' : '- ') : ' '));
d_echo('Device' . (isset($device['attribs']['discover_' . $module]) ? ($device['attribs']['discover_' . $module] ? '+ ' : '- ') : ' '));
if ($force_module === true ||
! empty($attribs['discover_' . $module]) ||
($os_module_status && ! isset($attribs['discover_' . $module])) ||
($module_status && ! isset($os_module_status) && ! isset($attribs['discover_' . $module]))
! empty($device['attribs']['discover_' . $module]) ||
($os_module_status && ! isset($device['attribs']['discover_' . $module])) ||
($module_status && ! isset($os_module_status) && ! isset($device['attribs']['discover_' . $module]))
) {
$module_start = microtime(true);
$start_memory = memory_get_usage();
@@ -165,7 +164,7 @@ function discover_device(&$device, $force_module = false)
printf("\n>> Runtime for discovery module '%s': %.4f seconds with %s bytes\n", $module, $module_time, $module_mem);
$measurements->printChangedStats();
echo "#### Unload disco module $module ####\n\n";
} elseif (isset($attribs['discover_' . $module]) && $attribs['discover_' . $module] == '0') {
} elseif (isset($device['attribs']['discover_' . $module]) && $device['attribs']['discover_' . $module] == '0') {
echo "Module [ $module ] disabled on host.\n\n";
} elseif (isset($os_module_status) && $os_module_status == '0') {
echo "Module [ $module ] disabled on os.\n\n";

View File

@@ -23,9 +23,5 @@ if (! isset($module) && validate_device_id($device['device_id']) === false) {
$state = 0;
}
if (isset($attribs['discover_' . $module]) && $attribs['discover_' . $module] != \LibreNMS\Config::get("discover_modules.$module")) {
del_dev_attrib($device, $module);
} else {
set_dev_attrib($device, $module, $state);
}
}

View File

@@ -22,9 +22,5 @@ if (! isset($module) && validate_device_id($device['device_id']) === false) {
$state = 0;
}
if (isset($attribs['poll_' . $module]) && $attribs['poll_' . $module] != \LibreNMS\Config::get("poller_modules.$module")) {
del_dev_attrib($device, $module);
} else {
set_dev_attrib($device, $module, $state);
}
}

View File

@@ -8,7 +8,9 @@ if (Config::get('enable_inventory')) {
}
// Update State
if (isset($entPhysical_state)) {
include 'includes/polling/entity-physical/state.inc.php';
}
} else {
echo 'Disabled!';
}//end if

View File

@@ -237,8 +237,7 @@ function poll_device($device, $force_module = false)
$device_start = microtime(true);
$deviceModel = DeviceCache::getPrimary();
$attribs = $deviceModel->getAttribs();
$device['attribs'] = $attribs;
$device['attribs'] = $deviceModel->getAttribs();
$os = \LibreNMS\OS::make($device);
@@ -317,11 +316,11 @@ function poll_device($device, $force_module = false)
$os_module_status = Config::get("os.{$device['os']}.poller_modules.$module");
d_echo('Modules status: Global' . (isset($module_status) ? ($module_status ? '+ ' : '- ') : ' '));
d_echo('OS' . (isset($os_module_status) ? ($os_module_status ? '+ ' : '- ') : ' '));
d_echo('Device' . (isset($attribs['poll_' . $module]) ? ($attribs['poll_' . $module] ? '+ ' : '- ') : ' '));
d_echo('Device' . (isset($device['attribs']['poll_' . $module]) ? ($device['attribs']['poll_' . $module] ? '+ ' : '- ') : ' '));
if ($force_module === true ||
$attribs['poll_' . $module] ||
($os_module_status && ! isset($attribs['poll_' . $module])) ||
($module_status && ! isset($os_module_status) && ! isset($attribs['poll_' . $module]))) {
$device['attribs']['poll_' . $module] ||
($os_module_status && ! isset($device['attribs']['poll_' . $module])) ||
($module_status && ! isset($os_module_status) && ! isset($device['attribs']['poll_' . $module]))) {
$start_memory = memory_get_usage();
$module_start = microtime(true);
echo "\n#### Load poller module $module ####\n";
@@ -359,7 +358,7 @@ function poll_device($device, $force_module = false)
unlink($oldrrd);
}
unset($tags, $fields, $oldrrd);
} elseif (isset($attribs['poll_' . $module]) && $attribs['poll_' . $module] == '0') {
} elseif (isset($device['attribs']['poll_' . $module]) && $device['attribs']['poll_' . $module] == '0') {
echo "Module [ $module ] disabled on host.\n\n";
} elseif (isset($os_module_status) && $os_module_status == '0') {
echo "Module [ $module ] disabled on os.\n\n";

View File

@@ -8,11 +8,12 @@ $ipmi_rows = dbFetchRows("SELECT * FROM sensors WHERE device_id = ? AND poller_t
if (is_array($ipmi_rows)) {
d_echo($ipmi_rows);
if ($ipmi['host'] = $attribs['ipmi_hostname']) {
$ipmi['port'] = filter_var($attribs['ipmi_port'], FILTER_VALIDATE_INT) ? $attribs['ipmi_port'] : '623';
$ipmi['user'] = $attribs['ipmi_username'];
$ipmi['password'] = $attribs['ipmi_password'];
$ipmi['type'] = $attribs['ipmi_type'];
if (isset($device['attribs']['ipmi_hostname'])) {
$ipmi['host'] = $device['attribs']['ipmi_hostname'];
$ipmi['port'] = filter_var($device['attribs']['ipmi_port'], FILTER_VALIDATE_INT) ? $device['attribs']['ipmi_port'] : '623';
$ipmi['user'] = $device['attribs']['ipmi_username'];
$ipmi['password'] = $device['attribs']['ipmi_password'];
$ipmi['type'] = $device['attribs']['ipmi_type'];
echo 'Fetching IPMI sensor data...';

View File

@@ -213,7 +213,7 @@ $port_stats = [];
if ($device['os'] === 'f5' && (version_compare($device['version'], '11.2.0', '>=') && version_compare($device['version'], '11.7', '<'))) {
require 'ports/f5.inc.php';
} else {
if (Config::getOsSetting($device['os'], 'polling.selected_ports') || $device['attribs']['selected_ports'] == 'true') {
if (Config::getOsSetting($device['os'], 'polling.selected_ports') || (isset($device['attribs']['selected_ports']) && $device['attribs']['selected_ports'] == 'true')) {
echo 'Selected ports polling ';
// remove the deleted and disabled ports and mark them skipped
@@ -667,14 +667,14 @@ foreach ($ports as $port) {
$tune_port = false;
foreach ($data_oids as $oid) {
if ($oid == 'ifAlias') {
if ($attribs['ifName:' . $port['ifName']]) {
if ($device['attribs']['ifName:' . $port['ifName']]) {
$this_port['ifAlias'] = $port['ifAlias'];
} else {
$this_port['ifAlias'] = \LibreNMS\Util\StringHelpers::inferEncoding($this_port['ifAlias']);
}
}
if ($oid == 'ifSpeed') {
if ($attribs['ifSpeed:' . $port['ifName']]) {
if ($device['attribs']['ifSpeed:' . $port['ifName']]) {
$this_port['ifSpeed'] = $port['ifSpeed'];
}
}
@@ -691,8 +691,8 @@ foreach ($ports as $port) {
// if the value is different, update it
// rrdtune if needed
$port_tune = $attribs['ifName_tune:' . $port['ifName']];
$device_tune = $attribs['override_rrdtool_tune'];
$port_tune = $device['attribs']['ifName_tune:' . $port['ifName']];
$device_tune = $device['attribs']['override_rrdtool_tune'];
if ($port_tune == 'true' ||
($device_tune == 'true' && $port_tune != 'false') ||
(Config::get('rrdtool_tune') == 'true' && $port_tune != 'false' && $device_tune != 'false')) {