X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7a233da0326bee6f4f6448528707c0cf8925d2ea..10aaf718b0795aa37a4e74063b0206c507ddc6fe:/sdk/cwl/arvados_cwl/__init__.py diff --git a/sdk/cwl/arvados_cwl/__init__.py b/sdk/cwl/arvados_cwl/__init__.py index 196bea0390..fe27b91ab2 100644 --- a/sdk/cwl/arvados_cwl/__init__.py +++ b/sdk/cwl/arvados_cwl/__init__.py @@ -212,6 +212,10 @@ def arg_parser(): # type: () -> argparse.ArgumentParser action="store_true", default=False, help=argparse.SUPPRESS) + parser.add_argument("--fast-parser", dest="fast_parser", + action="store_true", default=False, + help=argparse.SUPPRESS) + parser.add_argument("--thread-count", type=int, default=0, help="Number of threads to use for job submit and output collection.") @@ -280,6 +284,8 @@ def add_arv_hints(): "http://commonwl.org/cwltool#CUDARequirement", "http://arvados.org/cwl#UsePreemptible", "http://arvados.org/cwl#OutputCollectionProperties", + "http://arvados.org/cwl#KeepCacheTypeRequirement", + "http://arvados.org/cwl#OutOfMemoryRetry", ]) def exit_signal_handler(sigcode, frame): @@ -328,12 +334,15 @@ def main(args=sys.argv[1:], if api_client is None: api_client = arvados.safeapi.ThreadSafeApiCache( api_params={"model": OrderedJsonModel(), "timeout": arvargs.http_timeout}, - keep_params={"num_retries": 4}) + keep_params={"num_retries": 4}, + version='v1', + ) keep_client = api_client.keep # Make an API object now so errors are reported early. api_client.users().current().execute() if keep_client is None: - keep_client = arvados.keep.KeepClient(api_client=api_client, num_retries=4) + block_cache = arvados.keep.KeepBlockCache(disk_cache=True) + keep_client = arvados.keep.KeepClient(api_client=api_client, num_retries=4, block_cache=block_cache) executor = ArvCwlExecutor(api_client, arvargs, keep_client=keep_client, num_retries=4, stdout=stdout) except WorkflowException as e: logger.error(e, exc_info=(sys.exc_info()[1] if arvargs.debug else False)) @@ -344,6 +353,12 @@ def main(args=sys.argv[1:], # Note that unless in debug mode, some stack traces related to user # workflow errors may be suppressed. + + # Set the logging on most modules INFO (instead of default which is WARNING) + logger.setLevel(logging.INFO) + logging.getLogger('arvados').setLevel(logging.INFO) + logging.getLogger('arvados.keep').setLevel(logging.WARNING) + if arvargs.debug: logger.setLevel(logging.DEBUG) logging.getLogger('arvados').setLevel(logging.DEBUG) @@ -373,9 +388,10 @@ def main(args=sys.argv[1:], # unit tests. stdout = None - if arvargs.submit and (arvargs.workflow.startswith("arvwf:") or workflow_uuid_pattern.match(arvargs.workflow)): + if arvargs.workflow.startswith("arvwf:") or workflow_uuid_pattern.match(arvargs.workflow) or arvargs.workflow.startswith("keep:"): executor.loadingContext.do_validate = False - executor.fast_submit = True + if arvargs.submit: + executor.fast_submit = True return cwltool.main.main(args=arvargs, stdout=stdout,