X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0ff7b94edaaaa07932ae757c0a2b7ba3fde026cb..60d5347a73a24638b57715c5f5d9c56d84a9e57e:/sdk/cwl/arvados_cwl/arvworkflow.py diff --git a/sdk/cwl/arvados_cwl/arvworkflow.py b/sdk/cwl/arvados_cwl/arvworkflow.py index 6087648a45..3bb0a34197 100644 --- a/sdk/cwl/arvados_cwl/arvworkflow.py +++ b/sdk/cwl/arvados_cwl/arvworkflow.py @@ -6,12 +6,12 @@ import logging from cwltool.pack import pack from cwltool.load_tool import fetch_document from cwltool.process import shortname -from cwltool.workflow import Workflow +from cwltool.workflow import Workflow, WorkflowException from cwltool.pathmapper import adjustFileObjs, adjustDirObjs import ruamel.yaml as yaml -from .runner import upload_docker, upload_dependencies +from .runner import upload_docker, upload_dependencies, del_listing from .arvtool import ArvadosCommandTool logger = logging.getLogger('arvados.cwl-runner') @@ -23,6 +23,8 @@ def upload_workflow(arvRunner, tool, job_order, project_uuid, update_uuid): packed = pack(document_loader, workflowobj, uri, tool.metadata) + adjustDirObjs(job_order, del_listing) + main = [p for p in packed["$graph"] if p["id"] == "#main"][0] for inp in main["inputs"]: sn = shortname(inp["id"]) @@ -83,10 +85,13 @@ class ArvadosWorkflow(Workflow): def keepmount(obj): if obj["location"].startswith("keep:"): obj["location"] = "/keep/" + obj["location"][5:] + if "listing" in obj: + del obj["listing"] + elif obj["location"].startswith("_:"): + del obj["location"] else: - raise Exception("Uh oh %s" % obj["location"]) - if "listing" in obj: - del obj["listing"] + raise WorkflowException("Location is not a keep reference or a literal: '%s'" % obj["location"]) + adjustFileObjs(joborder_keepmount, keepmount) adjustDirObjs(joborder_keepmount, keepmount) adjustFileObjs(packed, keepmount)