Feature #15250

a-c-r set TTL on final output collection

Added by Peter Amstutz over 2 years ago. Updated about 14 hours ago.

Status:
In Progress
Priority:
Normal
Assigned To:
Category:
CWL
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
(Total: 0.00 h)
Story points:
-

Description

Add feature to set the TTL on the final output collection (separate from existing feature which sets TTL on intermediate collections).


Subtasks

Task #17459: ReviewNewPeter Amstutz


Related issues

Related to Arvados Epics - Story #17848: Improve a-c-r usabilityIn Progress07/01/202112/31/2021

History

#1 Updated by Peter Amstutz over 2 years ago

  • Description updated (diff)

#2 Updated by Peter Amstutz 9 months ago

  • Target version changed from To Be Groomed to 2021-03-17 sprint
  • Assigned To set to Jiayong Li

#3 Updated by Peter Amstutz 9 months ago

  • Target version changed from 2021-03-17 sprint to 2021-03-31 sprint

#4 Updated by Peter Amstutz 9 months ago

  • Category set to CWL
  • Subject changed from [cwl] a-c-r set TTL on final output collection to a-c-r set TTL on final output collection

#5 Updated by Peter Amstutz 8 months ago

  • Target version changed from 2021-03-31 sprint to 2021-04-14 sprint

#6 Updated by Peter Amstutz 8 months ago

  • Target version changed from 2021-04-14 sprint to 2021-04-28 bughunt sprint

#7 Updated by Peter Amstutz 8 months ago

  • Target version deleted (2021-04-28 bughunt sprint)

#8 Updated by Jiayong Li 5 months ago

  • Status changed from New to In Progress

#9 Updated by Jiayong Li 5 months 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?

#10 Updated by Peter Amstutz about 1 month ago

  • Target version set to 2021-11-10 sprint

#11 Updated by Peter Amstutz about 1 month ago

#12 Updated by Peter Amstutz about 1 month 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=...)

#13 Updated by Peter Amstutz 20 days ago

  • Target version changed from 2021-11-10 sprint to 2021-11-24 sprint

#14 Updated by Peter Amstutz 6 days ago

  • Target version changed from 2021-11-24 sprint to 2021-12-08 sprint

Also available in: Atom PDF