Fixed snmptraps. (#8898)

* Fixed snmptraps.

* Fixed space

* Added bgp down/up and authentication failure

* Fixed typo

* Fixed some typos, arrays, astext and format_hostname

* Updated documentation

* Moved code to a function

* Some refactor

* Minor fixes

* Minor fixes 2

* More minor fixes

* Changes requested by Tony

* Minor fixes

* Moved include to snmptrap.php

* Refactor traps to use object oriented code.

Should trigger events too/instead, but we'll leave that.
Testing todo

* Add tests and fix things so they actually work
Not checking events yet.

* Fixed typo and severity level

* Update composer deps, I think the lock file wasn't right.
add json and mbstring extension deps while I'm at it.

* Fix several issues with phpunit fixtures
This commit is contained in:
TheGreatDoc
2018-08-11 23:37:45 +02:00
committed by Tony Murray
parent dea988ab79
commit 9940c884f5
30 changed files with 1237 additions and 176 deletions

View File

@@ -12,6 +12,9 @@
*/
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use LibreNMS\Util\IPv4;
$factory->define(App\User::class, function (Faker\Generator $faker) {
static $password;
@@ -22,3 +25,57 @@ $factory->define(App\User::class, function (Faker\Generator $faker) {
'remember_token' => str_random(10),
];
});
$factory->define(\App\Models\Device::class, function (Faker\Generator $faker) {
return [
'hostname' => $faker->domainWord.'.'.$faker->domainName,
'ip' => $faker->randomElement([$faker->ipv4, $faker->ipv6]),
'status' => $status = random_int(0, 1),
'status_reason' => $status == 0 ? $faker->randomElement(['snmp', 'icmp']) : '', // allow invalid states?
];
});
$factory->define(\App\Models\Port::class, function (Faker\Generator $faker) {
return [
'ifIndex' => $faker->unique()->numberBetween(),
'ifName' => $faker->text(20),
'ifLastChange' => $faker->unixTime(),
];
});
$factory->define(\App\Models\BgpPeer::class, function (Faker\Generator $faker) {
return [
'bgpPeerIdentifier' => $faker->ipv4,
'bgpLocalAddr' => $faker->ipv4,
'bgpPeerRemoteAddr' => $faker->ipv4,
'bgpPeerRemoteAs' => $faker->numberBetween(1, 65535),
'bgpPeerState' => $faker->randomElement(['established', 'idle']),
'astext' => $faker->sentence(),
'bgpPeerAdminStatus' => $faker->randomElement(['start', 'stop']),
'bgpPeerInUpdates' => $faker->randomDigit,
'bgpPeerOutUpdates' => $faker->randomDigit,
'bgpPeerInTotalMessages' => $faker->randomDigit,
'bgpPeerOutTotalMessages' => $faker->randomDigit,
'bgpPeerFsmEstablishedTime' => $faker->unixTime,
'bgpPeerInUpdateElapsedTime' => $faker->unixTime,
];
});
$factory->define(\App\Models\Ipv4Address::class, function (Faker\Generator $faker) {
$prefix = $faker->numberBetween(0, 32);
$ip = new IPv4($faker->ipv4 . '/' . $prefix);
return [
'ipv4_address' => $ip->uncompressed(),
'ipv4_prefixlen' => $prefix,
'ipv4_network_id' => function () use ($ip) {
return factory(\App\Models\Ipv4Network::class)->create(['ipv4_network' => $ip->getNetworkAddress() . '/' . $ip->cidr])->ipv4_network_id;
}
];
});
$factory->define(\App\Models\Ipv4Network::class, function (Faker\Generator $faker) {
return [
'ipv4_network' => $faker->ipv4 . '/' . $faker->numberBetween(0, 32),
];
});