Duplex Mismatch Finder

<& SELF:results &>

Search

This search could take a while.

<%args> $search => undef <%method title> - Duplex Mismatch Finder \ <%shared> my $results = undef; <%init> if (defined $search and $search =~ /duplex/i){ $results = sql_rows('device_port d, device_port t', ['d.ip','d.port','d.duplex','t.ip as remote_ip','t.port as remote_port','t.duplex as remote_duplex'], {'d.remote_ip' => \'t.ip', 'd.remote_port' => \'t.port', 'd.duplex' => \'!t.duplex'} ); $results = 'none' unless (defined $results and scalar (@$results)); } <%method results> % return unless defined $results; % if ($results eq 'none'){ No Duplex Mismatches found. % return;}

Search Results

<%perl> my %seen; my $count; my $domain = $netdisco::CONFIG{domain}; foreach my $result (@$results){ my $ip = $result->{ip}; my $port = $result->{port}; my $duplex = $result->{duplex}; my $remote_ip = $result->{remote_ip}; my $remote_port = $result->{remote_port}; my $remote_duplex = $result->{remote_duplex}; next if defined $seen{$ip}->{$port}; my $dns = sql_scalar('device',['dns'],{'ip' => $ip}); my $remote_dns = sql_scalar('device',['dns'],{'ip' => $remote_ip}); my $name = defined $dns ? $dns : $ip; $name =~ s/\Q$domain\E//; my $remote_name = defined $remote_dns ? $remote_dns : $remote_ip; $remote_name =~ s/\Q$domain\E//; $count++; <%perl> $seen{$ip}->{$port}++; $seen{$remote_ip}->{$remote_port}++; }
Device / Port Duplex Device / Port
(remote)
Duplex
(remote)

<%$name%> (<%$port%>) <%$duplex%> <%$remote_name%> (<%$remote_port%>) <%$remote_duplex%>

Found <% $count %> Mismatch<% $count > 1 ? 'es' : ''%> %# $Id: duplex.html,v 1.5 2007/12/14 02:18:22 maxbaker Exp $ %# vim:syntax=mason