#929 implement first half of multi tenancy with tenant_databases setting
This commit is contained in:
@@ -20,7 +20,7 @@ swagger_path {
|
||||
],
|
||||
responses => { default => {} },
|
||||
}, get '/api/v1/object/device/:ip' => require_role api => sub {
|
||||
my $device = try { schema('netdisco')->resultset('Device')
|
||||
my $device = try { schema(vars->{'tenant'})->resultset('Device')
|
||||
->find( params->{ip} ) } or send_error('Bad Device', 404);
|
||||
return to_json $device->TO_JSON;
|
||||
};
|
||||
@@ -39,7 +39,7 @@ foreach my $rel (qw/device_ips vlans ports modules port_vlans wireless_ports ssi
|
||||
],
|
||||
responses => { default => {} },
|
||||
}, get "/api/v1/object/device/:ip/$rel" => require_role api => sub {
|
||||
my $rows = try { schema('netdisco')->resultset('Device')
|
||||
my $rows = try { schema(vars->{'tenant'})->resultset('Device')
|
||||
->find( params->{ip} )->$rel } or send_error('Bad Device', 404);
|
||||
return to_json [ map {$_->TO_JSON} $rows->all ];
|
||||
};
|
||||
@@ -65,7 +65,7 @@ foreach my $rel (qw/nodes active_nodes nodes_with_age active_nodes_with_age vlan
|
||||
responses => { default => {} },
|
||||
}, get qr{/api/v1/object/device/(?<ip>[^/]+)/port/(?<port>.+)/${rel}$} => require_role api => sub {
|
||||
my $params = captures;
|
||||
my $rows = try { schema('netdisco')->resultset('DevicePort')
|
||||
my $rows = try { schema(vars->{'tenant'})->resultset('DevicePort')
|
||||
->find( $$params{port}, $$params{ip} )->$rel }
|
||||
or send_error('Bad Device or Port', 404);
|
||||
return to_json [ map {$_->TO_JSON} $rows->all ];
|
||||
@@ -92,7 +92,7 @@ foreach my $rel (qw/power properties ssid wireless agg_master neighbor last_node
|
||||
responses => { default => {} },
|
||||
}, get qr{/api/v1/object/device/(?<ip>[^/]+)/port/(?<port>.+)/${rel}$} => require_role api => sub {
|
||||
my $params = captures;
|
||||
my $row = try { schema('netdisco')->resultset('DevicePort')
|
||||
my $row = try { schema(vars->{'tenant'})->resultset('DevicePort')
|
||||
->find( $$params{port}, $$params{ip} )->$rel }
|
||||
or send_error('Bad Device or Port', 404);
|
||||
return to_json $row->TO_JSON;
|
||||
@@ -119,7 +119,7 @@ swagger_path {
|
||||
responses => { default => {} },
|
||||
}, get qr{/api/v1/object/device/(?<ip>[^/]+)/port/(?<port>.+)$} => require_role api => sub {
|
||||
my $params = captures;
|
||||
my $port = try { schema('netdisco')->resultset('DevicePort')
|
||||
my $port = try { schema(vars->{'tenant'})->resultset('DevicePort')
|
||||
->find( $$params{port}, $$params{ip} ) }
|
||||
or send_error('Bad Device or Port', 404);
|
||||
return to_json $port->TO_JSON;
|
||||
@@ -145,7 +145,7 @@ swagger_path {
|
||||
responses => { default => {} },
|
||||
}, get '/api/v1/object/device/:ip/nodes' => require_role api => sub {
|
||||
my $active = (params->{active_only} and ('true' eq params->{active_only})) ? 1 : 0;
|
||||
my $rows = try { schema('netdisco')->resultset('Node')
|
||||
my $rows = try { schema(vars->{'tenant'})->resultset('Node')
|
||||
->search({ switch => params->{ip}, ($active ? (-bool => 'active') : ()) }) }
|
||||
or send_error('Bad Device', 404);
|
||||
return to_json [ map {$_->TO_JSON} $rows->all ];
|
||||
@@ -172,7 +172,7 @@ swagger_path {
|
||||
responses => { default => {} },
|
||||
}, get '/api/v1/object/vlan/:vlan/nodes' => require_role api => sub {
|
||||
my $active = (params->{active_only} and ('true' eq params->{active_only})) ? 1 : 0;
|
||||
my $rows = try { schema('netdisco')->resultset('Node')
|
||||
my $rows = try { schema(vars->{'tenant'})->resultset('Node')
|
||||
->search({ vlan => params->{vlan}, ($active ? (-bool => 'active') : ()) }) }
|
||||
or send_error('Bad VLAN', 404);
|
||||
return to_json [ map {$_->TO_JSON} $rows->all ];
|
||||
|
||||
Reference in New Issue
Block a user