mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Merge pull request #1414 from laf/issue-1197
Updated BGP discovery code to perform autodiscovery if enabled
This commit is contained in:
@@ -93,6 +93,10 @@ if ($config['enable_bgp'])
|
|||||||
if (dbFetchCell("SELECT COUNT(*) from `bgpPeers` WHERE device_id = ? AND bgpPeerIdentifier = ?",array($device['device_id'], $peer['ip'])) < '1')
|
if (dbFetchCell("SELECT COUNT(*) from `bgpPeers` WHERE device_id = ? AND bgpPeerIdentifier = ?",array($device['device_id'], $peer['ip'])) < '1')
|
||||||
{
|
{
|
||||||
$add = dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'bgpPeerRemoteAs' => $peer['as']), 'bgpPeers');
|
$add = dbInsert(array('device_id' => $device['device_id'], 'bgpPeerIdentifier' => $peer['ip'], 'bgpPeerRemoteAs' => $peer['as']), 'bgpPeers');
|
||||||
|
if ($config['autodiscovery']['bgp'] === true) {
|
||||||
|
$name = gethostbyaddr($peer['ip']);
|
||||||
|
$remote_device_id = discover_new_device($name,$device,'BGP');
|
||||||
|
}
|
||||||
echo("+");
|
echo("+");
|
||||||
} else {
|
} else {
|
||||||
$update = dbUpdate(array('bgpPeerRemoteAs' => $peer['as'], 'astext' => mres($astext)), 'bgpPeers', 'device_id=? AND bgpPeerIdentifier=?',array($device['device_id'],$peer['ip']));
|
$update = dbUpdate(array('bgpPeerRemoteAs' => $peer['as'], 'astext' => mres($astext)), 'bgpPeers', 'device_id=? AND bgpPeerIdentifier=?',array($device['device_id'],$peer['ip']));
|
||||||
|
|||||||
@@ -78,13 +78,7 @@ echo("\n");
|
|||||||
|
|
||||||
// Run device discovery on each of the devices we've detected so far.
|
// Run device discovery on each of the devices we've detected so far.
|
||||||
foreach ($names as $name) {
|
foreach ($names as $name) {
|
||||||
$remote_device_id = discover_new_device($name);
|
$remote_device_id = discover_new_device($name,$device,'ARP');
|
||||||
if ($remote_device_id) {
|
|
||||||
log_event("Device $name (" . $ips[$name] .") autodiscovered through ARP on $hostname", $remote_device_id, 'interface', $if);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
log_event("ARP discovery of $name (" . $ips[$name] . ") failed - check ping and SNMP access", $deviceid, 'interface', $if);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($names);
|
unset($names);
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
* See COPYING for more details.
|
* See COPYING for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function discover_new_device($hostname)
|
function discover_new_device($hostname,$device,$method)
|
||||||
{
|
{
|
||||||
global $config, $debug;
|
global $config, $debug;
|
||||||
|
|
||||||
@@ -46,6 +46,11 @@ function discover_new_device($hostname)
|
|||||||
echo("+[".$remote_device['hostname']."(".$remote_device['device_id'].")]");
|
echo("+[".$remote_device['hostname']."(".$remote_device['device_id'].")]");
|
||||||
discover_device($remote_device);
|
discover_device($remote_device);
|
||||||
device_by_id_cache($remote_device_id, 1);
|
device_by_id_cache($remote_device_id, 1);
|
||||||
|
if ($remote_device_id) {
|
||||||
|
log_event("Device $". $remote_device['hostname'] ." ($ip) autodiscovered through $method on ".$device['hostname'], $remote_device_id, 'system');
|
||||||
|
} else {
|
||||||
|
log_event("$method discovery of ". $remote_device['hostname'] ." ($ip) failed - check ping and SNMP access", $device['device_id'], 'system');
|
||||||
|
}
|
||||||
return $remote_device_id;
|
return $remote_device_id;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user