Feature #17349
Updated by Nico César over 3 years ago
This specification is for the server side (client side of this will be on separate tickets,). Make The component railsapi (endpoint /arvados/v1/collections) and making sure that endpoint /arvados/v1/collections controller has all desired functionality, tests and documentation for controller and railsapi the plumbing in place This ticket will cover (api) * railsapi (including storing in the database) * controller * documentation updates with the current new behaviour * test This ticket will not cover * client behaviour * keep-balance behavirour Acording to the documentation the current Current behaviour for collections' "replicas_desired" is to accept a Number[1] or 'null'. Also there is an undocumented attribute "storage_classes_desired" and "storage_classes_confirmed". "storage_classes_confirmed" "MyStorageClass" is an example name that has to match with the StorageClass configuration setting on the volume but has no particular meaning for Arvados. Valid values: |_. replicas_desired |_. storage_classes_desired |_. defaultCollectionReplication |_. Collection Effective Value |_. Notes | | null (or omited from the request) | null | 3 | {"default": 3} | | | null (or omited from the request) | null | 2 | {"default": 2} | current behaviour see [2] | | 42 | null | 2 | {"default": 42} | | | 34 | null | 2 | {"default": 34} | | | 1 |["MyStorageClass"] | 2 | {"default": 0, "MyStorageClass": 1} | | | 1 |["default","MyStorageClass"] | 2 | {"default": 1, "MyStorageClass": 1} | is this correct?| | null |["default","MyStorageClass"] | 2 | {"default": 1, "MyStorageClass": 1} | How does defaultCollectionReplication affects this?| The "Effective value" is the amount of copies stored in each storage class, this column will help to clarify cases in following tickets class. To be talked in next grooming session: * For the error send the user an error, we only will discuss the API errors. arv-put, arvados-cwl-runner and other clients will have their own ticket * How will backward compatibility works here? [1] https://doc.arvados.org/v2.1/api/methods/collections.html [2] https://doc.arvados.org/v2.0/sdk/python/arvados/arvados.collection-pysrc.html#Collection._my_block_manager