Merge branch '21666-provision-test-improvement'
[arvados.git] / services / api / app / controllers / arvados / v1 / api_client_authorizations_controller.rb
index 22bcb6c1d5ccb1457a89fb21ba91c33b0212f9cf..da7e11cd9f4800b695beb927d9214836f891be19 100644 (file)
@@ -128,7 +128,7 @@ class Arvados::V1::ApiClientAuthorizationsController < ApplicationController
     super
   end
 
-  def find_object_by_uuid
+  def find_object_by_uuid(with_lock: false)
     uuid_param = params[:uuid] || params[:id]
     if (uuid_param != current_api_client_authorization.andand.uuid &&
         !Thread.current[:api_client].andand.is_trusted)
@@ -140,7 +140,11 @@ class Arvados::V1::ApiClientAuthorizationsController < ApplicationController
     @where = {}
     @filters = [['uuid', '=', uuid_param]]
     find_objects_for_index
-    @object = @objects.first
+    query = @objects
+    if with_lock && Rails.configuration.API.LockBeforeUpdate
+      query = query.lock
+    end
+    @object = query.first
   end
 
   def current_api_client_is_trusted