add a remote_dns port property

This commit is contained in:
Oliver Gorwits
2022-08-14 21:22:31 +01:00
parent 3684451f2a
commit b01d0f08fd
6 changed files with 32 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ use App::Netdisco::Transport::SNMP ();
use Dancer::Plugin::DBIC 'schema';
use Encode;
use App::Netdisco::Util::FastResolver 'hostnames_resolve_async';
use App::Netdisco::Util::Device qw/is_discoverable match_to_setting/;
register_worker({ phase => 'main', driver => 'snmp' }, sub {
@@ -25,6 +26,17 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
my $device_ports = vars->{'device_ports'}
|| { map {($_->port => $_)} $device->ports->all };
my @remote_ips = map {{ip => $_}}
grep {defined}
map {$_->remote_ip}
values %$device_ports;
debug sprintf ' resolving %d remote_ips with max %d outstanding requests',
scalar @remote_ips, $ENV{'PERL_ANYEVENT_MAX_OUTSTANDING_DNS'};
my $resolved_remote_ips = hostnames_resolve_async(\@remote_ips);
$properties{$_}->{remote_dns} = $_->{dns} for @$resolved_remote_ips;
my $raw_speed = $snmp->i_speed_raw || {};
foreach my $idx (keys %$raw_speed) {