mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Update IronWare sensors & bgp-peers discovery, allow skip_values to target a specific index appended to the OID (#10941)
* Migrate ironware sensor discovery from php to yaml.
* More sensors, add grouping.
* dynamic_discovery_get_value() becomes getValueFromData()
* Target a specific index with skip_values.
* Improve Brocade BGP session discovery/polling
This commit allows for the correct discovery of BGP sessions
with 32-bit ASNs, IPv6 neighbors using the BGP4V2-MIB which is
based on draft-ietf-idr-bgp4-mibv2-11 and also polls for IPv4
unicast received routes through the FOUNDRY-SN-BGP4-GROUP-MIB.
Copied most of the code from PR#8877 by @Mikeburke14, cleaned
up the code a little bit to match the normal LibreNMS style,
and fixed bgpPeers_cbgp discovery as well as polling for the
ipv4.unicast neighbors.
Note that older Brocade IronWare firmware versions are known
to have multiple defects relating to the BGP4V2-MIB which
might result in certain missing non-established neighbors.
Related vendor defect numbers:
- DEFECT000633962
-- Symptom: The OID bgp4V2PeerAdminStatus does not return the
correct value
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00g
- DEFECT000583319
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
does not display all the BGP entries
-- Reported: NI 05.6.00
-- Resolved: NI 05.8.00e
- DEFECT000550309
-- Symptom: SNMP polling on bgp4V2PeerTable (OID brcdIp.3.5.1.1.2)
does not display the full information
-- Reported: NI 05.7.00
-- Resolved: NI 05.8.00c
* Add ironware CER & ICX platform test data.
* Re-add ironware.json compatible with current master branch.
This commit is contained in:
@@ -25,6 +25,8 @@
|
||||
|
||||
namespace LibreNMS\Tests;
|
||||
|
||||
use LibreNMS\Device\YamlDiscovery;
|
||||
|
||||
class FunctionsTest extends TestCase
|
||||
{
|
||||
public function testMacCleanToReadable()
|
||||
@@ -95,23 +97,23 @@ sdfsd <a href="ftp://192.168.1.1/help/me/now.php">ftp://192.168.1.1/help/me/now.
|
||||
);
|
||||
|
||||
$data = array('value' => 'temp', 'oid' => 'firstdata');
|
||||
$this->assertNull(dynamic_discovery_get_value('missing', 0, $data, $pre_cache));
|
||||
$this->assertSame('yar', dynamic_discovery_get_value('default', 0, $data, $pre_cache, 'yar'));
|
||||
$this->assertSame(2, dynamic_discovery_get_value('value', 1, $data, $pre_cache));
|
||||
$this->assertNull(YamlDiscovery::getValueFromData('missing', 0, $data, $pre_cache));
|
||||
$this->assertSame('yar', YamlDiscovery::getValueFromData('default', 0, $data, $pre_cache, 'yar'));
|
||||
$this->assertSame(2, YamlDiscovery::getValueFromData('value', 1, $data, $pre_cache));
|
||||
|
||||
$data = array('oid' => 'high');
|
||||
$this->assertSame(3, dynamic_discovery_get_value('high', 0, $data, $pre_cache));
|
||||
$this->assertSame(3, YamlDiscovery::getValueFromData('high', 0, $data, $pre_cache));
|
||||
|
||||
$data = array('oid' => 'table');
|
||||
$this->assertSame(5, dynamic_discovery_get_value('first', 0, $data, $pre_cache));
|
||||
$this->assertSame(7, dynamic_discovery_get_value('first', 1, $data, $pre_cache));
|
||||
$this->assertSame(6, dynamic_discovery_get_value('second', 0, $data, $pre_cache));
|
||||
$this->assertSame(8, dynamic_discovery_get_value('second', 1, $data, $pre_cache));
|
||||
$this->assertSame(5, YamlDiscovery::getValueFromData('first', 0, $data, $pre_cache));
|
||||
$this->assertSame(7, YamlDiscovery::getValueFromData('first', 1, $data, $pre_cache));
|
||||
$this->assertSame(6, YamlDiscovery::getValueFromData('second', 0, $data, $pre_cache));
|
||||
$this->assertSame(8, YamlDiscovery::getValueFromData('second', 1, $data, $pre_cache));
|
||||
|
||||
$this->assertSame(9, dynamic_discovery_get_value('single', 0, $data, $pre_cache));
|
||||
$this->assertSame(10, dynamic_discovery_get_value('oneoff', 3, $data, $pre_cache));
|
||||
$this->assertSame('Pickle', dynamic_discovery_get_value('singletable', 11, $data, $pre_cache));
|
||||
$this->assertSame('BBQ', dynamic_discovery_get_value('doubletable', 13, $data, $pre_cache));
|
||||
$this->assertSame(9, YamlDiscovery::getValueFromData('single', 0, $data, $pre_cache));
|
||||
$this->assertSame(10, YamlDiscovery::getValueFromData('oneoff', 3, $data, $pre_cache));
|
||||
$this->assertSame('Pickle', YamlDiscovery::getValueFromData('singletable', 11, $data, $pre_cache));
|
||||
$this->assertSame('BBQ', YamlDiscovery::getValueFromData('doubletable', 13, $data, $pre_cache));
|
||||
}
|
||||
|
||||
public function testParseAtTime()
|
||||
|
||||
Reference in New Issue
Block a user