9308: Add test for KeepTmpOutput flag.
[arvados.git] / crunch_scripts / cwl-runner
index fe4e8009aca1af0b04fb483983a09fd59de25390..89699f5eaf765aa997a223b2704934c4d5b38da7 100755 (executable)
@@ -12,15 +12,16 @@ import arvados
 import arvados_cwl
 import arvados.collection
 import arvados.util
-from cwltool.process import shortname
 import cwltool.main
 import logging
 import os
 import json
 import argparse
 import re
+import functools
+
 from arvados.api import OrderedJsonModel
-from cwltool.process import adjustFileObjs, adjustDirObjs
+from cwltool.process import shortname, adjustFileObjs, adjustDirObjs, getListing, normalizeFilesDirs
 from cwltool.load_tool import load_tool
 
 # Print package versions
@@ -53,10 +54,12 @@ try:
 
     adjustFileObjs(job_order_object, keeppathObj)
     adjustDirObjs(job_order_object, keeppathObj)
+    normalizeFilesDirs(job_order_object)
+    adjustDirObjs(job_order_object, functools.partial(getListing, arvados_cwl.fsaccess.CollectionFsAccess("", api_client=api)))
 
     runner = arvados_cwl.ArvCwlRunner(api_client=arvados.api('v1', model=OrderedJsonModel()))
 
-    t = load_tool(job_order_object, runner.arvMakeTool)
+    t = load_tool(job_order_object, runner.arv_make_tool)
 
     args = argparse.Namespace()
     args.project_uuid = arvados.current_job()["owner_uuid"]
@@ -67,7 +70,7 @@ try:
     args.ignore_docker_for_reuse = False
     args.basedir = os.getcwd()
     args.cwl_runner_job={"uuid": arvados.current_job()["uuid"], "state": arvados.current_job()["state"]}
-    outputObj = runner.arvExecutor(t, job_order_object, **vars(args))
+    outputObj = runner.arv_executor(t, job_order_object, **vars(args))
 
     files = {}
     def capture(fileobj):