From aa96d9c4c5c9b107867764d91109a35037c521ce Mon Sep 17 00:00:00 2001 From: Tom Morris Date: Mon, 19 Aug 2019 17:11:44 -0400 Subject: [PATCH] 15554 - Fix crunchstat-summary for running containers Change the decision logic for when to use the live logs to account for the fact that the log collection exists now before the container completes. Arvados-DCO-1.1-Signed-off-by: Tom Morris --- .../crunchstat_summary/summarizer.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/crunchstat-summary/crunchstat_summary/summarizer.py b/tools/crunchstat-summary/crunchstat_summary/summarizer.py index d99d3c1cf8..890f28c289 100644 --- a/tools/crunchstat-summary/crunchstat_summary/summarizer.py +++ b/tools/crunchstat-summary/crunchstat_summary/summarizer.py @@ -4,6 +4,7 @@ import arvados import collections +import arvados.util import crunchstat_summary.dygraphs import crunchstat_summary.reader import datetime @@ -526,7 +527,7 @@ def NewSummarizer(process_or_uuid, **kwargs): class ProcessSummarizer(Summarizer): - """Process is a job, pipeline, container, or container request.""" + """Process is a job, pipeline, or container request.""" def __init__(self, process, label=None, **kwargs): rdr = None @@ -535,17 +536,16 @@ class ProcessSummarizer(Summarizer): label = self.process.get('name', self.process['uuid']) # Pre-Arvados v1.4 everything is in 'log' # For 1.4+ containers have no logs and container_requests have them in 'log_uuid', not 'log' - log_collection = self.process.get('log') - if not log_collection: - log_collection = self.process.get('log_uuid') - if log_collection: + log_collection = self.process.get('log', self.process.get('log_uuid')) + if log_collection and self.process.get('state') != arvados.util.CR_UNCOMMITTED: try: rdr = crunchstat_summary.reader.CollectionReader(log_collection) except arvados.errors.NotFoundError as e: logger.warning("Trying event logs after failing to read " "log collection %s: %s", self.process['log'], e) if rdr is None: - rdr = crunchstat_summary.reader.LiveLogReader(self.process['uuid']) + uuid = self.process.get('container_uuid', self.process.get('uuid')) + rdr = crunchstat_summary.reader.LiveLogReader(uuid) label = label + ' (partial)' super(ProcessSummarizer, self).__init__(rdr, label=label, **kwargs) self.existing_constraints = self.process.get('runtime_constraints', {}) -- 2.30.2