X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/39189b90bd2f73d4f4938049ffa4441a967ca24c..2b27132d13fd72f29dbab2297f0d2dc1c110eed1:/sdk/cwl/arvados_cwl/__init__.py diff --git a/sdk/cwl/arvados_cwl/__init__.py b/sdk/cwl/arvados_cwl/__init__.py index 13135d0b68..3b14701a9b 100644 --- a/sdk/cwl/arvados_cwl/__init__.py +++ b/sdk/cwl/arvados_cwl/__init__.py @@ -11,6 +11,7 @@ import threading import hashlib import copy import json +import re from functools import partial import pkg_resources # part of setuptools @@ -33,7 +34,7 @@ from .arvtool import ArvadosCommandTool from .arvworkflow import ArvadosWorkflow, upload_workflow from .fsaccess import CollectionFsAccess, CollectionFetcher, collectionResolver from .perf import Perf -from .pathmapper import FinalOutputPathMapper +from .pathmapper import NoFollowPathMapper from ._version import __version__ from cwltool.pack import pack @@ -200,9 +201,6 @@ class ArvCwlRunner(object): def check_features(self, obj): if isinstance(obj, dict): - if obj.get("class") == "InitialWorkDirRequirement": - if self.work_api == "containers": - raise UnsupportedRequirement("InitialWorkDirRequirement not supported with --api=containers") if obj.get("writable"): raise SourceLine(obj, "writable", UnsupportedRequirement).makeError("InitialWorkDir feature 'writable: true' not supported") if obj.get("class") == "CommandLineTool": @@ -233,7 +231,7 @@ class ArvCwlRunner(object): adjustDirObjs(outputObj, capture) adjustFileObjs(outputObj, capture) - generatemapper = FinalOutputPathMapper(files, "", "", separateDirs=False) + generatemapper = NoFollowPathMapper(files, "", "", separateDirs=False) final = arvados.collection.Collection(api_client=self.api, keep_client=self.keep_client, @@ -317,6 +315,10 @@ class ArvCwlRunner(object): body={ 'output': self.final_output_collection.portable_data_hash(), }).execute(num_retries=self.num_retries) + self.api.collections().update(uuid=self.final_output_collection.manifest_locator(), + body={ + 'is_trashed': True + }).execute(num_retries=self.num_retries) except Exception as e: logger.info("Setting container output: %s", e) elif self.work_api == "jobs" and "TASK_UUID" in os.environ: @@ -628,6 +630,7 @@ def arg_parser(): # type: () -> argparse.ArgumentParser def add_arv_hints(): cache = {} + cwltool.draft2tool.ACCEPTLIST_EN_RELAXED_RE = re.compile(r".*") res = pkg_resources.resource_stream(__name__, 'arv-cwl-schema.yml') cache["http://arvados.org/cwl"] = res.read() res.close() @@ -680,9 +683,11 @@ def main(args, stdout, stderr, api_client=None, keep_client=None): if arvargs.debug: logger.setLevel(logging.DEBUG) + logging.getLogger('arvados').setLevel(logging.DEBUG) if arvargs.quiet: logger.setLevel(logging.WARN) + logging.getLogger('arvados').setLevel(logging.WARN) logging.getLogger('arvados.arv-run').setLevel(logging.WARN) if arvargs.metrics: