X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7d4da75d3980d465053c44b4d5b16afe166912a6..b3a65752c17598272235b67cccd3c9845327f525:/sdk/cwl/arvados_cwl/util.py diff --git a/sdk/cwl/arvados_cwl/util.py b/sdk/cwl/arvados_cwl/util.py index 776fc6bc25..299f854ec2 100644 --- a/sdk/cwl/arvados_cwl/util.py +++ b/sdk/cwl/arvados_cwl/util.py @@ -5,6 +5,8 @@ import datetime from arvados.errors import ApiError +collectionUUID = "http://arvados.org/cwl#collectionUUID" + def get_intermediate_collection_info(workflow_step_name, current_container, intermediate_output_ttl): if workflow_step_name: name = "Intermediate collection for step %s" % (workflow_step_name) @@ -14,9 +16,9 @@ def get_intermediate_collection_info(workflow_step_name, current_container, inte if intermediate_output_ttl > 0: trash_time = datetime.datetime.utcnow() + datetime.timedelta(seconds=intermediate_output_ttl) container_uuid = None + props = {"type": "intermediate"} if current_container: - container_uuid = current_container['uuid'] - props = {"type": "intermediate", "container": container_uuid} + props["container_uuid"] = current_container['uuid'] return {"name" : name, "trash_at" : trash_time, "properties" : props} @@ -30,5 +32,20 @@ def get_current_container(api, num_retries=0, logger=None): if logger: logger.info("Getting current container: %s", e) raise e - + return current_container + + +def common_prefix(firstfile, all_files): + common_parts = firstfile.split('/') + common_parts[-1] = '' + for f in all_files: + f_parts = f.split('/') + for index, (a, b) in enumerate(zip(common_parts, f_parts)): + if a != b: + common_parts = common_parts[:index + 1] + common_parts[-1] = '' + break + if not any(common_parts): + break + return '/'.join(common_parts)