Feature #14323
closed
[API] Accept container mounts that specify both uuid and portable_data_hash
Added by Tom Clegg about 6 years ago.
Updated about 6 years ago.
Estimated time:
(Total: 0.00 h)
Release relationship:
Auto
Description
Update API server to match
Containers API, specifically
"portable_data_hash"
, "uuid"
, or both may be provided in a container request.
- If both are provided, the uuid is considered advisory, and the container uses the provided portable_data_hash.
- (unchanged) If only the uuid is provided, the container uses the portable data hash corresponding to the given uuid at the time the container is assigned to the container request.
- Related to Feature #14322: [CWL] Accept collection uuid in input added
- Description updated (diff)
- Target version set to 2018-10-31 sprint
- Story points set to 1.0
- Assigned To set to Lucas Di Pentima
- Target version changed from 2018-10-31 sprint to 2018-11-14 Sprint
- Status changed from New to In Progress
I have some questions about this story:
1. The fact that the uuid is considered advisory when passing both pdh & uuid means that it should be preserved on the resolved mount instead of being deleted? I ask because there're tests checking that it should be deleted.
2. When both pdh & uuid are passed, should we still have to check that they match, right? There's also a test confirming this.
3. Always resolving to PDH (this time giving priority to PDH when both are given) means that this story is only about the API server behavior change, or is something else needed?
In the meantime:
Updates at d8a9500ef - branch 14323-container-collection-mounts
Test run: https://ci.curoverse.com/job/developer-run-tests/970/
- Prioritize pdh over uuid when both provided
- Don't delete uuid key on resolved mounts (as I understand, if they're advisory data, they shouldn't be deleted)
- Update tests
The container request mounts can have UUID, PDH, or both. If both are given, the UUID is ignored (but preserved).
The container mounts ("resolved mounts") never have UUID, always PDH (so the mount.delete 'uuid'
line should still be there). Including the UUID would interfere with container reuse.
If a container request's PDH and UUID don't match, we use the PDH anyway. This might be the only actual change here: previously this caused an error, which meant an update race would cause failures for a client that looks up the UUIDs by itself (e.g., to ensure all containers in a workflow use the same PDH for a given UUID) but still wants to preserve the UUIDs as provenance information.
Indentation mishap in container_request_test.rb.
Rest LGTM, thanks!
Looks like this restores the possibility of a container mount with no UUID and no PDH. This means "start with empty collection" according to the Containers API spec. Seems like we need a test for this in the API suite, rather than relying on WB integration tests.
With that, LGTM.
- Status changed from In Progress to Resolved
Also available in: Atom
PDF