From ec8bad3bf4f6e34c703ad429fb6b670b80ac02fb Mon Sep 17 00:00:00 2001 From: Evgeny L Date: Wed, 31 Oct 2018 14:39:47 -0700 Subject: [PATCH] Fix logging when "Duplicate document exists" error occurs Currently validation fails with "KeyError: 'schema'", which makes it hard to determine a root cause of error. Change-Id: Ifd40faf485578cc0a133e17650f8df6758a6c8ae --- deckhand/engine/layering.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/deckhand/engine/layering.py b/deckhand/engine/layering.py index d2719cb8..d2d199a6 100644 --- a/deckhand/engine/layering.py +++ b/deckhand/engine/layering.py @@ -329,17 +329,18 @@ class DocumentLayering(object): error_list = [] for result in results: for e in result['errors']: - LOG.error('Document [%s, %s] %s failed with pre-validation ' - 'error: %s.', e['schema'], e['layer'], e['name'], - e['message']) - error_list.append( - ValidationMessage( - message=e['message'], - doc_schema=e['schema'], - doc_name=e['name'], - doc_layer=e['layer'] - ) - ) + for d in e['documents']: + LOG.error('Document [%s, %s] %s failed with ' + 'pre-validation error: "%s". Diagnostic: "%s".', + d['schema'], d['layer'], d['name'], + e['message'], e['diagnostic']) + + error_list.append( + ValidationMessage( + message=e['message'], + doc_schema=d['schema'], + doc_name=d['name'], + doc_layer=d['layer'])) if error_list: raise errors.InvalidDocumentFormat(error_list=error_list)