diff --git a/includes/discovery/functions.inc.php b/includes/discovery/functions.inc.php index 7d8841eb60..e8bc2d08b9 100644 --- a/includes/discovery/functions.inc.php +++ b/includes/discovery/functions.inc.php @@ -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"; diff --git a/includes/html/forms/discovery-module-update.inc.php b/includes/html/forms/discovery-module-update.inc.php index 14beedb89b..cf36002ad0 100644 --- a/includes/html/forms/discovery-module-update.inc.php +++ b/includes/html/forms/discovery-module-update.inc.php @@ -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); - } + set_dev_attrib($device, $module, $state); } diff --git a/includes/html/forms/poller-module-update.inc.php b/includes/html/forms/poller-module-update.inc.php index 80f18a7b82..d8f6e9f7e4 100644 --- a/includes/html/forms/poller-module-update.inc.php +++ b/includes/html/forms/poller-module-update.inc.php @@ -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); - } + set_dev_attrib($device, $module, $state); } diff --git a/includes/polling/entity-physical.inc.php b/includes/polling/entity-physical.inc.php index fdc70995b1..d514b8df86 100644 --- a/includes/polling/entity-physical.inc.php +++ b/includes/polling/entity-physical.inc.php @@ -8,7 +8,9 @@ if (Config::get('enable_inventory')) { } // Update State - include 'includes/polling/entity-physical/state.inc.php'; + if (isset($entPhysical_state)) { + include 'includes/polling/entity-physical/state.inc.php'; + } } else { echo 'Disabled!'; }//end if diff --git a/includes/polling/functions.inc.php b/includes/polling/functions.inc.php index f644c45802..568fea9e5d 100644 --- a/includes/polling/functions.inc.php +++ b/includes/polling/functions.inc.php @@ -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"; diff --git a/includes/polling/ipmi.inc.php b/includes/polling/ipmi.inc.php index 21d65eeaaa..0f6263a2c0 100644 --- a/includes/polling/ipmi.inc.php +++ b/includes/polling/ipmi.inc.php @@ -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...'; diff --git a/includes/polling/ports.inc.php b/includes/polling/ports.inc.php index 40f5444df1..568d45f52e 100644 --- a/includes/polling/ports.inc.php +++ b/includes/polling/ports.inc.php @@ -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')) {