7dafedac28ff811a625dcff40fc9031b36784c0e
[arvados.git] / sdk / cwl / arvados_cwl / util.py
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 import datetime
6 from arvados.errors import ApiError
7
8 def get_intermediate_collection_info(current_container, intermediate_output_ttl):
9         name = "Intermediate collection"
10         trash_time = None
11         if intermediate_output_ttl > 0:
12             trash_time = datetime.datetime.utcnow() + datetime.timedelta(seconds=intermediate_output_ttl)
13         container_uuid = None
14         if current_container:
15             container_uuid = current_container['uuid']
16         props = {"type": "intermediate", "container": container_uuid}
17
18         return {"name" : name, "trash_at" : trash_time, "properties" : props}
19
20 def get_current_container(api, num_retries=0, logger=None):
21     current_container = None
22     try:
23         current_container = api.containers().current().execute(num_retries=num_retries)
24     except ApiError as e:
25         # Status code 404 just means we're not running in a container.
26         if e.resp.status != 404 and logger:
27             logger.info("Getting current container: %s", e)
28     return current_container;