17994: Allow filtering on storage_classes_desired/confirmed fields.
authorTom Clegg <tom@curii.com>
Mon, 23 Aug 2021 18:21:36 +0000 (14:21 -0400)
committerTom Clegg <tom@curii.com>
Mon, 23 Aug 2021 18:21:36 +0000 (14:21 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

services/api/app/models/collection.rb
services/api/test/functional/arvados/v1/collections_controller_test.rb

index 1bbe8cc6614b2becdfeac1afef32cd8fcfb4beea..f4c717999e8b0a2a134d641e6f0d018c83d62fc4 100644 (file)
@@ -613,7 +613,7 @@ class Collection < ArvadosModel
   end
 
   def self.searchable_columns operator
-    super - ["manifest_text"]
+    super - ["manifest_text"] + ["storage_classes_desired", "storage_classes_confirmed"]
   end
 
   def self.full_text_searchable_columns
index 1ca2dd1dc109857e6987fdaa32caad2b04a52f8b..5b77a544e0bbf6d565e79305e572726a833e6543 100644 (file)
@@ -1455,4 +1455,18 @@ EOS
     assert_response :success
     assert_equal col.version, json_response['version'], 'Trashing a collection should not create a new version'
   end
+
+  ["storage_classes_desired", "storage_classes_confirmed"].each do |attr|
+    test "filter collections by #{attr}" do
+      authorize_with(:active)
+      get :index, params: {
+            filters: [[attr, "=", '["default"]']]
+          }
+      assert_response :success
+      assert_not_equal 0, json_response["items"].length
+      json_response["items"].each do |c|
+        assert_equal ["default"], c[attr]
+      end
+    end
+  end
 end