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

View File

@@ -22,9 +22,5 @@ if (! isset($module) && validate_device_id($device['device_id']) === false) {
$state = 0; $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); set_dev_attrib($device, $module, $state);
} }
}

View File

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

View File

@@ -237,8 +237,7 @@ function poll_device($device, $force_module = false)
$device_start = microtime(true); $device_start = microtime(true);
$deviceModel = DeviceCache::getPrimary(); $deviceModel = DeviceCache::getPrimary();
$attribs = $deviceModel->getAttribs(); $device['attribs'] = $deviceModel->getAttribs();
$device['attribs'] = $attribs;
$os = \LibreNMS\OS::make($device); $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"); $os_module_status = Config::get("os.{$device['os']}.poller_modules.$module");
d_echo('Modules status: Global' . (isset($module_status) ? ($module_status ? '+ ' : '- ') : ' ')); d_echo('Modules status: Global' . (isset($module_status) ? ($module_status ? '+ ' : '- ') : ' '));
d_echo('OS' . (isset($os_module_status) ? ($os_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 || if ($force_module === true ||
$attribs['poll_' . $module] || $device['attribs']['poll_' . $module] ||
($os_module_status && ! isset($attribs['poll_' . $module])) || ($os_module_status && ! isset($device['attribs']['poll_' . $module])) ||
($module_status && ! isset($os_module_status) && ! isset($attribs['poll_' . $module]))) { ($module_status && ! isset($os_module_status) && ! isset($device['attribs']['poll_' . $module]))) {
$start_memory = memory_get_usage(); $start_memory = memory_get_usage();
$module_start = microtime(true); $module_start = microtime(true);
echo "\n#### Load poller module $module ####\n"; echo "\n#### Load poller module $module ####\n";
@@ -359,7 +358,7 @@ function poll_device($device, $force_module = false)
unlink($oldrrd); unlink($oldrrd);
} }
unset($tags, $fields, $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"; echo "Module [ $module ] disabled on host.\n\n";
} elseif (isset($os_module_status) && $os_module_status == '0') { } elseif (isset($os_module_status) && $os_module_status == '0') {
echo "Module [ $module ] disabled on os.\n\n"; 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)) { if (is_array($ipmi_rows)) {
d_echo($ipmi_rows); d_echo($ipmi_rows);
if ($ipmi['host'] = $attribs['ipmi_hostname']) { if (isset($device['attribs']['ipmi_hostname'])) {
$ipmi['port'] = filter_var($attribs['ipmi_port'], FILTER_VALIDATE_INT) ? $attribs['ipmi_port'] : '623'; $ipmi['host'] = $device['attribs']['ipmi_hostname'];
$ipmi['user'] = $attribs['ipmi_username']; $ipmi['port'] = filter_var($device['attribs']['ipmi_port'], FILTER_VALIDATE_INT) ? $device['attribs']['ipmi_port'] : '623';
$ipmi['password'] = $attribs['ipmi_password']; $ipmi['user'] = $device['attribs']['ipmi_username'];
$ipmi['type'] = $attribs['ipmi_type']; $ipmi['password'] = $device['attribs']['ipmi_password'];
$ipmi['type'] = $device['attribs']['ipmi_type'];
echo 'Fetching IPMI sensor data...'; 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', '<'))) { if ($device['os'] === 'f5' && (version_compare($device['version'], '11.2.0', '>=') && version_compare($device['version'], '11.7', '<'))) {
require 'ports/f5.inc.php'; require 'ports/f5.inc.php';
} else { } 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 '; echo 'Selected ports polling ';
// remove the deleted and disabled ports and mark them skipped // remove the deleted and disabled ports and mark them skipped
@@ -667,14 +667,14 @@ foreach ($ports as $port) {
$tune_port = false; $tune_port = false;
foreach ($data_oids as $oid) { foreach ($data_oids as $oid) {
if ($oid == 'ifAlias') { if ($oid == 'ifAlias') {
if ($attribs['ifName:' . $port['ifName']]) { if ($device['attribs']['ifName:' . $port['ifName']]) {
$this_port['ifAlias'] = $port['ifAlias']; $this_port['ifAlias'] = $port['ifAlias'];
} else { } else {
$this_port['ifAlias'] = \LibreNMS\Util\StringHelpers::inferEncoding($this_port['ifAlias']); $this_port['ifAlias'] = \LibreNMS\Util\StringHelpers::inferEncoding($this_port['ifAlias']);
} }
} }
if ($oid == 'ifSpeed') { if ($oid == 'ifSpeed') {
if ($attribs['ifSpeed:' . $port['ifName']]) { if ($device['attribs']['ifSpeed:' . $port['ifName']]) {
$this_port['ifSpeed'] = $port['ifSpeed']; $this_port['ifSpeed'] = $port['ifSpeed'];
} }
} }
@@ -691,8 +691,8 @@ foreach ($ports as $port) {
// if the value is different, update it // if the value is different, update it
// rrdtune if needed // rrdtune if needed
$port_tune = $attribs['ifName_tune:' . $port['ifName']]; $port_tune = $device['attribs']['ifName_tune:' . $port['ifName']];
$device_tune = $attribs['override_rrdtool_tune']; $device_tune = $device['attribs']['override_rrdtool_tune'];
if ($port_tune == 'true' || if ($port_tune == 'true' ||
($device_tune == 'true' && $port_tune != 'false') || ($device_tune == 'true' && $port_tune != 'false') ||
(Config::get('rrdtool_tune') == 'true' && $port_tune != 'false' && $device_tune != 'false')) { (Config::get('rrdtool_tune') == 'true' && $port_tune != 'false' && $device_tune != 'false')) {