librenms/includes/discovery/core.inc.php
Neil Lathwood 42e5819130 refactor: Updated discovery/poller to use numeric sysObjectID (#7922)
* refactor: Updated discovery to use a core module for sysDescr/sysObjectID use

* final update hopefully

* revert changes

* more changes + docs

* migrated poller to use numerical sysObjectID

* more updates for sysObjectID

* update any alert rules which might have enterprises. in

* moved schema file

* small updates

* updated getHostOS()

* scrut fixes

* updated sysObjectId -> sysObjectID

* updated sysObjectId -> sysObjectID

* updated remainder of sysObjectId -> sysObjectID

* another sysObjectId -> sysObjectID

* fixed secureplatform test data

* Fix tests: $device is not pulled from the database before polling
Also, update the db in the core discovery module.
2018-01-06 23:00:47 -06:00

25 lines
707 B
PHP

<?php
$snmpdata = snmp_get_multi_oid($device, 'sysName.0 sysObjectID.0 sysDescr.0', '-OUQn', 'SNMPv2-MIB');
$core_update = array(
'sysObjectID' => $snmpdata['.1.3.6.1.2.1.1.2.0'],
'sysName' => strtolower($snmpdata['.1.3.6.1.2.1.1.5.0']),
'sysDescr' => $snmpdata['.1.3.6.1.2.1.1.1.0'],
);
foreach ($core_update as $item => $value) {
if ($device[$item] != $value) {
$device[$item] = $value; // update the device array
log_event("$item -> $value", $device, 'system', 3);
} else {
unset($core_update[$item]);
}
}
if (!empty($core_update)) {
dbUpdate($core_update, 'devices', 'device_id=?', array($device['device_id']));
}
unset($core_update, $snmpdata);