Improve logging of failable deliverables
The pungi.global.log should show subvariant for each failed deliverable (if available). When the compose finishes, there is a new log file in logs/global/deliverables.json containing details about all deliverables as triples of (variant, arch, subvariant). * `required` lists all deliverables that can not fail * `attempted` lists all failable deliverables that were started * `failed` is a subset of `attempted` and only contains deliverables that failed If the compose fails, the lists may be incomplete. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
ad32b73918
commit
18b6020ac5
13 changed files with 70 additions and 36 deletions
|
|
@ -459,17 +459,26 @@ def process_args(fmt, args):
|
|||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def failable(compose, variant, arch, deliverable, msg=None):
|
||||
def failable(compose, variant, arch, deliverable, subvariant=None):
|
||||
"""If a deliverable can fail, log a message and go on as if it succeeded."""
|
||||
msg = msg or deliverable.capitalize()
|
||||
msg = deliverable.replace('-', ' ').capitalize()
|
||||
can_fail = compose.can_fail(variant, arch, deliverable)
|
||||
if can_fail:
|
||||
compose.attempt_deliverable(variant, arch, deliverable, subvariant)
|
||||
else:
|
||||
compose.require_deliverable(variant, arch, deliverable, subvariant)
|
||||
try:
|
||||
yield
|
||||
except Exception as exc:
|
||||
if not compose.can_fail(variant, arch, deliverable):
|
||||
if not can_fail:
|
||||
raise
|
||||
else:
|
||||
compose.log_info('[FAIL] %s (variant %s, arch %s) failed, but going on anyway.'
|
||||
% (msg, variant.uid if variant else 'None', arch))
|
||||
compose.fail_deliverable(variant, arch, deliverable, subvariant)
|
||||
ident = 'variant %s, arch %s' % (variant.uid if variant else 'None', arch)
|
||||
if subvariant:
|
||||
ident += ', subvariant %s' % subvariant
|
||||
compose.log_info('[FAIL] %s (%s) failed, but going on anyway.'
|
||||
% (msg, ident))
|
||||
compose.log_info(str(exc))
|
||||
tb = traceback.format_exc()
|
||||
compose.log_debug(tb)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue