16007: refresh_trashed uses a transaction
authorPeter Amstutz <peter.amstutz@curii.com>
Tue, 26 May 2020 19:12:56 +0000 (15:12 -0400)
committerPeter Amstutz <peter.amstutz@curii.com>
Fri, 29 May 2020 02:31:26 +0000 (22:31 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

services/api/lib/refresh_permission_view.rb

index c0d5c1b694391326fcc9594cb1d5e5a778f743b2..826c44c3b46fdbd3b7b34a720c81c13babd4ce8b 100644 (file)
@@ -19,9 +19,11 @@ from users, lateral search_permission_graph(users.uuid, 3) as g where g.val > 0
 end
 
 def refresh_trashed
+  ActiveRecord::Base.transaction do
     ActiveRecord::Base.connection.execute("LOCK TABLE #{TRASHED_GROUPS}")
-  ActiveRecord::Base.connection.execute("DELETE FROM #{TRASHED_GROUPS}")
-  ActiveRecord::Base.connection.execute("INSERT INTO #{TRASHED_GROUPS} select * from compute_trashed()")
+    ActiveRecord::Base.connection.execute("DELETE FROM #{TRASHED_GROUPS}")
+    ActiveRecord::Base.connection.execute("INSERT INTO #{TRASHED_GROUPS} select * from compute_trashed()")
+  end
 end
 
 def update_permissions perm_origin_uuid, starting_uuid, perm_level, check=false