13561: Ignore version & current_version_uuid parama on API create endpoint.
authorLucas Di Pentima <ldipentima@veritasgenetics.com>
Thu, 4 Oct 2018 21:55:40 +0000 (18:55 -0300)
committerLucas Di Pentima <ldipentima@veritasgenetics.com>
Thu, 4 Oct 2018 21:55:40 +0000 (18:55 -0300)
Also, updated discovery doc to include 'include_old_versions' param on index.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

services/api/app/controllers/arvados/v1/collections_controller.rb
services/api/test/functional/arvados/v1/collections_controller_test.rb
services/api/test/functional/arvados/v1/schema_controller_test.rb

index cfd1e9dc20253646d11c94e7d026b510ffa831bb..1d4ade6dd0ea30d17542687e8533d2c505b3883c 100644 (file)
@@ -15,6 +15,9 @@ class Arvados::V1::CollectionsController < ApplicationController
         include_trash: {
           type: 'boolean', required: false, description: "Include collections whose is_trashed attribute is true."
         },
+        include_old_versions: {
+          type: 'boolean', required: false, description: "Include past collection versions."
+        },
       })
   end
 
@@ -23,6 +26,8 @@ class Arvados::V1::CollectionsController < ApplicationController
       resource_attrs[:portable_data_hash] = loc.to_s
       resource_attrs.delete :uuid
     end
+    resource_attrs.delete :version
+    resource_attrs.delete :current_version_uuid
     super
   end
 
index 24a1a09cfd8628ce157d43b0fa2cb4a53268e65b..2b595a115b8ae9f39320595d60930076bf496c87 100644 (file)
@@ -1173,4 +1173,23 @@ EOS
                    'response includes a version from a different collection'
     end
   end
+
+  test 'version and current_version_uuid are ignored at creation time' do
+    permit_unsigned_manifests
+    authorize_with :active
+    manifest_text = ". d41d8cd98f00b204e9800998ecf8427e 0:0:foo.txt\n"
+    post :create, {
+      collection: {
+        name: 'Test collection',
+        version: 42,
+        current_version_uuid: collections(:collection_owned_by_active).uuid,
+        manifest_text: manifest_text,
+        # portable_data_hash: "d30fe8ae534397864cb96c544f4cf102+47"
+      }
+    }
+    assert_response :success
+    resp = JSON.parse(@response.body)
+    assert_equal 1, resp['version']
+    assert_equal resp['uuid'], resp['current_version_uuid']
+  end
 end
index 40868c87b8857ba34cd5aff2bfbf065506d50b00..53c1ed72e7910c8cd19f36f0721aef5e53ea87ed 100644 (file)
@@ -101,7 +101,7 @@ class Arvados::V1::SchemaControllerTest < ActionController::TestCase
     specimens_index_params = discovery_doc['resources']['specimens']['methods']['index']['parameters']  # no changes from super
     coll_index_params = discovery_doc['resources']['collections']['methods']['index']['parameters']
 
-    assert_equal coll_index_params.keys.sort, (specimens_index_params.keys + ['include_trash']).sort
+    assert_equal (specimens_index_params.keys + ['include_trash', 'include_old_versions']).sort, coll_index_params.keys.sort
 
     include_trash_param = coll_index_params['include_trash']
     assert_equal 'boolean', include_trash_param['type']