Merge branch '11305-migrate-docker19-doc'
[arvados.git] / apps / workbench / app / models / arvados_resource_list.rb
index 1be06d8e4237aced962ec4a326cc6bc82713c838..35dcde38da24cabc5290e24e0a99131f467181b4 100644 (file)
@@ -84,6 +84,13 @@ class ArvadosResourceList
     self
   end
 
+  # with_count sets the 'count' parameter to 'exact' or 'none' -- see
+  # https://doc.arvados.org/api/methods.html#index
+  def with_count(count_param='exact')
+    @count = count_param
+    self
+  end
+
   def fetch_multiple_pages(f)
     @fetch_multiple_pages = f
     self
@@ -178,14 +185,17 @@ class ArvadosResourceList
     api_params = {
       _method: 'GET'
     }
+    api_params[:count] = @count if @count
     api_params[:where] = @cond if @cond
     api_params[:eager] = '1' if @eager
     api_params[:select] = @select if @select
     api_params[:order] = @orderby_spec if @orderby_spec
     api_params[:filters] = @filters if @filters
     api_params[:distinct] = @distinct if @distinct
-    # Default limit to (effectively) api server's MAX_LIMIT
-    api_params[:limit] = 2**(0.size*8 - 1) - 1
+    if @fetch_multiple_pages
+      # Default limit to (effectively) api server's MAX_LIMIT
+      api_params[:limit] = 2**(0.size*8 - 1) - 1
+    end
 
     item_count = 0
     offset = @offset || 0