).execute(num_retries=self.arvrunner.num_retries)
if logc is not None:
- summerizer = crunchstat_summary.summarizer.NewSummarizer(self.uuid)
- summerizer.run()
- with logc.open("usage_report.html", "wt") as mr:
- mr.write(summerizer.html_report())
- logc.save()
+ try:
+ summerizer = crunchstat_summary.summarizer.NewSummarizer(self.uuid, arv=self.arvrunner.api)
+ summerizer.run()
+ with logc.open("usage_report.html", "wt") as mr:
+ mr.write(summerizer.html_report())
+ logc.save()
+ except Exception as e:
+ logger.error("%s unable to generate resource usage report",
+ self.arvrunner.label(self),
+ exc_info=(e if self.arvrunner.debug else False))
except WorkflowException as e:
# Only include a stack trace if in debug mode.
else:
uuid = process_or_uuid
process = None
- arv = arvados.api('v1')
+ arv = kwargs.get("arv") or arvados.api('v1')
if '-dz642-' in uuid:
if process is None:
class JobTreeSummarizer(MultiSummarizer):
"""Summarizes a job and all children listed in its components field."""
def __init__(self, job, label=None, **kwargs):
- arv = arvados.api('v1')
+ arv = kwargs.get("arv") or arvados.api('v1')
label = label or job.get('name', job['uuid'])
children = collections.OrderedDict()
children[job['uuid']] = JobSummarizer(job, label=label, **kwargs)
class ContainerRequestTreeSummarizer(MultiSummarizer):
def __init__(self, root, skip_child_jobs=False, **kwargs):
- arv = arvados.api('v1')
+ arv = kwargs.get("arv") or arvados.api('v1')
label = kwargs.pop('label', None) or root.get('name') or root['uuid']
root['name'] = label