Feature #12917

Updated by Lucas Di Pentima over 4 years ago

Users should be able to see the exit code or state=[“Queued”, “Locked”, “Running”, “Cancelled” and “Complete”] from the container_request api method, rather than having to go another layer deeper to the container api method. 

 h2. Proposed solution 

 Add a general "include" option to the index (list) method. 

 include=container includes the contents of the record associated with container_uuid 

 Can only be used on fields ending in _uuid 

 A query like this would return: 


   "items": [ 
       "kind": "arvados#container_request", 
       "uuid": "abc-123", 
       "container_uuid": "xyz-123" 
   "includes": [ 
       "uuid": "xyz-123", 
       "state": "Completed", 
       "exit_code": 0, 

 Initially we will only adopt this syntax but initially limiting the implementation to only container requests. This should be implemented on the controller side. 

 If used for anything other than include=container on container_request it should return an API error. 

 Discussion points for future: 

 * selecting fields in the includes 
 * Permission enforcement.    Permission to read a container is based on permission to read the container_request, but this is not true generally.    For example, permission to read a container request doesn't grant permission to read output_uuid. 
 * Straightforward to set up a join when the _uuid field points to exactly one record type (only collections, only containers, etc) but more complex when it can point to multiple (owner_uuid, head/tail_uuid on links)