mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Always mark device last_discovered (#15218)
Previously, if the device was ping only, it wasn't marked as discovered. Now we always run discovery, but basically all it does is update last_discovered.
This commit is contained in:
@@ -589,7 +589,7 @@ class Service:
|
|||||||
"""SELECT `device_id`,
|
"""SELECT `device_id`,
|
||||||
`poller_group`,
|
`poller_group`,
|
||||||
COALESCE(`last_polled` <= DATE_ADD(DATE_ADD(NOW(), INTERVAL -%s SECOND), INTERVAL COALESCE(`last_polled_timetaken`, 0) SECOND), 1) AS `poll`,
|
COALESCE(`last_polled` <= DATE_ADD(DATE_ADD(NOW(), INTERVAL -%s SECOND), INTERVAL COALESCE(`last_polled_timetaken`, 0) SECOND), 1) AS `poll`,
|
||||||
IF(snmp_disable=1 OR status=0, 0, IF (%s < `last_discovered_timetaken` * 1.25, 0, COALESCE(`last_discovered` <= DATE_ADD(DATE_ADD(NOW(), INTERVAL -%s SECOND), INTERVAL COALESCE(`last_discovered_timetaken`, 0) SECOND), 1))) AS `discover`
|
IF(status=0, 0, IF (%s < `last_discovered_timetaken` * 1.25, 0, COALESCE(`last_discovered` <= DATE_ADD(DATE_ADD(NOW(), INTERVAL -%s SECOND), INTERVAL COALESCE(`last_discovered_timetaken`, 0) SECOND), 1))) AS `discover`
|
||||||
FROM `devices`
|
FROM `devices`
|
||||||
WHERE `disabled` = 0 AND (
|
WHERE `disabled` = 0 AND (
|
||||||
`last_polled` IS NULL OR
|
`last_polled` IS NULL OR
|
||||||
|
@@ -102,8 +102,20 @@ if (! empty(\LibreNMS\Config::get('distributed_poller_group'))) {
|
|||||||
|
|
||||||
global $device;
|
global $device;
|
||||||
foreach (dbFetch("SELECT * FROM `devices` WHERE disabled = 0 $where ORDER BY device_id DESC", $sqlparams) as $device) {
|
foreach (dbFetch("SELECT * FROM `devices` WHERE disabled = 0 $where ORDER BY device_id DESC", $sqlparams) as $device) {
|
||||||
|
$device_start = microtime(true);
|
||||||
DeviceCache::setPrimary($device['device_id']);
|
DeviceCache::setPrimary($device['device_id']);
|
||||||
$discovered_devices += (int) discover_device($device, $module_override);
|
|
||||||
|
if (discover_device($device, $module_override)) {
|
||||||
|
$discovered_devices++;
|
||||||
|
|
||||||
|
$device_time = round(microtime(true) - $device_start, 3);
|
||||||
|
DB::table('devices')->where('device_id', $device['device_id'])->update([
|
||||||
|
'last_discovered_timetaken' => $device_time,
|
||||||
|
'last_discovered' => DB::raw('NOW()'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
echo "Discovered in $device_time seconds\n\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$end = microtime(true);
|
$end = microtime(true);
|
||||||
|
@@ -119,7 +119,6 @@ function discover_device(&$device, $force_module = false)
|
|||||||
// Reset $valid array
|
// Reset $valid array
|
||||||
$device['attribs'] = DeviceCache::getPrimary()->getAttribs();
|
$device['attribs'] = DeviceCache::getPrimary()->getAttribs();
|
||||||
|
|
||||||
$device_start = microtime(true);
|
|
||||||
// Start counting device poll time
|
// Start counting device poll time
|
||||||
echo $device['hostname'] . ' ' . $device['device_id'] . ' ' . $device['os'] . ' ';
|
echo $device['hostname'] . ' ' . $device['device_id'] . ' ' . $device['os'] . ' ';
|
||||||
|
|
||||||
@@ -179,14 +178,6 @@ function discover_device(&$device, $force_module = false)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$device_time = round(microtime(true) - $device_start, 3);
|
|
||||||
|
|
||||||
dbUpdate(['last_discovered' => ['NOW()'], 'last_discovered_timetaken' => $device_time], 'devices', '`device_id` = ?', [$device['device_id']]);
|
|
||||||
|
|
||||||
echo "Discovered in $device_time seconds\n";
|
|
||||||
|
|
||||||
echo PHP_EOL;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//end discover_device()
|
//end discover_device()
|
||||||
|
Reference in New Issue
Block a user