From 65c459d1f91ef6827d50eecad8f791207fcc8d6f Mon Sep 17 00:00:00 2001 From: Felipe Monteiro Date: Sat, 10 Mar 2018 16:39:48 -0500 Subject: [PATCH] Improve secrets_manager logging after 500 Internal Server Error This is to add better logging to assist with debugging 500 Internal Server Errors that manifest from either internal bugs in Deckhand or document typos/errors ingested by Deckhand during document substitution. Change-Id: I5f4c1cb07bea8e6546d08a858d4f83a24d75ef5a --- deckhand/engine/secrets_manager.py | 17 +++++++++++++++-- deckhand/errors.py | 4 +++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/deckhand/engine/secrets_manager.py b/deckhand/engine/secrets_manager.py index f1dd2b02..438c4636 100644 --- a/deckhand/engine/secrets_manager.py +++ b/deckhand/engine/secrets_manager.py @@ -278,13 +278,26 @@ class SecretsSubstitution(object): LOG.error(message) raise errors.UnknownSubstitutionError(details=message) except errors.BarbicanException as e: - LOG.error('Failed to resolve a Barbican reference.') + LOG.error('Failed to resolve a Barbican reference for ' + 'substitution source document [%s] %s referenced' + ' in document [%s] %s. Details: %s', src_schema, + src_name, document.schema, document.name, + e.format_message()) raise errors.UnknownSubstitutionError( + src_schema=src_schema, src_name=src_name, + document_name=document.name, + document_schema=document.schema, details=e.format_message()) except Exception as e: LOG.error('Unexpected exception occurred while attempting ' - 'secret substitution. %s', six.text_type(e)) + 'substitution using source document [%s] %s ' + 'referenced in [%s] %s. Details: %s', src_schema, + src_name, document.schema, document.name, + six.text_type(e)) raise errors.UnknownSubstitutionError( + src_schema=src_schema, src_name=src_name, + document_name=document.name, + document_schema=document.schema, details=six.text_type(e)) yield document diff --git a/deckhand/errors.py b/deckhand/errors.py index 91a70a57..80631bd9 100644 --- a/deckhand/errors.py +++ b/deckhand/errors.py @@ -385,5 +385,7 @@ class UnknownSubstitutionError(DeckhandException): **Troubleshoot:** """ msg_fmt = ('An unknown exception occurred while trying to perform ' - 'substitution. Details: %(details)s') + 'substitution using source document [%(src_schema)s] ' + '%(src_name)s contained in document [%(document_schema)s] ' + '%(document_name)s. Details: %(details)s') code = 500