* new oui importer using IEEE csv for MA-L+M+S * schema update for new vendor table * change vendor to manufacturer because Device has a vendor field * remove oui from manuf table, and update node oui after manuf update * faster way to bulk update node oui * switch from using oui table to manufacturer table for vendor lookup * some other oui cleanup * faster/scalable way to join a macaddr to manuf table * remove device.oui support * update node oui in bulk at end of macsuck run * correct literal sql instead of bind * more efficient to get oui base for each mac * comment better the base lookup in macsuck
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
package App::Netdisco::DB::Result::Virtual::LastNode;
 | 
						|
 | 
						|
use strict;
 | 
						|
use warnings;
 | 
						|
 | 
						|
use base 'DBIx::Class::Core';
 | 
						|
 | 
						|
__PACKAGE__->table_class('DBIx::Class::ResultSource::View');
 | 
						|
 | 
						|
__PACKAGE__->table('last_node');
 | 
						|
__PACKAGE__->result_source_instance->is_virtual(1);
 | 
						|
__PACKAGE__->result_source_instance->view_definition(<<ENDSQL
 | 
						|
  SELECT DISTINCT ON (switch, port) * FROM node
 | 
						|
    ORDER BY switch, port, time_last desc
 | 
						|
ENDSQL
 | 
						|
);
 | 
						|
 | 
						|
__PACKAGE__->add_columns(
 | 
						|
  "mac",
 | 
						|
  { data_type => "macaddr", is_nullable => 0 },
 | 
						|
  "switch",
 | 
						|
  { data_type => "inet", is_nullable => 0 },
 | 
						|
  "port",
 | 
						|
  { data_type => "text", is_nullable => 0 },
 | 
						|
  "active",
 | 
						|
  { data_type => "boolean", is_nullable => 1 },
 | 
						|
  "oui",
 | 
						|
  { data_type => "varchar", is_nullable => 1, size => 9 },
 | 
						|
  "time_first",
 | 
						|
  {
 | 
						|
    data_type     => "timestamp",
 | 
						|
    default_value => \"LOCALTIMESTAMP",
 | 
						|
    is_nullable   => 1,
 | 
						|
    original      => { default_value => \"LOCALTIMESTAMP" },
 | 
						|
  },
 | 
						|
  "time_recent",
 | 
						|
  {
 | 
						|
    data_type     => "timestamp",
 | 
						|
    default_value => \"LOCALTIMESTAMP",
 | 
						|
    is_nullable   => 1,
 | 
						|
    original      => { default_value => \"LOCALTIMESTAMP" },
 | 
						|
  },
 | 
						|
  "time_last",
 | 
						|
  {
 | 
						|
    data_type     => "timestamp",
 | 
						|
    default_value => \"LOCALTIMESTAMP",
 | 
						|
    is_nullable   => 1,
 | 
						|
    original      => { default_value => \"LOCALTIMESTAMP" },
 | 
						|
  },
 | 
						|
  "vlan",
 | 
						|
  { data_type => "text", is_nullable => 0, default_value => '0' },
 | 
						|
);
 | 
						|
 | 
						|
1;
 |