Project

General

Profile

Feature #17349

Updated by Nico César about 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

Back