Fixed ifType being removed when a port is down (#9493)

* Adding ifType to base_oids

* Improve discovery (update ifType) and polling (save ifType)

* Updated test data

* Updated json test data

* vlan isn't filtered by default :P

* With default ignored ports

* Update newer test data
This commit is contained in:
PipoCanaja
2018-12-12 04:07:56 +01:00
committed by Tony Murray
parent c0f5897226
commit b67634bc5a
86 changed files with 67486 additions and 72759 deletions

View File

@@ -47,21 +47,23 @@ foreach ($port_stats as $ifIndex => $port) {
$ifName = $port['ifName'];
$ifAlias = $port['ifAlias'];
$ifDescr = $port['ifDescr'];
$ifType = $port['ifType'];
// Get port_id according to port_association_mode used for this device
$port_id = get_port_id($ports_mapped, $port, $port_association_mode);
if (is_port_valid($port, $device)) {
// Port newly discovered?
if (! is_array($ports_db[$port_id])) {
$port_id = dbInsert(array('device_id' => $device['device_id'], 'ifIndex' => $ifIndex, 'ifName' => $ifName, 'ifAlias' => $ifAlias, 'ifDescr' => $ifDescr), 'ports');
$port_id = dbInsert(array('device_id' => $device['device_id'], 'ifType' => $ifType, 'ifIndex' => $ifIndex, 'ifName' => $ifName, 'ifAlias' => $ifAlias, 'ifDescr' => $ifDescr), 'ports');
$ports[$port_id] = dbFetchRow('SELECT * FROM `ports` WHERE `device_id` = ? AND `port_id` = ?', array($device['device_id'], $port_id));
echo 'Adding: '.$ifName.'('.$ifIndex.')('.$port_id.')';
} // Port re-discovered after previous deletion?
elseif ($ports_db[$port_id]['deleted'] == '1') {
dbUpdate(array('deleted' => '0'), 'ports', '`port_id` = ?', array($port_id));
dbUpdate(array('deleted' => '0', 'ifType' => $ifType, 'ifName' => $ifName, 'ifAlias' => $ifAlias, 'ifDescr' => $ifDescr, 'ifIndex' => $ifIndex), 'ports', '`port_id` = ?', array($port_id));
$ports_db[$port_id]['deleted'] = '0';
echo 'U';
} else {
} else { // port is existing, let's update it with some data we have collected here
dbUpdate(array('ifType' => $ifType, 'ifName' => $ifName, 'ifAlias' => $ifAlias, 'ifDescr' => $ifDescr), 'ports', '`port_id` = ?', array($port_id));
echo '.';
}
} else {