From 015b19d8c3c5c6bcb1f5f365b6c3b01dd86a335b Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Wed, 30 May 2018 15:21:51 -0400 Subject: [PATCH] interpret null protocol as logging.NullHandler --- awx/main/tests/unit/utils/test_handlers.py | 11 +++++++++++ awx/main/utils/handlers.py | 11 ++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/awx/main/tests/unit/utils/test_handlers.py b/awx/main/tests/unit/utils/test_handlers.py index f57d86158d..eb94727f21 100644 --- a/awx/main/tests/unit/utils/test_handlers.py +++ b/awx/main/tests/unit/utils/test_handlers.py @@ -127,6 +127,17 @@ def test_invalid_kwarg_to_real_handler(): assert not hasattr(handler, 'verify_cert') +def test_protocol_not_specified(): + settings = LazySettings() + settings.configure(**{ + 'LOG_AGGREGATOR_HOST': 'https://server.invalid', + 'LOG_AGGREGATOR_PORT': 22222, + 'LOG_AGGREGATOR_PROTOCOL': None # awx/settings/defaults.py + }) + handler = AWXProxyHandler().get_handler(custom_settings=settings) + assert isinstance(handler, logging.NullHandler) + + def test_base_logging_handler_emit_system_tracking(dummy_log_record): handler = BaseHandler(host='127.0.0.1', indv_facts=True) handler.setFormatter(LogstashFormatter()) diff --git a/awx/main/utils/handlers.py b/awx/main/utils/handlers.py index 214c40ff11..fcccf5d9b1 100644 --- a/awx/main/utils/handlers.py +++ b/awx/main/utils/handlers.py @@ -257,6 +257,15 @@ class UDPHandler(BaseHandler): return SocketResult(True, reason=self.message) +class AWXNullHandler(logging.NullHandler): + ''' + Only additional this does is accept arbitrary __init__ params because + the proxy handler does not (yet) work with arbitrary handler classes + ''' + def __init__(self, *args, **kwargs): + super(AWXNullHandler, self).__init__() + + HANDLER_MAPPING = { 'https': BaseHTTPSHandler, 'tcp': TCPHandler, @@ -285,7 +294,7 @@ class AWXProxyHandler(logging.Handler): self._old_kwargs = {} def get_handler_class(self, protocol): - return HANDLER_MAPPING[protocol] + return HANDLER_MAPPING.get(protocol, AWXNullHandler) def get_handler(self, custom_settings=None, force_create=False): new_kwargs = {}