Feature #15250
opena-c-r set TTL on final output collection
Description
Add feature to set the TTL on the final output collection (separate from existing feature which sets TTL on intermediate collections).
Updated by Jiayong Li almost 4 years ago
1. First of all, would you like to have final output ttl set by an a-c-r argument, or an extension in the workflow cwl?
2. Following your hint, I'm trying to draw the parallel between setting intermediate output ttl (arvcontainer.py) and setting final output ttl (executor.py). In arvcontainer.py, you extract output_ttl (L268), set it in the container_request dictionary (L284), then use arvrunner.api.container_requests().update() (L309). But this looks quite different for final output: in executor.py, final output collection is made using the make_output_collection method (L421), this is not tied to a container_request. Do you think I should use the get_trash_at api call for the collection class?
Updated by Peter Amstutz over 3 years ago
Jiayong Li wrote:
1. First of all, would you like to have final output ttl set by an a-c-r argument, or an extension in the workflow cwl?
The user should be able to provide both on the command or using a CWL hint. That is how storage classes, intermediate output TTL, etc work.
2. Following your hint, I'm trying to draw the parallel between setting intermediate output ttl (arvcontainer.py) and setting final output ttl (executor.py). In arvcontainer.py, you extract output_ttl (L268), set it in the container_request dictionary (L284), then use arvrunner.api.container_requests().update() (L309). But this looks quite different for final output: in executor.py, final output collection is made using the make_output_collection method (L421), this is not tied to a container_request. Do you think I should use the get_trash_at api call for the collection class?
You want to add "trash_at=" to final.save_new(). trash_at takes a Python datetime object in the future.
executor.py:475
final.save_new(name=name, owner_uuid=self.project_uuid, storage_classes=storage_classes, ensure_unique_name=True, trash_at=...)