* initial work * initial work * initial work * some fixes for time and Layer3 weird spec * store again the snapshot after update for specific * resolve the enums * monkeypatch SNMP::translateObj to avoid hardware exception on macOS * only save cache to db in the late phase worker * no need to check for cache on transport, can just go ahead and try * use database only for oidmap instead of netdisco-mibs * rewrite device snapshot to gather loaded mib leafs only * remove old walker code from snapshot worker * allow snmp browser to work without snapshot * only store snapshot leafs which the device responded on * refactor to separate snapshot work from snmp transport work * refactor to separate snapshot work from snmp transport work * allow typeahead on MIB qualified leafs * fixes for snmpwalk input after previous refactor * add the extra stuff SNMP::Info device class uses into snapshot * better width for snmp search box * fix css for snmp options * add spinner while snmp loading * add spinner while snmp loading * add spinner while snmp loading * support SNMP::Info device class or named MIBs as extra on snapshot * add final tidy and bug fix
53 lines
1.3 KiB
Perl
53 lines
1.3 KiB
Perl
use utf8;
|
|
package App::Netdisco::DB::Result::DeviceBrowser;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use base 'App::Netdisco::DB::Result';
|
|
__PACKAGE__->table("device_browser");
|
|
__PACKAGE__->add_columns(
|
|
"ip",
|
|
{ data_type => "inet", is_nullable => 0 },
|
|
"oid",
|
|
{ data_type => "text", is_nullable => 0 },
|
|
"oid_parts",
|
|
{ data_type => "integer[]", is_nullable => 0 },
|
|
"leaf",
|
|
{ data_type => "text", is_nullable => 0 },
|
|
"munge",
|
|
{ data_type => "text", is_nullable => 1 },
|
|
"value",
|
|
{ data_type => "text", is_nullable => 1 },
|
|
);
|
|
__PACKAGE__->set_primary_key("ip", "oid");
|
|
|
|
=head1 RELATIONSHIPS
|
|
|
|
=head2 snmp_object
|
|
|
|
Returns the SNMP Object table entry to which the given row is related. The
|
|
idea is that you always get the SNMP Object row data even if the Device
|
|
Browser table doesn't have any walked data.
|
|
|
|
However you probably want to use the C<snmp_object> method in the
|
|
C<DeviceBrowser> ResultSet instead, so you can pass the IP address.
|
|
|
|
=cut
|
|
|
|
__PACKAGE__->belongs_to(
|
|
snmp_object => 'App::Netdisco::DB::Result::SNMPObject',
|
|
sub {
|
|
my $args = shift;
|
|
return {
|
|
"$args->{self_alias}.oid" => { -ident => "$args->{foreign_alias}.oid" },
|
|
"$args->{self_alias}.ip" => { '=' => \'?' },
|
|
};
|
|
},
|
|
{ join_type => 'RIGHT' }
|
|
);
|
|
|
|
__PACKAGE__->belongs_to( oid_fields => 'App::Netdisco::DB::Result::SNMPObject', 'oid' );
|
|
|
|
1;
|