10151: Ensure that job_order_object is normalized and Directory listings are enumerated.
authorPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 28 Sep 2016 20:26:45 +0000 (16:26 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Wed, 28 Sep 2016 20:29:11 +0000 (16:29 -0400)
crunch_scripts/cwl-runner

index eec5aad8b267b8cdd80f81a6a341d162e0f7eec1..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,6 +54,8 @@ 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()))