Files
librenms-librenms/includes/discovery/hr-device.inc.php

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

55 lines
2.2 KiB
PHP
Raw Normal View History

<?php
$hrDevice_oids = [
'hrDeviceTable',
'hrProcessorTable',
];
$hrDevices = [];
foreach ($hrDevice_oids as $oid) {
2015-03-01 12:23:31 +00:00
$hrDevices = snmpwalk_cache_oid($device, $oid, $hrDevices, 'HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES');
}
d_echo($hrDevices);
2015-07-13 20:10:26 +02:00
if (is_array($hrDevices)) {
foreach ($hrDevices as $hrDevice) {
if (is_array($hrDevice) && is_numeric($hrDevice['hrDeviceIndex'])) {
2014-01-13 17:43:58 +00:00
if (dbFetchCell('SELECT COUNT(*) FROM `hrDevice` WHERE device_id = ? AND hrDeviceIndex = ?', [$device['device_id'], $hrDevice['hrDeviceIndex']])) {
2014-06-10 22:21:10 +01:00
$update_array = [
'hrDeviceType' => $hrDevice['hrDeviceType'],
'hrDeviceDescr' => $hrDevice['hrDeviceDescr'],
'hrDeviceStatus' => $hrDevice['hrDeviceStatus'] ?? 'unknown',
'hrDeviceErrors' => $hrDevice['hrDeviceErrors'] ?? 0,
2015-07-13 20:10:26 +02:00
];
if ($hrDevice['hrDeviceType'] == 'hrDeviceProcessor') {
$update_array['hrProcessorLoad'] = $hrDevice['hrProcessorLoad'];
2015-07-13 20:10:26 +02:00
}
2014-06-10 22:21:10 +01:00
dbUpdate($update_array, 'hrDevice', 'device_id=? AND hrDeviceIndex=?', [$device['device_id'], $hrDevice['hrDeviceIndex']]);
2015-07-13 20:10:26 +02:00
echo '.';
} else {
$inserted_rows = dbInsert(['hrDeviceIndex' => $hrDevice['hrDeviceIndex'], 'device_id' => $device['device_id'], 'hrDeviceType' => $hrDevice['hrDeviceType'], 'hrDeviceDescr' => $hrDevice['hrDeviceDescr'], 'hrDeviceStatus' => $hrDevice['hrDeviceStatus'], 'hrDeviceErrors' => (int) $hrDevice['hrDeviceErrors']], 'hrDevice');
2015-07-13 20:10:26 +02:00
echo '+';
d_echo($hrDevice);
d_echo("$inserted_rows row inserted");
2015-07-13 20:10:26 +02:00
}//end if
$valid_hrDevice[$hrDevice['hrDeviceIndex']] = 1;
2015-07-13 20:10:26 +02:00
}//end if
}//end foreach
}//end if
$sql = "SELECT * FROM `hrDevice` WHERE `device_id` = '" . $device['device_id'] . "'";
2014-01-13 17:43:58 +00:00
foreach (dbFetchRows($sql) as $test_hrDevice) {
if (! $valid_hrDevice[$test_hrDevice['hrDeviceIndex']]) {
echo '-';
2014-01-13 17:43:58 +00:00
dbDelete('hrDevice', '`hrDevice_id` = ?', [$test_hrDevice['hrDevice_id']]);
d_echo($test_hrDevice);
}
}
unset($valid_hrDevice);
echo "\n";