Provide NetBIOS information when available in Node and Port views
This commit is contained in:
		| @@ -112,6 +112,16 @@ the current Node's. | ||||
| __PACKAGE__->has_many( ips => 'App::Netdisco::DB::Result::NodeIp', | ||||
|   { 'foreign.mac' => 'self.mac', 'foreign.active' => 'self.active' } ); | ||||
|  | ||||
| =head2 netbios | ||||
|  | ||||
| Returns the C<node_nbt> entry associated with this Node if one exists. That | ||||
| is, the NetBIOS information of this MAC address at the time of discovery. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| __PACKAGE__->might_have( netbios => 'App::Netdisco::DB::Result::NodeNbt', | ||||
|   { 'foreign.mac' => 'self.mac' } ); | ||||
|  | ||||
| =head2 wireless | ||||
|  | ||||
| Returns the set of C<node_wireless> entries associated with this Node. That | ||||
|   | ||||
| @@ -48,6 +48,7 @@ hook 'before' => sub { | ||||
|   var('connected_properties' => [ | ||||
|     { name => 'n_age',      label => 'Age Stamp',     default => ''   }, | ||||
|     { name => 'n_ip',       label => 'IP Address',    default => 'on' }, | ||||
|     { name => 'n_netbios',  label => 'NetBIOS',       default => 'on' }, | ||||
|     { name => 'n_ssid',     label => 'SSID',          default => 'on' }, | ||||
|     { name => 'n_vendor',   label => 'Vendor',        default => ''   }, | ||||
|     { name => 'n_archived', label => 'Archived Data', default => ''   }, | ||||
|   | ||||
| @@ -141,6 +141,10 @@ get '/ajax/content/device/ports' => require_login sub { | ||||
|     $set = $set->search_rs({}, { prefetch => [{$nodes_name => 'wireless'}] }) | ||||
|       if param('c_nodes') && param('n_ssid'); | ||||
|  | ||||
|     # retrieve NetBIOS, if asked for | ||||
|     $set = $set->search_rs({}, { prefetch => [{$nodes_name => 'netbios'}] }) | ||||
|       if param('c_nodes') && param('n_netbios'); | ||||
|  | ||||
|     # retrieve vendor, if asked for | ||||
|     $set = $set->search_rs({}, { prefetch => [{$nodes_name => 'oui'}] }) | ||||
|       if param('c_nodes') && param('n_vendor'); | ||||
|   | ||||
| @@ -62,6 +62,17 @@ ajax '/ajax/content/search/node' => require_login sub { | ||||
|             } | ||||
|         ); | ||||
|  | ||||
|         my $netbios = schema('netdisco')->resultset('NodeNbt')->search( | ||||
|             { mac => $mac->as_IEEE }, | ||||
|             { order_by   => { '-desc' => 'time_last' }, | ||||
|               '+columns' => [ | ||||
|                 { | ||||
|                   time_first_stamp => \"to_char(time_first, 'YYYY-MM-DD HH24:MI')", | ||||
|                   time_last_stamp  => \"to_char(time_last,  'YYYY-MM-DD HH24:MI')" | ||||
|                 }] | ||||
|             } | ||||
|         ); | ||||
|  | ||||
|         return unless $sightings->count | ||||
|             or $ips->count | ||||
|             or $ports->count; | ||||
| @@ -71,6 +82,7 @@ ajax '/ajax/content/search/node' => require_login sub { | ||||
|           sightings => $sightings, | ||||
|           ports     => $ports, | ||||
|           wireless  => $wireless, | ||||
|           netbios   => $netbios, | ||||
|         }, { layout => undef }; | ||||
|     } | ||||
|     else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user