projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '10647-dev-jobs-image' closes #10647
[arvados.git]
/
services
/
api
/
app
/
controllers
/
arvados
/
v1
/
virtual_machines_controller.rb
diff --git
a/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb
b/services/api/app/controllers/arvados/v1/virtual_machines_controller.rb
index 84251db470fff95bbbc23f27397263124464c9d3..99b663da43b8d05fde6db0966fe5da515fdc0d84 100644
(file)
--- a/
services/api/app/controllers/arvados/v1/virtual_machines_controller.rb
+++ b/
services/api/app/controllers/arvados/v1/virtual_machines_controller.rb
@@
-4,22
+4,26
@@
class Arvados::V1::VirtualMachinesController < ApplicationController
before_filter(:admin_required,
:only => [:logins, :get_all_logins])
before_filter(:admin_required,
:only => [:logins, :get_all_logins])
+ # Get all login permissons (user uuid, login account, SSH key) for a
+ # single VM
def logins
def logins
- get_all_logins
+ render_logins_for VirtualMachine.where(uuid: @object.uuid)
end
end
+ # Get all login permissons for all VMs
def get_all_logins
def get_all_logins
+ render_logins_for VirtualMachine
+ end
+
+ protected
+
+ def render_logins_for vm_query
@response = []
@response = []
- @vms = VirtualMachine.eager_load :login_permissions
- if @object
- @vms = @vms.where uuid: @object.uuid
- else
- @vms = @vms.all
- end
+ @vms = vm_query.eager_load :login_permissions
@users = {}
User.eager_load(:authorized_keys).
where('users.uuid in (?)',
@users = {}
User.eager_load(:authorized_keys).
where('users.uuid in (?)',
- @vms.map { |vm| vm.login_permissions.map
&:tail_uuid
}.flatten.uniq).
+ @vms.map { |vm| vm.login_permissions.map
(&:tail_uuid)
}.flatten.uniq).
each do |u|
@users[u.uuid] = u
end
each do |u|
@users[u.uuid] = u
end