diff --git a/oslo/messaging/_drivers/impl_rabbit.py b/oslo/messaging/_drivers/impl_rabbit.py index 42f0cf4d7..b06b3e68c 100644 --- a/oslo/messaging/_drivers/impl_rabbit.py +++ b/oslo/messaging/_drivers/impl_rabbit.py @@ -42,8 +42,9 @@ rabbit_opts = [ cfg.StrOpt('kombu_ssl_version', default='', help='SSL version to use (valid only if SSL enabled). ' - 'valid values are TLSv1 and SSLv23. SSLv2 and ' - 'SSLv3 may be available on some distributions.' + 'Valid values are TLSv1 and SSLv23. SSLv2, SSLv3, ' + 'TLSv1_1, and TLSv1_2 may be available on some ' + 'distributions.' ), cfg.StrOpt('kombu_ssl_keyfile', default='', @@ -522,15 +523,18 @@ class Connection(object): "sslv23": ssl.PROTOCOL_SSLv23 } - try: - _SSL_PROTOCOLS["sslv2"] = ssl.PROTOCOL_SSLv2 - except AttributeError: - pass - - try: - _SSL_PROTOCOLS["sslv3"] = ssl.PROTOCOL_SSLv3 - except AttributeError: - pass + _OPTIONAL_PROTOCOLS = { + 'sslv2': 'PROTOCOL_SSLv2', + 'sslv3': 'PROTOCOL_SSLv3', + 'tlsv1_1': 'PROTOCOL_TLSv1_1', + 'tlsv1_2': 'PROTOCOL_TLSv1_2', + } + for protocol in _OPTIONAL_PROTOCOLS: + try: + _SSL_PROTOCOLS[protocol] = getattr(ssl, + _OPTIONAL_PROTOCOLS[protocol]) + except AttributeError: + pass @classmethod def validate_ssl_version(cls, version):