From 633ca62917c1d5a3a40d6cf806bb3aad3a44bbf8 Mon Sep 17 00:00:00 2001 From: Jason Symons Date: Tue, 14 Sep 2021 22:07:13 -0400 Subject: [PATCH] Added SSL/TLS support to GELFRabbitHandler --- graypy/rabbitmq.py | 5 +++-- tests/unit/test_GELFRabbitHandler.py | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/graypy/rabbitmq.py b/graypy/rabbitmq.py index ea7be2cdf..dec9d7244 100644 --- a/graypy/rabbitmq.py +++ b/graypy/rabbitmq.py @@ -59,8 +59,8 @@ def __init__( """ self.url = url parsed = urlparse(url) - if parsed.scheme != "amqp": - raise ValueError('invalid URL scheme (expected "amqp"): %s' % url) + if parsed.scheme not in ("amqp", "amqps"): + raise ValueError('invalid URL scheme (expected "amqp" or "amqps"): %s' % url) host = parsed.hostname or "localhost" port = _ifnone(parsed.port, 5672) self.virtual_host = ( @@ -72,6 +72,7 @@ def __init__( "password": _ifnone(parsed.password, "guest"), "virtual_host": self.virtual_host, "insist": False, + "ssl": True if parsed.scheme == "amqps" else False } self.exchange = exchange self.exchange_type = exchange_type diff --git a/tests/unit/test_GELFRabbitHandler.py b/tests/unit/test_GELFRabbitHandler.py index 18cab9622..237d37cfd 100644 --- a/tests/unit/test_GELFRabbitHandler.py +++ b/tests/unit/test_GELFRabbitHandler.py @@ -28,6 +28,15 @@ def test_valid_url(): assert "amqp://localhost" == handler.url +def test_valid_ssl_url(): + """Test constructing :class:`graypy.rabbitmq.GELFRabbitHandler` with + a valid ssl rabbitmq url""" + handler = GELFRabbitHandler("amqps://localhost") + assert handler + assert "amqps://localhost" == handler.url + assert handler.cn_args["ssl"] + + @pytest.mark.xfail(reason="rabbitmq service is not up") def test_socket_creation_failure(): """Test attempting to open a socket to a rabbitmq instance when no such