mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Don't poll sysDescr, sysObjectID, and sysName (#14562)
sysDescr, sysObjectID should not change unless the device is swapped, which would need a rediscover anyway. sysName is not needed, polling here overwrites custom sysName discovery. Poll sysDescr, sysObjectID if they are not filled (poller run before discovery) as they are required for a lot of code to work right.
This commit is contained in:
@@ -88,15 +88,23 @@ class Core implements Module
|
||||
|
||||
public function poll(OS $os): void
|
||||
{
|
||||
$snmpdata = SnmpQuery::numeric()
|
||||
->get(['SNMPv2-MIB::sysDescr.0', 'SNMPv2-MIB::sysObjectID.0', 'SNMPv2-MIB::sysUpTime.0', 'SNMPv2-MIB::sysName.0'])
|
||||
->values();
|
||||
|
||||
$device = $os->getDevice();
|
||||
$oids = [];
|
||||
|
||||
// fill required fields if they are empty
|
||||
if (! isset($device->sysDescr)) {
|
||||
$oids[] = 'SNMPv2-MIB::sysDescr.0';
|
||||
}
|
||||
if (! isset($device->sysObjectID)) {
|
||||
$oids[] = 'SNMPv2-MIB::sysObjectID.0';
|
||||
}
|
||||
$oids[] = 'SNMPv2-MIB::sysUpTime.0'; // always poll uptime
|
||||
|
||||
$snmpdata = SnmpQuery::numeric()->get($oids)->values();
|
||||
|
||||
$device->fill([
|
||||
'sysName' => $snmpdata['.1.3.6.1.2.1.1.5.0'] ?? null,
|
||||
'sysObjectID' => $snmpdata['.1.3.6.1.2.1.1.2.0'] ?? null,
|
||||
'sysDescr' => $snmpdata['.1.3.6.1.2.1.1.1.0'] ?? null,
|
||||
'sysDescr' => $snmpdata['.1.3.6.1.2.1.1.1.0'] ?? $device->sysDescr,
|
||||
'sysObjectID' => $snmpdata['.1.3.6.1.2.1.1.2.0'] ?? $device->sysObjectID,
|
||||
]);
|
||||
|
||||
$this->calculateUptime($os, $snmpdata['.1.3.6.1.2.1.1.3.0'] ?? null);
|
||||
|
Reference in New Issue
Block a user