mirror of
https://github.com/ansible/awx.git
synced 2026-05-06 08:57:35 -02:30
Merge pull request #1716 from AlanCoding/sinfo
Include full stack trace for DB settings error
This commit is contained in:
@@ -5,6 +5,8 @@ import logging
|
|||||||
import sys
|
import sys
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
import StringIO
|
||||||
|
import traceback
|
||||||
|
|
||||||
import six
|
import six
|
||||||
|
|
||||||
@@ -62,11 +64,19 @@ __all__ = ['SettingsWrapper', 'get_settings_to_cache', 'SETTING_CACHE_NOTSET']
|
|||||||
def _log_database_error():
|
def _log_database_error():
|
||||||
try:
|
try:
|
||||||
yield
|
yield
|
||||||
except (ProgrammingError, OperationalError) as e:
|
except (ProgrammingError, OperationalError):
|
||||||
if 'migrate' in sys.argv and get_tower_migration_version() < '310':
|
if 'migrate' in sys.argv and get_tower_migration_version() < '310':
|
||||||
logger.info('Using default settings until version 3.1 migration.')
|
logger.info('Using default settings until version 3.1 migration.')
|
||||||
else:
|
else:
|
||||||
logger.warning('Database settings are not available, using defaults (%s)', e, exc_info=True)
|
# Somewhat ugly - craming the full stack trace into the log message
|
||||||
|
# the available exc_info does not give information about the real caller
|
||||||
|
# TODO: replace in favor of stack_info kwarg in python 3
|
||||||
|
sio = StringIO.StringIO()
|
||||||
|
traceback.print_stack(file=sio)
|
||||||
|
sinfo = sio.getvalue()
|
||||||
|
sio.close()
|
||||||
|
sinfo = sinfo.strip('\n')
|
||||||
|
logger.warning('Database settings are not available, using defaults, logged from:\n{}'.format(sinfo))
|
||||||
finally:
|
finally:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user