From: Peter Amstutz Date: Wed, 9 Mar 2016 22:44:36 +0000 (-0500) Subject: 8654: cwl-runner crunch script X-Git-Tag: 1.1.0~1022^2~44 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/30443c31bf020b6f558c4b7d954599b24c1a98ce 8654: cwl-runner crunch script --- diff --git a/crunch_scripts/cwl-runner b/crunch_scripts/cwl-runner index 66a887e024..a5e8ac7832 100755 --- a/crunch_scripts/cwl-runner +++ b/crunch_scripts/cwl-runner @@ -1,5 +1,41 @@ #!/usr/bin/env python +import arvados import arvados_cwl +import arvados.collection +import arvados.util +from cwltool.process import shortname +import cwltool.main -print "Hello world" +api = arvados.api("v1") + +try: + job_order_object = arvados.current_job()['script_parameters'] + + for k,v in job_order_object.items(): + if arvados.util.keep_locator_pattern.match(v): + job_order_object[k] = "%s/%s" % (os.environ['TASK_KEEPMOUNT'], v) + + runner = arvados_cwl.ArvCwlRunner(api_client=arvados.api('v1', model=OrderedJsonModel())) + + t = cwltool.main.load_tool(job_order_object, False, True, runner.arvMakeTool, True) + + outputObj = runner.arvExecutor(t, job_order_object, "", None) + + c = arvados.collection.Collection(): + with c.open("cwl.output.json") as f: + json.dump(f, indent=4) + + api.job_tasks().update(uuid=arvados.current_task()['uuid'], + body={ + 'output': c.save_new(create_collection_record=False), + 'success': True, + 'progress':1.0 + }).execute() +except: + api.job_tasks().update(uuid=arvados.current_task()['uuid'], + body={ + 'output': None, + 'success': False, + 'progress':1.0 + }).execute()