diff --git a/lib/App/Netdisco/DB/Result/Virtual/PortUtilization.pm b/lib/App/Netdisco/DB/Result/Virtual/PortUtilization.pm index c822c114..a51e6ccc 100644 --- a/lib/App/Netdisco/DB/Result/Virtual/PortUtilization.pm +++ b/lib/App/Netdisco/DB/Result/Virtual/PortUtilization.pm @@ -7,6 +7,7 @@ use base 'DBIx::Class::Core'; __PACKAGE__->table_class('DBIx::Class::ResultSource::View'); +# NOTE this query is in `git grep 'THREE PLACES'` __PACKAGE__->table('port_utilization'); __PACKAGE__->result_source_instance->is_virtual(1); __PACKAGE__->result_source_instance->view_definition(<search({}, { '+columns' => { is_free => + # NOTE this query is in `git grep 'THREE PLACES'` \["me.up_admin = 'up' AND me.up != 'up' AND me.type != 'propVirtual' AND " ."((age(now(), to_timestamp(extract(epoch from device.last_discover) - (device.uptime/100))) < ?::interval " ."AND (last_node.time_last IS NULL OR age(now(), last_node.time_last) > ?::interval)) " @@ -96,6 +97,7 @@ sub only_free_ports { ->search_rs($cond, $attrs) ->search( { + # NOTE this query is in `git grep 'THREE PLACES'` 'me.up_admin' => 'up', 'me.up' => { '!=' => 'up' }, 'me.type' => { '!=' => 'propVirtual' }, diff --git a/lib/App/Netdisco/Web/Plugin/Device/Ports.pm b/lib/App/Netdisco/Web/Plugin/Device/Ports.pm index 9f994dcd..d4850b5b 100644 --- a/lib/App/Netdisco/Web/Plugin/Device/Ports.pm +++ b/lib/App/Netdisco/Web/Plugin/Device/Ports.pm @@ -82,6 +82,7 @@ get '/ajax/content/device/ports' => require_login sub { }); } delete $port_state{free}; + # showing free ports requires showing down ports ++$port_state{down}; }