additional debug and logic fixes in handling of remote_is_discoverable

This commit is contained in:
Oliver Gorwits
2022-06-03 21:43:24 +01:00
parent aa4ca704de
commit 46c535e873
3 changed files with 34 additions and 18 deletions

View File

@@ -85,16 +85,32 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub {
my $remote_cap = $c_cap->{$idx} || [];
my $remote_type = Encode::decode('UTF-8', $c_platform->{$idx} || '');
$properties{ $port }->{remote_is_wap} = 'true'
if scalar grep {match_to_setting($_, 'wap_capabilities')} @$remote_cap
or match_to_setting($remote_type, 'wap_platforms');
$properties{ $port }->{remote_is_wap} = 'false';
$properties{ $port }->{remote_is_phone} = 'false';
$properties{ $port }->{remote_is_discoverable} = 'true';
$properties{ $port }->{remote_is_phone} = 'true'
if scalar grep {match_to_setting($_, 'phone_capabilities')} @$remote_cap
or match_to_setting($remote_type, 'phone_platforms');
if (scalar grep {match_to_setting($_, 'wap_capabilities')} @$remote_cap
or match_to_setting($remote_type, 'wap_platforms')) {
$properties{ $port }->{remote_is_discoverable} = 'false'
unless is_discoverable($device_ports->{$port}->remote_ip, $remote_type, $remote_cap);
$properties{ $port }->{remote_is_wap} = 'true';
debug sprintf ' [%s] properties/lldpcap - remote on port %s is a WAP',
$device->ip, $port;
}
if (scalar grep {match_to_setting($_, 'phone_capabilities')} @$remote_cap
or match_to_setting($remote_type, 'phone_platforms')) {
$properties{ $port }->{remote_is_phone} = 'true';
debug sprintf ' [%s] properties/lldpcap - remote on port %s is a Phone',
$device->ip, $port;
}
if (! is_discoverable($device_ports->{$port}->remote_ip, $remote_type, $remote_cap)) {
$properties{ $port }->{remote_is_discoverable} = 'false';
debug sprintf ' [%s] properties/lldpcap - remote on port %s is denied discovery',
$device->ip, $port;
}
next unless scalar grep {defined && m/^inventory$/} @{ $rem_media_cap->{$idx} };

View File

@@ -294,7 +294,7 @@
[% END %]
<a href="[% device_ports | none %]&q=[% row.get_column('neighbor_ip') | uri %]">
[% row.get_column('neighbor_dns').remove(settings.domain_suffix) || row.get_column('neighbor_ip') | html_entity %]</a>
[% IF row.remote_port and row.remote_is_discoverable %]
[% IF row.remote_port %]
-
<a href="[% device_ports | none %]&q=[% row.get_column('neighbor_ip') | uri %]&f=[% row.remote_port | uri %]&prefer=port">
[% row.remote_port | html_entity %]</a>
@@ -308,18 +308,17 @@
[% ' type: '_ row.remote_type IF row.remote_type %])<br/>
[% END %]
[% ELSIF row.remote_ip %]
[% '<i class="icon-unlink text-error"></i>&nbsp;' IF row.remote_is_discoverable %]
<i class="icon-[% row.remote_is_discoverable ? 'unlink' : 'eye-close' %] text-error"></i>&nbsp;
[% IF row.remote_is_phone %]
<i class="icon-phone"></i>&nbsp;
[% ELSIF row.remote_is_wap %]
<i class="icon-rss"></i>&nbsp;
[% END %]
<a href="[% search_node | none %]&q=[% row.remote_ip | uri %]">
[% row.remote_ip | html_entity %]
[% IF row.remote_port and row.remote_is_discoverable %]
- [% row.remote_port | html_entity %]
[% END %]
</a><br/>
<a href="[% search_node | none %]&q=[% row.remote_ip | uri %]">[% row.remote_ip | html_entity %]</a>
[% IF row.remote_port %]
- [% row.remote_port | html_entity %]
[% END %]
<br/>
[% IF params.n_inventory and row.remote_inventory %]
[% row.remote_inventory | html_entity %]<br/>
[% END %]
@@ -328,7 +327,7 @@
[% ' type: '_ row.remote_type IF row.remote_type %])<br/>
[% END %]
[% ELSE %]
[% '<i class="icon-unlink text-error"></i>&nbsp; (possible uplink)' IF row.remote_is_discoverable %]
[% '<i class="icon-unlink text-error"></i>&nbsp; (possible uplink)' %]
[% END %]
[% END %]
[% IF params.c_nodes %]

View File

@@ -42,7 +42,8 @@
<li><i class="icon-li icon-off nd_power-on"></i>&nbsp; PoE Enabled</li>
<li><i class="icon-li icon-link text-warning"></i>&nbsp; Manual Topology</li>
<li><i class="icon-li icon-link"></i>&nbsp; Neighbor Device</li>
<li><i class="icon-li icon-unlink text-error"></i>&nbsp; Neighbor Inacessible</li>
<li><i class="icon-li icon-unlink text-error"></i>&nbsp; Neighbor Not Polled</li>
<li><i class="icon-li icon-eye-close text-error"></i>&nbsp; Neighbor Forbidden</li>
<li><i class="icon-li icon-phone"></i>&nbsp; IP Phone</li>
<li><i class="icon-li icon-signal"></i>&nbsp; Wireless Client</li>
<li><i class="icon-li icon-rss"></i>&nbsp; Wireless Access Point</li>