X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2cf4ea4fe0e1eda66d510983bf27fb9836af5ff4..b5b64f5dcc4fa4614002e5a0969adba36ac7e5e8:/apps/workbench/app/models/arvados_resource_list.rb diff --git a/apps/workbench/app/models/arvados_resource_list.rb b/apps/workbench/app/models/arvados_resource_list.rb index cbd544ebb7..75a9429a43 100644 --- a/apps/workbench/app/models/arvados_resource_list.rb +++ b/apps/workbench/app/models/arvados_resource_list.rb @@ -147,11 +147,16 @@ class ArvadosResourceList if not @results.nil? @results.each(&block) else + results = [] self.each_page do |items| items.each do |i| + results << i block.call i end end + # Cache results only if all were retrieved (block didn't raise + # an exception). + @results = results end self end @@ -218,6 +223,7 @@ class ArvadosResourceList api_params[:filters] = @filters if @filters api_params[:distinct] = @distinct if @distinct api_params[:include_trash] = @include_trash if @include_trash + api_params[:cluster_id] = Rails.configuration.ClusterID if @fetch_multiple_pages # Default limit to (effectively) api server's MAX_LIMIT api_params[:limit] = 2**(0.size*8 - 1) - 1