Feature #17349
Updated by Nico César about 4 years ago
This specification is for the server side (client side of this will be on separate tickets,). The component railsapi (endpoint /arvados/v1/collections) and making sure that controller has all the plumbing in place
This ticket will cover (api)
* railsapi (including storing in the database)
* controller
* documentation updates with the new behaviour
This ticket will not cover
* client behaviour
* keep-balance behavirour
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"
"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.
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