projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '10467-client-disconnect' refs #10467
[arvados.git]
/
sdk
/
cwl
/
arvados_cwl
/
runner.py
diff --git
a/sdk/cwl/arvados_cwl/runner.py
b/sdk/cwl/arvados_cwl/runner.py
index a1142544f5bf2e16150d56dd4d0b707cfd4db984..2d13e6640b1c57b3ccfb22c9c3c9bac79b6ecda8 100644
(file)
--- a/
sdk/cwl/arvados_cwl/runner.py
+++ b/
sdk/cwl/arvados_cwl/runner.py
@@
-161,7
+161,9
@@
def arvados_jobs_image(arvrunner):
return img
class Runner(object):
return img
class Runner(object):
- def __init__(self, runner, tool, job_order, enable_reuse, output_name):
+ def __init__(self, runner, tool, job_order, enable_reuse,
+ output_name, output_tags, submit_runner_ram=0,
+ name=None):
self.arvrunner = runner
self.tool = tool
self.job_order = job_order
self.arvrunner = runner
self.tool = tool
self.job_order = job_order
@@
-170,12
+172,23
@@
class Runner(object):
self.uuid = None
self.final_output = None
self.output_name = output_name
self.uuid = None
self.final_output = None
self.output_name = output_name
+ self.output_tags = output_tags
+ self.name = name
+
+ if submit_runner_ram:
+ self.submit_runner_ram = submit_runner_ram
+ else:
+ self.submit_runner_ram = 1024
+
+ if self.submit_runner_ram <= 0:
+ raise Exception("Value of --submit-runner-ram must be greater than zero")
def update_pipeline_component(self, record):
pass
def arvados_job_spec(self, *args, **kwargs):
def update_pipeline_component(self, record):
pass
def arvados_job_spec(self, *args, **kwargs):
- self.name = os.path.basename(self.tool.tool["id"])
+ if self.name is None:
+ self.name = os.path.basename(self.tool.tool["id"])
workflowmapper = upload_instance(self.arvrunner, self.name, self.tool, self.job_order)
adjustDirObjs(self.job_order, trim_listing)
return workflowmapper
workflowmapper = upload_instance(self.arvrunner, self.name, self.tool, self.job_order)
adjustDirObjs(self.job_order, trim_listing)
return workflowmapper
@@
-194,7
+207,7
@@
class Runner(object):
else:
processStatus = "permanentFail"
else:
processStatus = "permanentFail"
- outputs =
None
+ outputs =
{}
try:
try:
self.final_output = record["output"]
try:
try:
self.final_output = record["output"]
@@
-202,8
+215,10
@@
class Runner(object):
api_client=self.arvrunner.api,
keep_client=self.arvrunner.keep_client,
num_retries=self.arvrunner.num_retries)
api_client=self.arvrunner.api,
keep_client=self.arvrunner.keep_client,
num_retries=self.arvrunner.num_retries)
- with outc.open("cwl.output.json") as f:
- outputs = json.load(f)
+ if "cwl.output.json" in outc:
+ with outc.open("cwl.output.json") as f:
+ if f.size() > 0:
+ outputs = json.load(f)
def keepify(fileobj):
path = fileobj["location"]
if not path.startswith("keep:"):
def keepify(fileobj):
path = fileobj["location"]
if not path.startswith("keep:"):
@@
-211,7
+226,8
@@
class Runner(object):
adjustFileObjs(outputs, keepify)
adjustDirObjs(outputs, keepify)
except Exception as e:
adjustFileObjs(outputs, keepify)
adjustDirObjs(outputs, keepify)
except Exception as e:
- logger.e
rror
("While getting final output object: %s", e)
+ logger.e
xception
("While getting final output object: %s", e)
self.arvrunner.output_callback(outputs, processStatus)
finally:
self.arvrunner.output_callback(outputs, processStatus)
finally:
- del self.arvrunner.processes[record["uuid"]]
+ if record["uuid"] in self.arvrunner.processes:
+ del self.arvrunner.processes[record["uuid"]]