50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
package App::Netdisco::DB::Result::Virtual::NodeMonitor;
 | 
						|
 | 
						|
use strict;
 | 
						|
use warnings;
 | 
						|
 | 
						|
use utf8;
 | 
						|
use base 'DBIx::Class::Core';
 | 
						|
 | 
						|
__PACKAGE__->table_class('DBIx::Class::ResultSource::View');
 | 
						|
 | 
						|
__PACKAGE__->table('node_monitor_virtual');
 | 
						|
__PACKAGE__->result_source_instance->is_virtual(1);
 | 
						|
__PACKAGE__->result_source_instance->view_definition(<<'ENDSQL');
 | 
						|
SELECT nm.why, nm.cc, trim(trailing '.' from trim(trailing '0123456789' from date::text)) as date,
 | 
						|
       n.mac, n.switch, n.port,
 | 
						|
       d.name, d.location,
 | 
						|
       dp.name AS portname
 | 
						|
FROM node_monitor nm, node n, device d, device_port dp
 | 
						|
WHERE ((nm.mac = n.mac) OR (nm.matchoui AND (substring(nm.mac::text from 1 for 8) = n.oui)))
 | 
						|
  AND nm.active
 | 
						|
  AND nm.cc IS NOT NULL
 | 
						|
  AND d.ip = n.switch
 | 
						|
  AND dp.ip = n.switch
 | 
						|
  AND dp.port = n.port
 | 
						|
  AND d.last_macsuck = n.time_last
 | 
						|
ENDSQL
 | 
						|
 | 
						|
__PACKAGE__->add_columns(
 | 
						|
  "why",
 | 
						|
  { data_type => "text", is_nullable => 1 },
 | 
						|
  "cc",
 | 
						|
  { data_type => "text", is_nullable => 0 },
 | 
						|
  "date",
 | 
						|
  { data_type => "timestamp", is_nullable => 0 },
 | 
						|
  "mac",
 | 
						|
  { data_type => "macaddr", is_nullable => 0 },
 | 
						|
  "switch",
 | 
						|
  { data_type => "inet", is_nullable => 0 },
 | 
						|
  "port",
 | 
						|
  { data_type => "text", is_nullable => 0 },
 | 
						|
  "name",
 | 
						|
  { data_type => "text", is_nullable => 0 },
 | 
						|
  "location",
 | 
						|
  { data_type => "text", is_nullable => 1 },
 | 
						|
  "portname",
 | 
						|
  { data_type => "text", is_nullable => 0 },
 | 
						|
);
 | 
						|
 | 
						|
1;
 |