X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d9f8f46ccd5a418dcf7b5f43aeb59cd2d9d424ba..6fb70ef1e1398c30137580c8417e98693dfbfc1d:/services/api/app/controllers/arvados/v1/containers_controller.rb diff --git a/services/api/app/controllers/arvados/v1/containers_controller.rb b/services/api/app/controllers/arvados/v1/containers_controller.rb index 04a5ed0cb2..21ee7efa53 100644 --- a/services/api/app/controllers/arvados/v1/containers_controller.rb +++ b/services/api/app/controllers/arvados/v1/containers_controller.rb @@ -4,4 +4,19 @@ class Arvados::V1::ContainersController < ApplicationController accept_attribute_as_json :runtime_constraints, Hash accept_attribute_as_json :command, Array + def auth + if @object.locked_by_uuid != Thread.current[:api_client_authorization].uuid + raise ArvadosModel::PermissionDeniedError.new("Not locked by your token") + end + @object = @object.auth + show + end + + # Updates use row locking to resolve races between multiple + # dispatchers trying to lock the same container. + def update + @object.with_lock do + super + end + end end