X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b7de0ac72fe6e5270d58940f782e630789391f05..1875ddb761e4ae2909d2afe0718f3d0ad5f3ce0f:/crunch_scripts/run-command?ds=sidebyside diff --git a/crunch_scripts/run-command b/crunch_scripts/run-command index 6335523a74..2eb5589471 100755 --- a/crunch_scripts/run-command +++ b/crunch_scripts/run-command @@ -7,11 +7,14 @@ import subprocess import sys import shutil import subst +import time os.umask(0077) t = arvados.current_task().tmpdir +api = arvados.api('v1') + os.chdir(arvados.current_task().tmpdir) os.mkdir("tmpdir") os.mkdir("output") @@ -34,8 +37,12 @@ def sub_link(v): def sub_tmpdir(v): return os.path.join(arvados.current_task().tmpdir, 'tmpdir') +def sub_cores(v): + return os.environ['CRUNCH_NODE_SLOTS'] + subst.default_subs["link "] = sub_link subst.default_subs["tmpdir"] = sub_tmpdir +subst.default_subs["node.cores"] = sub_cores rcode = 1 @@ -71,13 +78,20 @@ finally: out = arvados.CollectionWriter() out.write_directory_tree(".", max_manifest_depth=0) - outuuid = out.finish() - arvados.api('v1').job_tasks().update(uuid=arvados.current_task()['uuid'], - body={ - 'output':outuuid, - 'success': (rcode == 0), - 'progress':1.0 - }).execute() + done = False + while not done: + try: + outuuid = out.finish() + api.job_tasks().update(uuid=arvados.current_task()['uuid'], + body={ + 'output':outuuid, + 'success': (rcode == 0), + 'progress':1.0 + }).execute() + done = True + except Exception as e: + print("run-command: caught exception: {}".format(e)) + time.sleep(5) if rcode == 0: os.chdir("..")