#929 implement first half of multi tenancy with tenant_databases setting
This commit is contained in:
@@ -13,8 +13,8 @@ register_admin_task({
|
||||
});
|
||||
|
||||
ajax '/ajax/content/admin/duplicatedevices' => require_role admin => sub {
|
||||
my @set = schema('netdisco')->resultset('Device')->search({
|
||||
serial => { '-in' => schema('netdisco')->resultset('Device')->search({
|
||||
my @set = schema(vars->{'tenant'})->resultset('Device')->search({
|
||||
serial => { '-in' => schema(vars->{'tenant'})->resultset('Device')->search({
|
||||
'-and' => [serial => { '!=', undef }, serial => { '!=', '' }],
|
||||
}, {
|
||||
group_by => ['serial'],
|
||||
|
||||
@@ -24,8 +24,8 @@ sub _sanity_ok {
|
||||
ajax '/ajax/control/admin/nodemonitor/add' => require_role admin => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $monitor = schema('netdisco')->resultset('NodeMonitor')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $monitor = schema(vars->{'tenant'})->resultset('NodeMonitor')
|
||||
->create({
|
||||
mac => param('mac'),
|
||||
matchoui => (param('matchoui') ? \'true' : \'false'),
|
||||
@@ -39,8 +39,8 @@ ajax '/ajax/control/admin/nodemonitor/add' => require_role admin => sub {
|
||||
ajax '/ajax/control/admin/nodemonitor/del' => require_role admin => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
schema('netdisco')->resultset('NodeMonitor')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
schema(vars->{'tenant'})->resultset('NodeMonitor')
|
||||
->find({mac => param('mac')})->delete;
|
||||
});
|
||||
};
|
||||
@@ -48,8 +48,8 @@ ajax '/ajax/control/admin/nodemonitor/del' => require_role admin => sub {
|
||||
ajax '/ajax/control/admin/nodemonitor/update' => require_role admin => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $monitor = schema('netdisco')->resultset('NodeMonitor')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $monitor = schema(vars->{'tenant'})->resultset('NodeMonitor')
|
||||
->find({mac => param('mac')});
|
||||
return unless $monitor;
|
||||
|
||||
@@ -65,7 +65,7 @@ ajax '/ajax/control/admin/nodemonitor/update' => require_role admin => sub {
|
||||
};
|
||||
|
||||
ajax '/ajax/content/admin/nodemonitor' => require_role admin => sub {
|
||||
my $set = schema('netdisco')->resultset('NodeMonitor')
|
||||
my $set = schema(vars->{'tenant'})->resultset('NodeMonitor')
|
||||
->search(undef, { order_by => [qw/active date mac/] });
|
||||
|
||||
content_type('text/html');
|
||||
|
||||
@@ -17,11 +17,11 @@ register_admin_task(
|
||||
|
||||
get '/ajax/content/admin/orphaned' => require_role admin => sub {
|
||||
|
||||
my @tree = schema('netdisco')->resultset('Virtual::UnDirEdgesAgg')
|
||||
my @tree = schema(vars->{'tenant'})->resultset('Virtual::UnDirEdgesAgg')
|
||||
->search( undef, { prefetch => 'device' } )->hri->all;
|
||||
|
||||
my @orphans
|
||||
= schema('netdisco')->resultset('Virtual::OrphanedDevices')->search()
|
||||
= schema(vars->{'tenant'})->resultset('Virtual::OrphanedDevices')->search()
|
||||
->order_by('ip')->hri->all;
|
||||
|
||||
return unless ( scalar @tree || scalar @orphans );
|
||||
|
||||
@@ -13,7 +13,7 @@ register_admin_task({
|
||||
});
|
||||
|
||||
ajax '/ajax/content/admin/performance' => require_role admin => sub {
|
||||
my $set = schema('netdisco')->resultset('Virtual::PollerPerformance');
|
||||
my $set = schema(vars->{'tenant'})->resultset('Virtual::PollerPerformance');
|
||||
|
||||
content_type('text/html');
|
||||
template 'ajax/admintask/performance.tt', {
|
||||
|
||||
@@ -32,8 +32,8 @@ sub _sanity_ok {
|
||||
ajax '/ajax/control/admin/pseudodevice/add' => require_role admin => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->create({
|
||||
ip => param('ip'),
|
||||
dns => (hostname_from_ip(param('ip')) || ''),
|
||||
@@ -55,7 +55,7 @@ ajax '/ajax/control/admin/pseudodevice/add' => require_role admin => sub {
|
||||
]);
|
||||
|
||||
# device_ip table is used to show whether topo is "broken"
|
||||
schema('netdisco')->resultset('DeviceIp')
|
||||
schema(vars->{'tenant'})->resultset('DeviceIp')
|
||||
->create({
|
||||
ip => param('ip'),
|
||||
alias => param('ip'),
|
||||
@@ -66,8 +66,8 @@ ajax '/ajax/control/admin/pseudodevice/add' => require_role admin => sub {
|
||||
ajax '/ajax/control/admin/pseudodevice/update' => require_role admin => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->with_port_count->find({ip => param('ip')});
|
||||
return unless $device;
|
||||
my $count = $device->port_count;
|
||||
@@ -87,7 +87,7 @@ ajax '/ajax/control/admin/pseudodevice/update' => require_role admin => sub {
|
||||
->single({port => "Port${port}"})->delete;
|
||||
|
||||
# clear outdated manual topology links
|
||||
schema('netdisco')->resultset('Topology')->search({
|
||||
schema(vars->{'tenant'})->resultset('Topology')->search({
|
||||
-or => [
|
||||
{ dev1 => $device->ip, port1 => "Port${port}" },
|
||||
{ dev2 => $device->ip, port2 => "Port${port}" },
|
||||
@@ -106,7 +106,7 @@ ajax '/ajax/control/admin/pseudodevice/update' => require_role admin => sub {
|
||||
};
|
||||
|
||||
ajax '/ajax/content/admin/pseudodevice' => require_role admin => sub {
|
||||
my $set = schema('netdisco')->resultset('Device')
|
||||
my $set = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search(
|
||||
{-bool => 'is_pseudo'},
|
||||
{order_by => { -desc => 'last_discover' }},
|
||||
|
||||
@@ -13,7 +13,7 @@ register_admin_task({
|
||||
});
|
||||
|
||||
ajax '/ajax/content/admin/slowdevices' => require_role admin => sub {
|
||||
my $set = schema('netdisco')->resultset('Virtual::SlowDevices');
|
||||
my $set = schema(vars->{'tenant'})->resultset('Virtual::SlowDevices');
|
||||
|
||||
content_type('text/html');
|
||||
template 'ajax/admintask/slowdevices.tt', {
|
||||
|
||||
@@ -17,13 +17,13 @@ ajax '/ajax/control/admin/timedoutdevices/del' => require_role admin => sub {
|
||||
send_error('Missing backend', 400) unless param('backend');
|
||||
send_error('Missing device', 400) unless param('device');
|
||||
|
||||
schema('netdisco')->resultset('DeviceSkip')->find_or_create({
|
||||
schema(vars->{'tenant'})->resultset('DeviceSkip')->find_or_create({
|
||||
backend => param('backend'), device => param('device'),
|
||||
},{ key => 'device_skip_pkey' })->update({ deferrals => 0 });
|
||||
};
|
||||
|
||||
ajax '/ajax/content/admin/timedoutdevices' => require_role admin => sub {
|
||||
my @set = schema('netdisco')->resultset('DeviceSkip')->search({
|
||||
my @set = schema(vars->{'tenant'})->resultset('DeviceSkip')->search({
|
||||
deferrals => { '>' => 0 }
|
||||
},{ rows => (setting('dns')->{max_outstanding} || 50), order_by =>
|
||||
[{ -desc => 'deferrals' }, { -asc => [qw/device backend/] }]
|
||||
|
||||
@@ -35,7 +35,7 @@ sub _sanity_ok {
|
||||
ajax '/ajax/control/admin/topology/add' => require_any_role [qw(admin port_control)] => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
my $device = schema('netdisco')->resultset('Topology')
|
||||
my $device = schema(vars->{'tenant'})->resultset('Topology')
|
||||
->create({
|
||||
dev1 => param('dev1'),
|
||||
port1 => param('port1'),
|
||||
@@ -46,7 +46,7 @@ ajax '/ajax/control/admin/topology/add' => require_any_role [qw(admin port_contr
|
||||
# re-set remote device details in affected ports
|
||||
# could fail for bad device or port names
|
||||
try {
|
||||
schema('netdisco')->txn_do(sub {
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
# only work on root_ips
|
||||
my $left = get_device(param('dev1'));
|
||||
my $right = get_device(param('dev2'));
|
||||
@@ -84,8 +84,8 @@ ajax '/ajax/control/admin/topology/add' => require_any_role [qw(admin port_contr
|
||||
ajax '/ajax/control/admin/topology/del' => require_any_role [qw(admin port_control)] => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $device = schema('netdisco')->resultset('Topology')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $device = schema(vars->{'tenant'})->resultset('Topology')
|
||||
->search({
|
||||
dev1 => param('dev1'),
|
||||
port1 => param('port1'),
|
||||
@@ -97,7 +97,7 @@ ajax '/ajax/control/admin/topology/del' => require_any_role [qw(admin port_contr
|
||||
# re-set remote device details in affected ports
|
||||
# could fail for bad device or port names
|
||||
try {
|
||||
schema('netdisco')->txn_do(sub {
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
# only work on root_ips
|
||||
my $left = get_device(param('dev1'));
|
||||
my $right = get_device(param('dev2'));
|
||||
@@ -133,7 +133,7 @@ ajax '/ajax/control/admin/topology/del' => require_any_role [qw(admin port_contr
|
||||
};
|
||||
|
||||
ajax '/ajax/content/admin/topology' => require_any_role [qw(admin port_control)] => sub {
|
||||
my $set = schema('netdisco')->resultset('Topology')
|
||||
my $set = schema(vars->{'tenant'})->resultset('Topology')
|
||||
->search({},{order_by => [qw/dev1 dev2 port1/]});
|
||||
|
||||
content_type('text/html');
|
||||
|
||||
@@ -23,7 +23,7 @@ register_admin_task(
|
||||
|
||||
get '/ajax/content/admin/undiscoveredneighbors' => require_role admin => sub {
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Virtual::UndiscoveredNeighbors')->hri->all;
|
||||
= schema(vars->{'tenant'})->resultset('Virtual::UndiscoveredNeighbors')->hri->all;
|
||||
return unless scalar @results;
|
||||
|
||||
if ( request->is_ajax ) {
|
||||
|
||||
@@ -18,7 +18,7 @@ ajax '/ajax/control/admin/userlog/data' => require_role admin => sub {
|
||||
send_error( 'Missing parameter', 400 )
|
||||
unless ( param('draw') && param('draw') =~ /\d+/ );
|
||||
|
||||
my $rs = schema('netdisco')->resultset('UserLog');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('UserLog');
|
||||
|
||||
my $exp_params = expand_hash( scalar params );
|
||||
|
||||
@@ -41,18 +41,18 @@ ajax '/ajax/control/admin/userlog/data' => require_role admin => sub {
|
||||
ajax '/ajax/control/admin/userlog/del' => require_role admin => sub {
|
||||
send_error( 'Missing entry', 400 ) unless param('entry');
|
||||
|
||||
schema('netdisco')->txn_do(
|
||||
schema(vars->{'tenant'})->txn_do(
|
||||
sub {
|
||||
my $device = schema('netdisco')->resultset('UserLog')
|
||||
my $device = schema(vars->{'tenant'})->resultset('UserLog')
|
||||
->search( { entry => param('entry') } )->delete;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
ajax '/ajax/control/admin/userlog/delall' => require_role admin => sub {
|
||||
schema('netdisco')->txn_do(
|
||||
schema(vars->{'tenant'})->txn_do(
|
||||
sub {
|
||||
my $device = schema('netdisco')->resultset('UserLog')->delete;
|
||||
my $device = schema(vars->{'tenant'})->resultset('UserLog')->delete;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
@@ -34,8 +34,8 @@ sub _make_password {
|
||||
ajax '/ajax/control/admin/users/add' => require_role setting('defanged_admin') => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $user = schema('netdisco')->resultset('User')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $user = schema(vars->{'tenant'})->resultset('User')
|
||||
->create({
|
||||
username => param('username'),
|
||||
password => _make_password(param('password')),
|
||||
@@ -53,8 +53,8 @@ ajax '/ajax/control/admin/users/add' => require_role setting('defanged_admin') =
|
||||
ajax '/ajax/control/admin/users/del' => require_role setting('defanged_admin') => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
schema('netdisco')->resultset('User')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
schema(vars->{'tenant'})->resultset('User')
|
||||
->find({username => param('username')})->delete;
|
||||
});
|
||||
};
|
||||
@@ -62,8 +62,8 @@ ajax '/ajax/control/admin/users/del' => require_role setting('defanged_admin') =
|
||||
ajax '/ajax/control/admin/users/update' => require_role setting('defanged_admin') => sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $user = schema('netdisco')->resultset('User')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $user = schema(vars->{'tenant'})->resultset('User')
|
||||
->find({username => param('username')});
|
||||
return unless $user;
|
||||
|
||||
@@ -83,7 +83,7 @@ ajax '/ajax/control/admin/users/update' => require_role setting('defanged_admin'
|
||||
};
|
||||
|
||||
get '/ajax/content/admin/users' => require_role admin => sub {
|
||||
my @results = schema('netdisco')->resultset('User')
|
||||
my @results = schema(vars->{'tenant'})->resultset('User')
|
||||
->search(undef, {
|
||||
'+columns' => {
|
||||
created => \"to_char(creation, 'YYYY-MM-DD HH24:MI')",
|
||||
|
||||
@@ -13,7 +13,7 @@ get '/ajax/content/device/addresses' => require_login sub {
|
||||
my $q = param('q');
|
||||
|
||||
my $device
|
||||
= schema('netdisco')->resultset('Device')->search_for_device($q)
|
||||
= schema(vars->{'tenant'})->resultset('Device')->search_for_device($q)
|
||||
or send_error( 'Bad device', 400 );
|
||||
|
||||
my @results = $device->device_ips
|
||||
|
||||
@@ -12,11 +12,11 @@ register_device_tab({ tag => 'details', label => 'Details' });
|
||||
# device details table
|
||||
ajax '/ajax/content/device/details' => require_login sub {
|
||||
my $q = param('q');
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
my $device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Device')
|
||||
= schema(vars->{'tenant'})->resultset('Device')
|
||||
->search({ 'me.ip' => $device->ip },
|
||||
{
|
||||
'+select' => ['snapshot.ip'],
|
||||
@@ -27,11 +27,11 @@ ajax '/ajax/content/device/details' => require_login sub {
|
||||
->hri->all;
|
||||
|
||||
my @power
|
||||
= schema('netdisco')->resultset('DevicePower')
|
||||
= schema(vars->{'tenant'})->resultset('DevicePower')
|
||||
->search( { 'me.ip' => $device->ip } )->with_poestats->hri->all;
|
||||
|
||||
my @interfaces
|
||||
= schema('netdisco')->resultset('Device')
|
||||
= schema(vars->{'tenant'})->resultset('Device')
|
||||
->find($device->ip)
|
||||
->device_ips->hri->all;
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ register_device_tab({ tag => 'modules', label => 'Modules' });
|
||||
ajax '/ajax/content/device/modules' => require_login sub {
|
||||
my $q = param('q');
|
||||
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
my $device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
my @set = $device->modules->search({}, {order_by => { -asc => [qw/parent class pos index/] }});
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ ajax '/ajax/content/device/netmap' => require_login sub {
|
||||
|
||||
ajax '/ajax/data/device/netmappositions' => require_login sub {
|
||||
my $q = param('q');
|
||||
my $qdev = schema('netdisco')->resultset('Device')
|
||||
my $qdev = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
|
||||
my $p = param('positions') or send_error('Missing positions', 400);
|
||||
@@ -55,7 +55,7 @@ ajax '/ajax/data/device/netmappositions' => require_login sub {
|
||||
}
|
||||
return unless scalar keys %clean;
|
||||
|
||||
my $posrow = schema('netdisco')->resultset('NetmapPositions')->find({
|
||||
my $posrow = schema(vars->{'tenant'})->resultset('NetmapPositions')->find({
|
||||
device => (($mapshow eq 'neighbors') ? $qdev->ip : undef),
|
||||
host_groups => \[ '= ?', [host_groups => [sort @hgrplist]] ],
|
||||
locations => \[ '= ?', [locations => [sort @lgrplist]] ],
|
||||
@@ -66,7 +66,7 @@ ajax '/ajax/data/device/netmappositions' => require_login sub {
|
||||
$posrow->update({ positions => to_json(\%clean) });
|
||||
}
|
||||
else {
|
||||
schema('netdisco')->resultset('NetmapPositions')->create({
|
||||
schema(vars->{'tenant'})->resultset('NetmapPositions')->create({
|
||||
device => (($mapshow eq 'neighbors') ? $qdev->ip : undef),
|
||||
host_groups => [sort @hgrplist],
|
||||
locations => [sort @lgrplist],
|
||||
@@ -136,7 +136,7 @@ sub make_link_infostring {
|
||||
|
||||
ajax '/ajax/data/device/netmap' => require_login sub {
|
||||
my $q = param('q');
|
||||
my $qdev = schema('netdisco')->resultset('Device')
|
||||
my $qdev = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
|
||||
my $vlan = param('vlan');
|
||||
@@ -168,7 +168,7 @@ ajax '/ajax/data/device/netmap' => require_login sub {
|
||||
# LINKS
|
||||
|
||||
my %seen_link = ();
|
||||
my $links = schema('netdisco')->resultset('Virtual::DeviceLinks')->search({
|
||||
my $links = schema(vars->{'tenant'})->resultset('Virtual::DeviceLinks')->search({
|
||||
($mapshow eq 'neighbors' ? ( -or => [
|
||||
{ left_ip => $qdev->ip },
|
||||
{ right_ip => $qdev->ip },
|
||||
@@ -195,7 +195,7 @@ ajax '/ajax/data/device/netmap' => require_login sub {
|
||||
|
||||
# DEVICES (NODES)
|
||||
|
||||
my $posrow = schema('netdisco')->resultset('NetmapPositions')->find({
|
||||
my $posrow = schema(vars->{'tenant'})->resultset('NetmapPositions')->find({
|
||||
device => (($mapshow eq 'neighbors') ? $qdev->ip : undef),
|
||||
host_groups => \[ '= ?', [host_groups => [sort @hgrplist]] ],
|
||||
locations => \[ '= ?', [locations => [sort @lgrplist]] ],
|
||||
@@ -203,7 +203,7 @@ ajax '/ajax/data/device/netmap' => require_login sub {
|
||||
});
|
||||
my $pos_for = from_json( $posrow ? $posrow->positions : '{}' );
|
||||
|
||||
my $devices = schema('netdisco')->resultset('Device')->search({}, {
|
||||
my $devices = schema(vars->{'tenant'})->resultset('Device')->search({}, {
|
||||
'+select' => [\'floor(log(throughput.total))'], '+as' => ['log'],
|
||||
join => 'throughput', distinct => 1,
|
||||
})->with_times;
|
||||
|
||||
@@ -18,7 +18,7 @@ get '/ajax/content/device/ports' => require_login sub {
|
||||
$prefer = ''
|
||||
unless defined $prefer and $prefer =~ m/^(?:port|name|vlan)$/;
|
||||
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
my $device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
my $set = $device->ports->with_properties;
|
||||
|
||||
|
||||
@@ -15,10 +15,10 @@ use Module::Load ();
|
||||
use Try::Tiny;
|
||||
|
||||
register_device_tab({ tag => 'snmp', label => 'SNMP',
|
||||
render_if => sub { schema('netdisco')->resultset('DeviceBrowser')->count() } });
|
||||
render_if => sub { schema(vars->{'tenant'})->resultset('DeviceBrowser')->count() } });
|
||||
|
||||
get '/ajax/content/device/snmp' => require_login sub {
|
||||
my $device = try { schema('netdisco')->resultset('Device')
|
||||
my $device = try { schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device( param('q') ) }
|
||||
or send_error('Bad Device', 404);
|
||||
|
||||
@@ -27,7 +27,7 @@ get '/ajax/content/device/snmp' => require_login sub {
|
||||
};
|
||||
|
||||
ajax '/ajax/data/device/:ip/snmptree/:base' => require_login sub {
|
||||
my $device = try { schema('netdisco')->resultset('Device')
|
||||
my $device = try { schema(vars->{'tenant'})->resultset('Device')
|
||||
->find( param('ip') ) }
|
||||
or send_error('Bad Device', 404);
|
||||
|
||||
@@ -41,14 +41,14 @@ ajax '/ajax/data/device/:ip/snmptree/:base' => require_login sub {
|
||||
children => \0,
|
||||
state => { disabled => \1 },
|
||||
icon => 'icon-search',
|
||||
}] unless schema('netdisco')->resultset('DeviceSnapshot')->find($device->ip);
|
||||
}] unless schema(vars->{'tenant'})->resultset('DeviceSnapshot')->find($device->ip);
|
||||
|
||||
return to_json [{
|
||||
text => 'No MIB data. Please run `~/bin/netdisco-do loadmibs`.',
|
||||
children => \0,
|
||||
state => { disabled => \1 },
|
||||
icon => 'icon-search',
|
||||
}] unless schema('netdisco')->resultset('SNMPObject')->count();
|
||||
}] unless schema(vars->{'tenant'})->resultset('SNMPObject')->count();
|
||||
|
||||
my $items = _get_snmp_data($device->ip, $base);
|
||||
to_json $items;
|
||||
@@ -61,7 +61,7 @@ ajax '/ajax/data/snmp/typeahead' => require_login sub {
|
||||
my $deviceonly = param('deviceonly');
|
||||
my $table = ($deviceonly ? 'DeviceBrowser' : 'SNMPObject');
|
||||
|
||||
my @found = schema('netdisco')->resultset($table)
|
||||
my @found = schema(vars->{'tenant'})->resultset($table)
|
||||
->search({ -or => [ oid => $term,
|
||||
oid => { -like => ($term .'.%') },
|
||||
leaf => { -ilike => ('%'. $term .'%') } ],
|
||||
@@ -80,14 +80,14 @@ ajax '/ajax/data/snmp/nodesearch' => require_login sub {
|
||||
|
||||
my $found = undef;
|
||||
if ($partial) {
|
||||
$found = schema('netdisco')->resultset('SNMPObject')
|
||||
$found = schema(vars->{'tenant'})->resultset('SNMPObject')
|
||||
->search({ -or => [ oid => $to_match,
|
||||
oid => { -like => ($to_match .'.%') },
|
||||
leaf => { -ilike => ($to_match .'%') } ] },
|
||||
{ rows => 1, order_by => 'oid_parts' })->first;
|
||||
}
|
||||
else {
|
||||
$found = schema('netdisco')->resultset('SNMPObject')
|
||||
$found = schema(vars->{'tenant'})->resultset('SNMPObject')
|
||||
->search({ -or => [ oid => $to_match,
|
||||
leaf => $to_match ] },
|
||||
{ rows => 1, order_by => 'oid_parts' })->first;
|
||||
@@ -108,14 +108,14 @@ ajax '/ajax/data/snmp/nodesearch' => require_login sub {
|
||||
};
|
||||
|
||||
ajax '/ajax/content/device/:ip/snmpnode/:oid' => require_login sub {
|
||||
my $device = try { schema('netdisco')->resultset('Device')
|
||||
my $device = try { schema(vars->{'tenant'})->resultset('Device')
|
||||
->find( param('ip') ) }
|
||||
or send_error('Bad Device', 404);
|
||||
|
||||
my $oid = param('oid');
|
||||
$oid =~ m/^\.1(\.\d+)*$/ or send_error('Bad OID', 404);
|
||||
|
||||
my $object = schema('netdisco')->resultset('DeviceBrowser')
|
||||
my $object = schema(vars->{'tenant'})->resultset('DeviceBrowser')
|
||||
->with_snmp_object($device->ip)->find({ 'snmp_object.oid' => $oid })
|
||||
or send_error('Bad OID', 404);
|
||||
|
||||
@@ -138,7 +138,7 @@ sub _get_snmp_data {
|
||||
my @parts = grep {length} split m/\./, $base;
|
||||
|
||||
my %meta = map { ('.'. join '.', @{$_->{oid_parts}}) => $_ }
|
||||
schema('netdisco')->resultset('Virtual::FilteredSNMPObject')
|
||||
schema(vars->{'tenant'})->resultset('Virtual::FilteredSNMPObject')
|
||||
->search({}, { bind => [
|
||||
$ip,
|
||||
(scalar @parts + 1),
|
||||
|
||||
@@ -15,7 +15,7 @@ register_device_tab({ tag => 'vlans', label => 'VLANs', provides_csv => 1 });
|
||||
get '/ajax/content/device/vlans' => require_login sub {
|
||||
my $q = param('q');
|
||||
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
my $device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
my @results = $device->vlans->search(
|
||||
{ vlan => { '>' => 0 } }, { order_by => 'vlan' } )->hri->all;
|
||||
|
||||
@@ -13,8 +13,8 @@ register_navbar_item({
|
||||
});
|
||||
|
||||
get '/inventory' => require_login sub {
|
||||
my $platforms = schema('netdisco')->resultset('Device')->get_platforms();
|
||||
my $releases = schema('netdisco')->resultset('Device')->get_releases();
|
||||
my $platforms = schema(vars->{'tenant'})->resultset('Device')->get_platforms();
|
||||
my $releases = schema(vars->{'tenant'})->resultset('Device')->get_releases();
|
||||
|
||||
my %release_map = (
|
||||
map { (join '', map {sprintf '%05s', $_} split m/(\D)/, ($_->{os_ver} || '')) => $_ }
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/apchanneldist' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('DevicePortWireless')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('DevicePortWireless')->search(
|
||||
{ channel => { '!=', '0' } },
|
||||
{ select => [ 'channel', { count => 'channel' } ],
|
||||
as => [qw/ channel ch_count /],
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/apclients' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('Device')->search(
|
||||
{ 'nodes.time_last' => { '>=', \'me.last_macsuck' } },
|
||||
{ select => [ 'ip', 'dns', 'name', 'model', 'location' ],
|
||||
join => { 'ports' => { 'ssid' => 'nodes' } },
|
||||
|
||||
@@ -20,7 +20,7 @@ get '/ajax/content/report/apradiochannelpower/data' => require_login sub {
|
||||
send_error( 'Missing parameter', 400 )
|
||||
unless ( param('draw') && param('draw') =~ /\d+/ );
|
||||
|
||||
my $rs = schema('netdisco')->resultset('Virtual::ApRadioChannelPower');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('Virtual::ApRadioChannelPower');
|
||||
my $exp_params = expand_hash( scalar params );
|
||||
my $recordsTotal = $rs->count;
|
||||
my @data = $rs->get_datatables_data($exp_params)->hri->all;
|
||||
@@ -43,7 +43,7 @@ get '/ajax/content/report/apradiochannelpower' => require_login sub {
|
||||
}
|
||||
else {
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Virtual::ApRadioChannelPower')
|
||||
= schema(vars->{'tenant'})->resultset('Virtual::ApRadioChannelPower')
|
||||
->hri->all;
|
||||
|
||||
return unless scalar @results;
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/deviceaddrnodns' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('Device')->search(
|
||||
{ 'device_ips.dns' => undef },
|
||||
{ select => [ 'ip', 'dns', 'name', 'location', 'contact' ],
|
||||
join => [qw/device_ips/],
|
||||
|
||||
@@ -17,7 +17,7 @@ register_report(
|
||||
|
||||
get '/ajax/content/report/devicebylocation' => require_login sub {
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Device')
|
||||
= schema(vars->{'tenant'})->resultset('Device')
|
||||
->columns( [qw/ ip dns name location vendor model /] )
|
||||
->order_by( [qw/ location name ip vendor model /] )->hri->all;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ get '/ajax/content/report/devicednsmismatch' => require_login sub {
|
||||
(my $suffix = '***:'. setting('domain_suffix')) =~ s|\Q(?^\Eu?|(?|g;
|
||||
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Virtual::DeviceDnsMismatch')
|
||||
= schema(vars->{'tenant'})->resultset('Virtual::DeviceDnsMismatch')
|
||||
->search( undef, { bind => [ $suffix, $suffix ] } )
|
||||
->columns( [qw/ ip dns name location contact /] )->hri->all;
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ get '/ajax/content/report/devicepoestatus/data' => require_login sub {
|
||||
send_error( 'Missing parameter', 400 )
|
||||
unless ( param('draw') && param('draw') =~ /\d+/ );
|
||||
|
||||
my $rs = schema('netdisco')->resultset('Virtual::DevicePoeStatus');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('Virtual::DevicePoeStatus');
|
||||
|
||||
my $exp_params = expand_hash( scalar params );
|
||||
my $recordsTotal = $rs->count;
|
||||
@@ -44,7 +44,7 @@ get '/ajax/content/report/devicepoestatus' => require_login sub {
|
||||
}
|
||||
else {
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Virtual::DevicePoeStatus')
|
||||
= schema(vars->{'tenant'})->resultset('Virtual::DevicePoeStatus')
|
||||
->hri->all;
|
||||
|
||||
return unless scalar @results;
|
||||
|
||||
@@ -17,7 +17,7 @@ register_report(
|
||||
|
||||
get '/ajax/content/report/duplexmismatch' => require_login sub {
|
||||
my @results
|
||||
= schema('netdisco')->resultset('Virtual::DuplexMismatch')->hri->all;
|
||||
= schema(vars->{'tenant'})->resultset('Virtual::DuplexMismatch')->hri->all;
|
||||
|
||||
return unless scalar @results;
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ register_report(
|
||||
|
||||
get '/ajax/content/report/halfduplex' => require_login sub {
|
||||
my @results
|
||||
= schema('netdisco')->resultset('DevicePort')
|
||||
= schema(vars->{'tenant'})->resultset('DevicePort')
|
||||
->columns( [qw/ ip port name duplex /] )->search(
|
||||
{ up => 'up', duplex => { '-ilike' => 'half' } },
|
||||
{ '+columns' => [qw/ device.dns device.name /],
|
||||
|
||||
@@ -15,7 +15,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/inventorybymodelbyos' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(undef, {
|
||||
my @results = schema(vars->{'tenant'})->resultset('Device')->search(undef, {
|
||||
columns => [qw/vendor model os os_ver/],
|
||||
select => [ { count => 'os_ver' } ],
|
||||
as => [qw/ os_ver_count /],
|
||||
|
||||
@@ -66,7 +66,7 @@ get '/ajax/content/report/ipinventory' => require_login sub {
|
||||
# server-side to provide user feedback
|
||||
$limit = 8192 if $limit > 8192;
|
||||
|
||||
my $rs1 = schema('netdisco')->resultset('DeviceIp')->search(
|
||||
my $rs1 = schema(vars->{'tenant'})->resultset('DeviceIp')->search(
|
||||
undef,
|
||||
{ join => ['device', 'device_port'],
|
||||
select => [
|
||||
@@ -86,7 +86,7 @@ get '/ajax/content/report/ipinventory' => require_login sub {
|
||||
}
|
||||
)->hri;
|
||||
|
||||
my $rs2 = schema('netdisco')->resultset('NodeIp')->search(
|
||||
my $rs2 = schema(vars->{'tenant'})->resultset('NodeIp')->search(
|
||||
undef,
|
||||
{ join => ['oui', 'netbios'],
|
||||
columns => [qw( ip mac time_first time_last dns active)],
|
||||
@@ -99,7 +99,7 @@ get '/ajax/content/report/ipinventory' => require_login sub {
|
||||
}
|
||||
)->hri;
|
||||
|
||||
my $rs3 = schema('netdisco')->resultset('NodeNbt')->search(
|
||||
my $rs3 = schema(vars->{'tenant'})->resultset('NodeNbt')->search(
|
||||
undef,
|
||||
{ join => ['oui'],
|
||||
columns => [qw( ip mac time_first time_last )],
|
||||
@@ -120,7 +120,7 @@ get '/ajax/content/report/ipinventory' => require_login sub {
|
||||
if ( $never ) {
|
||||
$subnet = NetAddr::IP::Lite->new('0.0.0.0/32') if ($subnet->bits ne 32);
|
||||
|
||||
my $rs4 = schema('netdisco')->resultset('Virtual::CidrIps')->search(
|
||||
my $rs4 = schema(vars->{'tenant'})->resultset('Virtual::CidrIps')->search(
|
||||
undef,
|
||||
{ bind => [ $subnet->cidr ],
|
||||
columns => [qw( ip mac time_first time_last dns active node age vendor nbname )],
|
||||
|
||||
@@ -41,11 +41,11 @@ get '/ajax/content/report/moduleinventory/data' => require_login sub {
|
||||
send_error( 'Missing parameter', 400 )
|
||||
unless ( param('draw') && param('draw') =~ /\d+/ );
|
||||
|
||||
my $rs = schema('netdisco')->resultset('DeviceModule');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('DeviceModule');
|
||||
$rs = $rs->search( { -bool => 'fru' } ) if param('fruonly');
|
||||
|
||||
if ( param('device') ) {
|
||||
my @ips = schema('netdisco')->resultset('Device')
|
||||
my @ips = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_fuzzy( param('device') )->get_column('ip')->all;
|
||||
|
||||
params->{'ips'} = \@ips;
|
||||
@@ -87,14 +87,14 @@ get '/ajax/content/report/moduleinventory' => require_login sub {
|
||||
my $has_opt = List::MoreUtils::any { param($_) }
|
||||
qw/device description name type model serial class/;
|
||||
|
||||
my $rs = schema('netdisco')->resultset('DeviceModule');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('DeviceModule');
|
||||
$rs = $rs->search( { -bool => 'fru' } ) if param('fruonly');
|
||||
my @results;
|
||||
|
||||
if ( $has_opt && !request->is_ajax ) {
|
||||
|
||||
if ( param('device') ) {
|
||||
my @ips = schema('netdisco')->resultset('Device')
|
||||
my @ips = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_fuzzy( param('device') )->get_column('ip')->all;
|
||||
|
||||
params->{'ips'} = \@ips;
|
||||
|
||||
@@ -41,7 +41,7 @@ get '/ajax/content/report/netbios/data' => require_login sub {
|
||||
|
||||
my $domain = param('domain');
|
||||
|
||||
my $rs = schema('netdisco')->resultset('NodeNbt');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('NodeNbt');
|
||||
|
||||
my $search = $domain eq 'blank' ? '' : $domain;
|
||||
$rs = $rs->search( { domain => $search } )
|
||||
@@ -69,7 +69,7 @@ get '/ajax/content/report/netbios' => require_login sub {
|
||||
|
||||
my $domain = param('domain');
|
||||
|
||||
my $rs = schema('netdisco')->resultset('NodeNbt');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('NodeNbt');
|
||||
my @results;
|
||||
|
||||
if ( defined $domain && !request->is_ajax ) {
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/nodemultiips' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Node')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('Node')->search(
|
||||
{},
|
||||
{ select => [ 'mac', 'switch', 'port' ],
|
||||
join => [qw/device ips oui/],
|
||||
|
||||
@@ -42,7 +42,7 @@ get '/ajax/content/report/nodevendor/data' => require_login sub {
|
||||
|
||||
my $vendor = param('vendor');
|
||||
|
||||
my $rs = schema('netdisco')->resultset('Node');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('Node');
|
||||
|
||||
my $match = $vendor eq 'blank' ? undef : $vendor;
|
||||
|
||||
@@ -78,7 +78,7 @@ get '/ajax/content/report/nodevendor' => require_login sub {
|
||||
|
||||
my $vendor = param('vendor');
|
||||
|
||||
my $rs = schema('netdisco')->resultset('Node');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('Node');
|
||||
my @results;
|
||||
|
||||
if ( defined $vendor && !request->is_ajax ) {
|
||||
|
||||
@@ -42,7 +42,7 @@ register_report(
|
||||
get '/ajax/content/report/nodesdiscovered' => require_login sub {
|
||||
my $op = param('matchall') ? '-and' : '-or';
|
||||
|
||||
my @results = schema('netdisco')->resultset('Virtual::NodesDiscovered')
|
||||
my @results = schema(vars->{'tenant'})->resultset('Virtual::NodesDiscovered')
|
||||
->search({
|
||||
$op => [
|
||||
(param('aps') ?
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/portadmindown' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('Device')->search(
|
||||
{ 'up_admin' => 'down' },
|
||||
{ select => [ 'ip', 'dns', 'name' ],
|
||||
join => [ 'ports' ],
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/portblocking' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('Device')->search(
|
||||
{ 'stp' => [ 'blocking', 'broken' ], 'up' => { '!=', 'down' } },
|
||||
{ select => [ 'ip', 'dns', 'name' ],
|
||||
join => ['ports'],
|
||||
|
||||
@@ -26,8 +26,8 @@ sub _sanity_ok {
|
||||
ajax '/ajax/control/report/portlog/add' => require_login sub {
|
||||
send_error('Bad Request', 400) unless _sanity_ok();
|
||||
|
||||
schema('netdisco')->txn_do(sub {
|
||||
my $user = schema('netdisco')->resultset('DevicePortLog')
|
||||
schema(vars->{'tenant'})->txn_do(sub {
|
||||
my $user = schema(vars->{'tenant'})->resultset('DevicePortLog')
|
||||
->create({
|
||||
ip => param('ip'),
|
||||
port => param('port'),
|
||||
@@ -45,11 +45,11 @@ ajax '/ajax/content/report/portlog' => require_login sub {
|
||||
my $port = param('f');
|
||||
send_error('Bad Request', 400) unless $device and $port;
|
||||
|
||||
$device = schema('netdisco')->resultset('Device')
|
||||
$device = schema(vars->{'tenant'})->resultset('Device')
|
||||
->search_for_device($device);
|
||||
return unless $device;
|
||||
|
||||
my $set = schema('netdisco')->resultset('DevicePortLog')->search({
|
||||
my $set = schema(vars->{'tenant'})->resultset('DevicePortLog')->search({
|
||||
ip => $device->ip,
|
||||
port => $port,
|
||||
}, {
|
||||
|
||||
@@ -22,7 +22,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/portmultinodes' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('Device')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('Device')->search(
|
||||
{ 'ports.remote_ip' => undef,
|
||||
(param('vlan') ?
|
||||
('ports.vlan' => param('vlan'), 'nodes.vlan' => param('vlan')) : ()),
|
||||
|
||||
@@ -46,7 +46,7 @@ get '/ajax/content/report/portssid' => require_login sub {
|
||||
|
||||
my $ssid = param('ssid');
|
||||
|
||||
my $rs = schema('netdisco')->resultset('DevicePortSsid');
|
||||
my $rs = schema(vars->{'tenant'})->resultset('DevicePortSsid');
|
||||
|
||||
if ( defined $ssid ) {
|
||||
|
||||
|
||||
@@ -28,11 +28,11 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/portutilization' => require_login sub {
|
||||
return unless schema('netdisco')->resultset('Device')->count;
|
||||
return unless schema(vars->{'tenant'})->resultset('Device')->count;
|
||||
|
||||
my $age_num = param('age_num') || 3;
|
||||
my $age_unit = param('age_unit') || 'months';
|
||||
my @results = schema('netdisco')->resultset('Virtual::PortUtilization')
|
||||
my @results = schema(vars->{'tenant'})->resultset('Virtual::PortUtilization')
|
||||
->search(undef, { bind => [ "$age_num $age_unit", "$age_num $age_unit", "$age_num $age_unit" ] })->hri->all;
|
||||
|
||||
if (request->is_ajax) {
|
||||
|
||||
@@ -17,8 +17,8 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/portvlanmismatch' => require_login sub {
|
||||
return unless schema('netdisco')->resultset('Device')->count;
|
||||
my @results = schema('netdisco')
|
||||
return unless schema(vars->{'tenant'})->resultset('Device')->count;
|
||||
my @results = schema(vars->{'tenant'})
|
||||
->resultset('Virtual::PortVLANMismatch')->search({},{
|
||||
bind => [ setting('sidebar_defaults')->{'device_ports'}->{'p_hide1002'}->{'default'}
|
||||
? (1002, 1003, 1004, 1005) : (0, 0, 0, 0) ],
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/ssidinventory' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('DevicePortSsid')
|
||||
my @results = schema(vars->{'tenant'})->resultset('DevicePortSsid')
|
||||
->get_ssids->hri->all;
|
||||
|
||||
return unless scalar @results;
|
||||
|
||||
@@ -40,7 +40,7 @@ get '/ajax/content/report/subnets' => require_login sub {
|
||||
$start = $start . ' 00:00:00';
|
||||
$end = $end . ' 23:59:59';
|
||||
|
||||
my @results = schema('netdisco')->resultset('Virtual::SubnetUtilization')
|
||||
my @results = schema(vars->{'tenant'})->resultset('Virtual::SubnetUtilization')
|
||||
->search(undef,{
|
||||
bind => [ $subnet, $start, $end, $start, $subnet, $start, $start ],
|
||||
})->hri->all;
|
||||
|
||||
@@ -16,7 +16,7 @@ register_report(
|
||||
);
|
||||
|
||||
get '/ajax/content/report/vlaninventory' => require_login sub {
|
||||
my @results = schema('netdisco')->resultset('DeviceVlan')->search(
|
||||
my @results = schema(vars->{'tenant'})->resultset('DeviceVlan')->search(
|
||||
{ 'me.description' => { '!=', 'NULL' },
|
||||
'me.vlan' => { '>' => 0 },
|
||||
'ports.vlan' => { '>' => 0 },
|
||||
|
||||
@@ -72,10 +72,10 @@ get '/ajax/content/search/device' => require_login sub {
|
||||
my $see_all = param('seeallcolumns');
|
||||
|
||||
if ($see_all) {
|
||||
$rs_columns = schema('netdisco')->resultset('Device');
|
||||
$rs_columns = schema(vars->{'tenant'})->resultset('Device');
|
||||
}
|
||||
else {
|
||||
$rs_columns = schema('netdisco')->resultset('Device')->columns(
|
||||
$rs_columns = schema(vars->{'tenant'})->resultset('Device')->columns(
|
||||
[ "ip", "dns", "name",
|
||||
"location", "model", "os_ver", "serial", "chassis_id"
|
||||
]
|
||||
|
||||
@@ -131,7 +131,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
($using_wildcards ? \['me.mac::text ILIKE ?', $likeval]
|
||||
: ((!defined $mac or $mac->errstr) ? \'0=1' : ('me.mac' => $mac->as_ieee)) );
|
||||
|
||||
my $sightings = schema('netdisco')->resultset('Node')
|
||||
my $sightings = schema(vars->{'tenant'})->resultset('Node')
|
||||
->search({-and => [@where_mac, @active, @times]}, {
|
||||
order_by => {'-desc' => 'time_last'},
|
||||
'+columns' => [
|
||||
@@ -143,7 +143,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
join => 'device',
|
||||
});
|
||||
|
||||
my $ips = schema('netdisco')->resultset('NodeIp')
|
||||
my $ips = schema(vars->{'tenant'})->resultset('NodeIp')
|
||||
->search({-and => [@where_mac, @active, @times]}, {
|
||||
order_by => {'-desc' => 'time_last'},
|
||||
'+columns' => [
|
||||
@@ -155,7 +155,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
join => 'oui'
|
||||
});
|
||||
|
||||
my $netbios = schema('netdisco')->resultset('NodeNbt')
|
||||
my $netbios = schema(vars->{'tenant'})->resultset('NodeNbt')
|
||||
->search({-and => [@where_mac, @active, @times]}, {
|
||||
order_by => {'-desc' => 'time_last'},
|
||||
'+columns' => [
|
||||
@@ -167,7 +167,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
join => 'oui'
|
||||
});
|
||||
|
||||
my $wireless = schema('netdisco')->resultset('NodeWireless')->search(
|
||||
my $wireless = schema(vars->{'tenant'})->resultset('NodeWireless')->search(
|
||||
{ -and => [@where_mac, @wifitimes] },
|
||||
{ order_by => { '-desc' => 'time_last' },
|
||||
'+columns' => [
|
||||
@@ -180,7 +180,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
}
|
||||
);
|
||||
|
||||
my $rs_dp = schema('netdisco')->resultset('DevicePort');
|
||||
my $rs_dp = schema(vars->{'tenant'})->resultset('DevicePort');
|
||||
if ($sightings->has_rows or $ips->has_rows or $netbios->has_rows) {
|
||||
my $ports = param('deviceports')
|
||||
? $rs_dp->search({ -and => [@where_mac] }, { order_by => { '-desc' => 'creation' }}) : undef;
|
||||
@@ -208,7 +208,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
}
|
||||
}
|
||||
|
||||
my $set = schema('netdisco')->resultset('NodeNbt')
|
||||
my $set = schema(vars->{'tenant'})->resultset('NodeNbt')
|
||||
->search_by_name({nbname => $likeval, @active, @times});
|
||||
|
||||
unless ( $set->has_rows ) {
|
||||
@@ -216,11 +216,11 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
and my $ip = NetAddr::IP::Lite->new($node)) {
|
||||
|
||||
# search_by_ip() will extract cidr notation if necessary
|
||||
$set = schema('netdisco')->resultset('NodeIp')
|
||||
$set = schema(vars->{'tenant'})->resultset('NodeIp')
|
||||
->search_by_ip({ip => $ip, @active, @times});
|
||||
}
|
||||
else {
|
||||
$set = schema('netdisco')->resultset('NodeIp')
|
||||
$set = schema(vars->{'tenant'})->resultset('NodeIp')
|
||||
->search_by_dns({
|
||||
($using_wildcards ? (dns => $likeval) :
|
||||
(dns => "${likeval}.\%",
|
||||
@@ -233,7 +233,7 @@ get '/ajax/content/search/node' => require_login sub {
|
||||
# we'll try the OUI company name as a fallback
|
||||
|
||||
if (param('show_vendor') and not $set->has_rows) {
|
||||
$set = schema('netdisco')->resultset('NodeIp')
|
||||
$set = schema(vars->{'tenant'})->resultset('NodeIp')
|
||||
->with_times
|
||||
->search(
|
||||
{'oui.company' => { -ilike => ''.sql_match($node)}, @times},
|
||||
|
||||
@@ -45,7 +45,7 @@ get '/ajax/content/search/port' => require_login sub {
|
||||
my $rs;
|
||||
|
||||
if ($q =~ m/^[0-9]+$/ and $q < 4096) {
|
||||
$rs = schema('netdisco')->resultset('DevicePort')
|
||||
$rs = schema(vars->{'tenant'})->resultset('DevicePort')
|
||||
->columns( [qw/ ip port name up up_admin speed /] )->search({
|
||||
"port_vlans.vlan" => $q,
|
||||
( param('uplink') ? () : (-or => [
|
||||
@@ -70,7 +70,7 @@ get '/ajax/content/search/port' => require_login sub {
|
||||
and (($mac->as_ieee eq '00:00:00:00:00:00')
|
||||
or ($mac->as_ieee !~ m/$RE{net}{MAC}/)));
|
||||
|
||||
$rs = schema('netdisco')->resultset('DevicePort')
|
||||
$rs = schema(vars->{'tenant'})->resultset('DevicePort')
|
||||
->columns( [qw/ ip port name up up_admin speed /] )
|
||||
->search({
|
||||
-and => [
|
||||
|
||||
@@ -27,11 +27,11 @@ get '/ajax/content/search/vlan' => require_login sub {
|
||||
my $rs;
|
||||
|
||||
if ( $q =~ m/^\d+$/ ) {
|
||||
$rs = schema('netdisco')->resultset('Device')
|
||||
$rs = schema(vars->{'tenant'})->resultset('Device')
|
||||
->carrying_vlan( { vlan => $q } );
|
||||
}
|
||||
else {
|
||||
$rs = schema('netdisco')->resultset('Device')
|
||||
$rs = schema(vars->{'tenant'})->resultset('Device')
|
||||
->carrying_vlan_name( { name => $q } );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user