Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-oslo.messaging for 
openSUSE:Factory checked in at 2026-07-14 13:49:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.messaging (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.messaging.new.1991 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.messaging"

Tue Jul 14 13:49:20 2026 rev:38 rq:1365418 version:18.2.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-oslo.messaging/python-oslo.messaging.changes  
    2026-06-08 14:27:53.783469386 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.messaging.new.1991/python-oslo.messaging.changes
    2026-07-14 13:50:34.344306321 +0200
@@ -1,0 +2,10 @@
+Mon Jul 13 16:27:35 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 18.2.0:
+  * zuul: Use openstack-python3-next-jobs template
+  * pre-commit: Bump versions
+  * Do not install code to build release notes
+  * Remove Python 3.10 support
+  * Bump kombu
+
+-------------------------------------------------------------------

Old:
----
  oslo_messaging-18.1.0.tar.gz

New:
----
  oslo_messaging-18.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-oslo.messaging.spec ++++++
--- /var/tmp/diff_new_pack.9IRHVZ/_old  2026-07-14 13:50:34.928326426 +0200
+++ /var/tmp/diff_new_pack.9IRHVZ/_new  2026-07-14 13:50:34.932326564 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-oslo.messaging
-Version:        18.1.0
+Version:        18.2.0
 Release:        0
 Summary:        OpenStack oslo.messaging library
 License:        Apache-2.0
@@ -34,7 +34,7 @@
 BuildRequires:  %{python_module fixtures >= 3.0.0}
 BuildRequires:  %{python_module futurist >= 1.2.0}
 BuildRequires:  %{python_module greenlet >= 0.4.15}
-BuildRequires:  %{python_module kombu >= 4.6.8}
+BuildRequires:  %{python_module kombu >= 5.2.0}
 BuildRequires:  %{python_module oslo.config >= 5.2.0}
 BuildRequires:  %{python_module oslo.context >= 5.3.0}
 BuildRequires:  %{python_module oslo.i18n}
@@ -60,7 +60,7 @@
 Requires:       python-debtcollector >= 1.2.0
 Requires:       python-futurist >= 1.2.0
 Requires:       python-greenlet >= 0.4.15
-Requires:       python-kombu >= 4.6.8
+Requires:       python-kombu >= 5.2.0
 Requires:       python-oslo.config >= 5.2.0
 Requires:       python-oslo.context >= 5.3.0
 Requires:       python-oslo.i18n

++++++ oslo_messaging-18.1.0.tar.gz -> oslo_messaging-18.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/.pre-commit-config.yaml 
new/oslo_messaging-18.2.0/.pre-commit-config.yaml
--- old/oslo_messaging-18.1.0/.pre-commit-config.yaml   2026-05-20 
10:57:32.000000000 +0200
+++ new/oslo_messaging-18.2.0/.pre-commit-config.yaml   2026-07-10 
15:49:08.000000000 +0200
@@ -13,17 +13,17 @@
       - id: check-yaml
         files: .*\.(yaml|yml)$
   - repo: https://opendev.org/openstack/hacking
-    rev: 7.0.0
+    rev: 8.1.0
     hooks:
       - id: hacking
         additional_dependencies: []
   - repo: https://github.com/PyCQA/bandit
-    rev: 1.8.6
+    rev: 1.9.4
     hooks:
       - id: bandit
         args: ['-x', 'tests,tools']
   - repo: https://github.com/asottile/pyupgrade
-    rev: v3.20.0
+    rev: v3.21.2
     hooks:
       - id: pyupgrade
         args: [--py310-plus]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/.zuul.yaml 
new/oslo_messaging-18.2.0/.zuul.yaml
--- old/oslo_messaging-18.1.0/.zuul.yaml        2026-05-20 10:57:32.000000000 
+0200
+++ new/oslo_messaging-18.2.0/.zuul.yaml        2026-07-10 15:49:08.000000000 
+0200
@@ -1,15 +1,17 @@
+---
+
 - job:
-    name: oslo.messaging-tox-py310-func-scenario01
-    parent: openstack-tox-py310
+    name: oslo.messaging-tox-py311-func-scenario01
+    parent: openstack-tox-py311
     vars:
-      tox_envlist: py310-func-scenario01
+      tox_envlist: py311-func-scenario01
       bindep_profile: rabbit
 
 - job:
-    name: oslo.messaging-tox-py310-func-scenario02
-    parent: openstack-tox-py310
+    name: oslo.messaging-tox-py311-func-scenario02
+    parent: openstack-tox-py311
     vars:
-      tox_envlist: py310-func-scenario02
+      tox_envlist: py311-func-scenario02
       bindep_profile: rabbit kafka
 
 # Begin v3 native jobs
@@ -83,13 +85,14 @@
       - lib-forward-testing-python3
       - openstack-cover-jobs
       - openstack-python3-jobs
+      - openstack-python3-next-jobs
       - periodic-stable-jobs
       - publish-openstack-docs-pti
       - release-notes-jobs-python3
     check:
       jobs:
-        - oslo.messaging-tox-py310-func-scenario01
-        - oslo.messaging-tox-py310-func-scenario02:
+        - oslo.messaging-tox-py311-func-scenario01
+        - oslo.messaging-tox-py311-func-scenario02:
             voting: false
         - oslo.messaging-src-dsvm-full-rabbit
         - oslo.messaging-src-dsvm-full-kafka-hybrid:
@@ -100,5 +103,5 @@
             voting: false
     gate:
       jobs:
-        - oslo.messaging-tox-py310-func-scenario01
+        - oslo.messaging-tox-py311-func-scenario01
         - oslo.messaging-src-dsvm-full-rabbit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/AUTHORS 
new/oslo_messaging-18.2.0/AUTHORS
--- old/oslo_messaging-18.1.0/AUTHORS   2026-05-20 10:58:00.000000000 +0200
+++ new/oslo_messaging-18.2.0/AUTHORS   2026-07-10 15:50:00.000000000 +0200
@@ -138,6 +138,7 @@
 Matt Riedemann <[email protected]>
 Matt Riedemann <[email protected]>
 Matthew Booth <[email protected]>
+Max Lamprecht <[email protected]>
 Mehdi Abaakouk <[email protected]>
 Mehdi Abaakouk <[email protected]>
 Mehdi Abaakouk <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/ChangeLog 
new/oslo_messaging-18.2.0/ChangeLog
--- old/oslo_messaging-18.1.0/ChangeLog 2026-05-20 10:58:00.000000000 +0200
+++ new/oslo_messaging-18.2.0/ChangeLog 2026-07-10 15:50:00.000000000 +0200
@@ -1,6 +1,15 @@
 CHANGES
 =======
 
+18.2.0
+------
+
+* zuul: Use openstack-python3-next-jobs template
+* pre-commit: Bump versions
+* Do not install code to build release notes
+* Remove Python 3.10 support
+* Bump kombu
+
 18.1.0
 ------
 
@@ -11,6 +20,7 @@
 ------
 
 * tox: Use new constraints option
+* Revert "Use StopWatch timer when waiting for msg"
 * Remove deprecated heartbeat\_in\_pthread option from RabbitMQ driver
 * Update master for stable/2026.1
 * Replace deprecated datetime.datetime.utcnow
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/PKG-INFO 
new/oslo_messaging-18.2.0/PKG-INFO
--- old/oslo_messaging-18.1.0/PKG-INFO  2026-05-20 10:58:00.186659600 +0200
+++ new/oslo_messaging-18.2.0/PKG-INFO  2026-07-10 15:50:00.309638000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: oslo.messaging
-Version: 18.1.0
+Version: 18.2.0
 Summary: Oslo Messaging API
 Author-email: OpenStack <[email protected]>
 Project-URL: Homepage, https://docs.openstack.org/oslo.messaging
@@ -12,13 +12,13 @@
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pbr>=2.0.0
@@ -35,7 +35,7 @@
 Requires-Dist: WebOb>=1.7.1
 Requires-Dist: PyYAML>=3.13
 Requires-Dist: amqp>=2.5.2
-Requires-Dist: kombu>=4.6.8
+Requires-Dist: kombu>=5.2.0
 Requires-Dist: oslo.middleware>=3.31.0
 Requires-Dist: oslo.metrics>=0.2.1
 Provides-Extra: kafka
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo.messaging.egg-info/PKG-INFO 
new/oslo_messaging-18.2.0/oslo.messaging.egg-info/PKG-INFO
--- old/oslo_messaging-18.1.0/oslo.messaging.egg-info/PKG-INFO  2026-05-20 
10:58:00.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo.messaging.egg-info/PKG-INFO  2026-07-10 
15:50:00.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: oslo.messaging
-Version: 18.1.0
+Version: 18.2.0
 Summary: Oslo Messaging API
 Author-email: OpenStack <[email protected]>
 Project-URL: Homepage, https://docs.openstack.org/oslo.messaging
@@ -12,13 +12,13 @@
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pbr>=2.0.0
@@ -35,7 +35,7 @@
 Requires-Dist: WebOb>=1.7.1
 Requires-Dist: PyYAML>=3.13
 Requires-Dist: amqp>=2.5.2
-Requires-Dist: kombu>=4.6.8
+Requires-Dist: kombu>=5.2.0
 Requires-Dist: oslo.middleware>=3.31.0
 Requires-Dist: oslo.metrics>=0.2.1
 Provides-Extra: kafka
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo.messaging.egg-info/SOURCES.txt 
new/oslo_messaging-18.2.0/oslo.messaging.egg-info/SOURCES.txt
--- old/oslo_messaging-18.1.0/oslo.messaging.egg-info/SOURCES.txt       
2026-05-20 10:58:00.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo.messaging.egg-info/SOURCES.txt       
2026-07-10 15:50:00.000000000 +0200
@@ -174,6 +174,7 @@
 releasenotes/notes/oslo-metrics-support-fe16343a637cc14b.yaml
 releasenotes/notes/pika-driver-has-been-deprecated-e2407fa53c91fe5c.yaml
 releasenotes/notes/rabbit-no-wait-for-ack-9e5de3e1320d7660.yaml
+releasenotes/notes/rabbit-ssl-enforce-hostname-verification-117efd0c836c9187.yaml
 releasenotes/notes/rabbit-ssl-hostname-verification-option.yaml
 releasenotes/notes/rabbit_queue_manager-363209285cbbe257.yaml
 releasenotes/notes/rabbit_quorum_typo-9c06a9fd8d767f53.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo.messaging.egg-info/pbr.json 
new/oslo_messaging-18.2.0/oslo.messaging.egg-info/pbr.json
--- old/oslo_messaging-18.1.0/oslo.messaging.egg-info/pbr.json  2026-05-20 
10:58:00.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo.messaging.egg-info/pbr.json  2026-07-10 
15:50:00.000000000 +0200
@@ -1 +1 @@
-{"git_version": "8ea2d5b4", "is_release": true}
\ No newline at end of file
+{"git_version": "8ca4a4bf", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo.messaging.egg-info/requires.txt 
new/oslo_messaging-18.2.0/oslo.messaging.egg-info/requires.txt
--- old/oslo_messaging-18.1.0/oslo.messaging.egg-info/requires.txt      
2026-05-20 10:58:00.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo.messaging.egg-info/requires.txt      
2026-07-10 15:50:00.000000000 +0200
@@ -12,7 +12,7 @@
 WebOb>=1.7.1
 PyYAML>=3.13
 amqp>=2.5.2
-kombu>=4.6.8
+kombu>=5.2.0
 oslo.middleware>=3.31.0
 oslo.metrics>=0.2.1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo_messaging/_drivers/amqpdriver.py 
new/oslo_messaging-18.2.0/oslo_messaging/_drivers/amqpdriver.py
--- old/oslo_messaging-18.1.0/oslo_messaging/_drivers/amqpdriver.py     
2026-05-20 10:57:32.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo_messaging/_drivers/amqpdriver.py     
2026-07-10 15:49:08.000000000 +0200
@@ -514,18 +514,12 @@
         self._wrn_threshold = 10
 
     def get(self, msg_id, timeout):
-        watch = timeutils.StopWatch(duration=timeout)
-        watch.start()
-        while not watch.expired():
-            try:
-                # NOTE(amorin) we can't use block=True
-                # See lp-2035113
-                return self._queues[msg_id].get(block=False)
-            except queue.Empty:
-                time.sleep(0.5)
-        raise oslo_messaging.MessagingTimeout(
-            'Timed out waiting for a reply '
-            'to message ID %s' % msg_id)
+        try:
+            return self._queues[msg_id].get(block=True, timeout=timeout)
+        except queue.Empty:
+            raise oslo_messaging.MessagingTimeout(
+                'Timed out waiting for a reply '
+                'to message ID %s' % msg_id)
 
     def put(self, msg_id, message_data):
         LOG.debug('Received RPC response for msg %s', msg_id)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo_messaging/_drivers/impl_rabbit.py 
new/oslo_messaging-18.2.0/oslo_messaging/_drivers/impl_rabbit.py
--- old/oslo_messaging-18.1.0/oslo_messaging/_drivers/impl_rabbit.py    
2026-05-20 10:57:32.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo_messaging/_drivers/impl_rabbit.py    
2026-07-10 15:49:08.000000000 +0200
@@ -16,7 +16,6 @@
 import contextlib
 import errno
 import functools
-import importlib.metadata
 import itertools
 import math
 import os
@@ -38,7 +37,6 @@
 from oslo_log import log as logging
 from oslo_utils import eventletutils
 from oslo_utils import netutils
-from oslo_utils import versionutils
 
 import oslo_messaging
 from oslo_messaging._drivers import amqp as rpc_amqp
@@ -89,9 +87,7 @@
     cfg.BoolOpt('ssl_enforce_hostname_verification',
                 default=True,
                 deprecated_for_removal=True,
-                deprecated_reason='Hostname verification should remain '
-                                  'enabled once operators have completed '
-                                  'the migration.',
+                deprecated_reason='Verification is always enabled now',
                 help='When true, verify the broker hostname against the '
                      'certificate when ``ssl_ca_file`` is set. When false, '
                      '``ssl`` with ``ssl_ca_file`` still validates the '
@@ -758,11 +754,7 @@
             self.ssl_key_file = driver_conf.ssl_key_file
             self.ssl_cert_file = driver_conf.ssl_cert_file
             self.ssl_ca_file = driver_conf.ssl_ca_file
-            self.ssl_enforce_hostname_verification = (
-                driver_conf.ssl_enforce_hostname_verification)
-            self.ssl_server_hostname = None
-            if (self.ssl_ca_file and self.ssl_enforce_hostname_verification):
-                self.ssl_server_hostname = self._get_ssl_server_hostname(url)
+            self.ssl_server_hostname = self._get_ssl_server_hostname(url)
 
         self._url = ''
         if url.hosts:
@@ -936,27 +928,6 @@
     def _get_ssl_server_hostname(url):
         if len(url.hosts) == 1:
             return url.hosts[0].hostname
-        if len(url.hosts) > 1:
-            kombu_ver = importlib.metadata.version('kombu')
-            try:
-                kombu_substitutes_failover_hostname = (
-                    versionutils.convert_version_to_tuple(kombu_ver) >=
-                    (5, 2, 0)
-                )
-            except ValueError:
-                kombu_substitutes_failover_hostname = False
-            if kombu_substitutes_failover_hostname:
-                # Kombu >= 5.2.0 substitutes None with the selected broker
-                # hostname after failover chooses the active URL.
-                return None
-            LOG.warning(
-                "Multi-host RabbitMQ TLS hostname verification with Kombu "
-                "before 5.2.0 cannot automatically track the active failover "
-                "broker for the TLS server name. Using the first configured "
-                "broker hostname as a best effort. Upgrade to Kombu >= "
-                "5.2.0, or use a broker certificate (SAN or wildcard) that "
-                "covers all configured broker hostnames.")
-            return url.hosts[0].hostname
         return None
 
     def _get_quorum_configurations(self, driver_conf):
@@ -1001,8 +972,7 @@
                 # We might want to allow variations in the
                 # future with this?
                 ssl_params['cert_reqs'] = ssl.CERT_REQUIRED
-                if self.ssl_enforce_hostname_verification:
-                    ssl_params['server_hostname'] = self.ssl_server_hostname
+                ssl_params['server_hostname'] = self.ssl_server_hostname
             return ssl_params or True
         return False
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/oslo_messaging/tests/drivers/test_impl_rabbit.py 
new/oslo_messaging-18.2.0/oslo_messaging/tests/drivers/test_impl_rabbit.py
--- old/oslo_messaging-18.1.0/oslo_messaging/tests/drivers/test_impl_rabbit.py  
2026-05-20 10:57:32.000000000 +0200
+++ new/oslo_messaging-18.2.0/oslo_messaging/tests/drivers/test_impl_rabbit.py  
2026-07-10 15:49:08.000000000 +0200
@@ -172,19 +172,7 @@
                                                 certfile='bar',
                                                 ca_certs='foobar',
                                                 cert_reqs=ssl.CERT_REQUIRED,
-                                                server_hostname=None))),
-        ('ssl_with_options_no_hostname_check',
-         dict(options=dict(ssl=True,
-                           ssl_version='TLSv1',
-                           ssl_key_file='foo',
-                           ssl_cert_file='bar',
-                           ssl_ca_file='foobar',
-                           ssl_enforce_hostname_verification=False),
-              expected=dict(ssl_version=3,
-                            keyfile='foo',
-                            certfile='bar',
-                            ca_certs='foobar',
-                            cert_reqs=ssl.CERT_REQUIRED))),
+                                                server_hostname=None)))
     ]
 
     @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
@@ -216,22 +204,10 @@
 
 class TestRabbitDriverSSLHostname(test_utils.BaseTestCase):
 
-    def test_ssl_enforce_hostname_verification_default_true(self):
-        transport = oslo_messaging.get_transport(self.conf,
-                                                 'kombu+memory:////')
-        self.addCleanup(transport.cleanup)
-        self.assertTrue(
-            self.conf.oslo_messaging_rabbit.ssl_enforce_hostname_verification)
-
     @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
                 '.ensure_connection')
     @mock.patch('kombu.connection.Connection')
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.LOG')
-    @mock.patch(
-        'oslo_messaging._drivers.impl_rabbit.importlib.metadata.version',
-        return_value='5.2.0')
-    def test_multi_host_kombu_5_2_uses_hostname_substitution(
-            self, mock_version, mock_log, connection_klass, fake_ensure):
+    def test_multi_host_host(self, connection_klass, fake_ensure):
         self.config(ssl=True, ssl_ca_file='foobar',
                     group='oslo_messaging_rabbit')
         transport = oslo_messaging.get_transport(
@@ -242,73 +218,11 @@
 
         ssl_params = connection_klass.call_args.kwargs['ssl']
         self.assertIsNone(ssl_params['server_hostname'])
-        mock_log.warning.assert_not_called()
-
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
-                '.ensure_connection')
-    @mock.patch('kombu.connection.Connection')
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.LOG')
-    @mock.patch(
-        'oslo_messaging._drivers.impl_rabbit.importlib.metadata.version',
-        return_value='5.1.0')
-    def test_multi_host_old_kombu_warns_and_uses_first_hostname(
-            self, mock_version, mock_log, connection_klass, fake_ensure):
-        self.config(ssl=True, ssl_ca_file='foobar',
-                    group='oslo_messaging_rabbit')
-        transport = oslo_messaging.get_transport(
-            self.conf, 'rabbit://host1:5672,host2:5672//')
-        self.addCleanup(transport.cleanup)
-
-        transport._driver._get_connection()
-
-        ssl_params = connection_klass.call_args.kwargs['ssl']
-        self.assertEqual('host1', ssl_params['server_hostname'])
-        mock_log.warning.assert_called_once()
-        self.assertIn('Multi-host RabbitMQ TLS',
-                      mock_log.warning.call_args[0][0])
 
     @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
                 '.ensure_connection')
     @mock.patch('kombu.connection.Connection')
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.LOG')
-    @mock.patch(
-        'oslo_messaging._drivers.impl_rabbit.importlib.metadata.version',
-        return_value='unknown')
-    def test_multi_host_unparsable_kombu_version_warns_first_hostname(
-            self, mock_version, mock_log, connection_klass, fake_ensure):
-        self.config(ssl=True, ssl_ca_file='foobar',
-                    group='oslo_messaging_rabbit')
-        transport = oslo_messaging.get_transport(
-            self.conf, 'rabbit://host1:5672,host2:5672//')
-        self.addCleanup(transport.cleanup)
-
-        transport._driver._get_connection()
-
-        ssl_params = connection_klass.call_args.kwargs['ssl']
-        self.assertEqual('host1', ssl_params['server_hostname'])
-        mock_log.warning.assert_called_once()
-
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
-                '.ensure_connection')
-    @mock.patch('kombu.connection.Connection')
-    def test_enforcement_disabled_omits_server_hostname(self, connection_klass,
-                                                        fake_ensure):
-        self.config(ssl=True, ssl_ca_file='foobar',
-                    ssl_enforce_hostname_verification=False,
-                    group='oslo_messaging_rabbit')
-        transport = oslo_messaging.get_transport(
-            self.conf, 'rabbit://host1:5672//')
-        self.addCleanup(transport.cleanup)
-
-        transport._driver._get_connection()
-
-        ssl_params = connection_klass.call_args.kwargs['ssl']
-        self.assertNotIn('server_hostname', ssl_params)
-
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
-                '.ensure_connection')
-    @mock.patch('kombu.connection.Connection')
-    def test_single_host_uses_hostname(self, connection_klass, fake_ensure):
+    def test_single_host(self, connection_klass, fake_ensure):
         self.config(ssl=True, ssl_ca_file='foobar',
                     group='oslo_messaging_rabbit')
         transport = oslo_messaging.get_transport(
@@ -322,41 +236,6 @@
 
     @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
                 '.ensure_connection')
-    @mock.patch('kombu.connection.Connection')
-    @mock.patch(
-        'oslo_messaging._drivers.impl_rabbit.importlib.metadata.version',
-        return_value='5.1.0')
-    def test_multi_host_old_kombu_allowed_without_enforcement(
-            self, mock_version, connection_klass, fake_ensure):
-        self.config(ssl=True, ssl_ca_file='foobar',
-                    ssl_enforce_hostname_verification=False,
-                    group='oslo_messaging_rabbit')
-        transport = oslo_messaging.get_transport(
-            self.conf, 'rabbit://host1:5672,host2:5672//')
-        self.addCleanup(transport.cleanup)
-        transport._driver._get_connection()
-
-        ssl_params = connection_klass.call_args.kwargs['ssl']
-        self.assertNotIn('server_hostname', ssl_params)
-
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
-                '.ensure_connection')
-    @mock.patch('kombu.connection.Connection')
-    def test_multi_host_unknown_kombu_allowed_without_enforcement(
-            self, connection_klass, fake_ensure):
-        self.config(ssl=True, ssl_ca_file='foobar',
-                    ssl_enforce_hostname_verification=False,
-                    group='oslo_messaging_rabbit')
-        transport = oslo_messaging.get_transport(
-            self.conf, 'rabbit://host1:5672,host2:5672//')
-        self.addCleanup(transport.cleanup)
-        transport._driver._get_connection()
-
-        ssl_params = connection_klass.call_args.kwargs['ssl']
-        self.assertNotIn('server_hostname', ssl_params)
-
-    @mock.patch('oslo_messaging._drivers.impl_rabbit.Connection'
-                '.ensure_connection')
     @mock.patch('kombu.connection.Connection')
     def test_ssl_without_ca_does_not_check_hostname(self, connection_klass,
                                                     fake_ensure):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/pyproject.toml 
new/oslo_messaging-18.2.0/pyproject.toml
--- old/oslo_messaging-18.1.0/pyproject.toml    2026-05-20 10:57:32.000000000 
+0200
+++ new/oslo_messaging-18.2.0/pyproject.toml    2026-07-10 15:49:08.000000000 
+0200
@@ -9,7 +9,7 @@
 authors = [
     {name = "OpenStack", email = "[email protected]"},
 ]
-requires-python = ">=3.10"
+requires-python = ">=3.11"
 classifiers = [
     "Environment :: OpenStack",
     "Intended Audience :: Developers",
@@ -18,10 +18,10 @@
     "Operating System :: OS Independent",
     "Programming Language :: Python",
     "Programming Language :: Python :: 3",
-    "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
     "Programming Language :: Python :: 3 :: Only",
     "Programming Language :: Python :: Implementation :: CPython",
 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_messaging-18.1.0/releasenotes/notes/rabbit-ssl-enforce-hostname-verification-117efd0c836c9187.yaml
 
new/oslo_messaging-18.2.0/releasenotes/notes/rabbit-ssl-enforce-hostname-verification-117efd0c836c9187.yaml
--- 
old/oslo_messaging-18.1.0/releasenotes/notes/rabbit-ssl-enforce-hostname-verification-117efd0c836c9187.yaml
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo_messaging-18.2.0/releasenotes/notes/rabbit-ssl-enforce-hostname-verification-117efd0c836c9187.yaml
 2026-07-10 15:49:08.000000000 +0200
@@ -0,0 +1,7 @@
+---
+upgrade:
+  - |
+    The RabbitMQ driver now enforces verification of the broker hostnames when
+    ``ssl_ca_file`` is set and ``transport_url`` contanims muleiple RabbitMQ
+    servers. The ``[oslo_messaging_rabbit] oslo_messaging_rabbit`` has no
+    effect now.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/requirements.txt 
new/oslo_messaging-18.2.0/requirements.txt
--- old/oslo_messaging-18.1.0/requirements.txt  2026-05-20 10:57:32.000000000 
+0200
+++ new/oslo_messaging-18.2.0/requirements.txt  2026-07-10 15:49:08.000000000 
+0200
@@ -25,7 +25,7 @@
 # rabbit driver is the default
 # we set the amqp version to ensure heartbeat works
 amqp>=2.5.2 # BSD
-kombu>=4.6.8 # BSD
+kombu>=5.2.0 # BSD
 
 # middleware
 oslo.middleware>=3.31.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/tools/simulator.py 
new/oslo_messaging-18.2.0/tools/simulator.py
--- old/oslo_messaging-18.1.0/tools/simulator.py        2026-05-20 
10:57:32.000000000 +0200
+++ new/oslo_messaging-18.2.0/tools/simulator.py        2026-07-10 
15:49:08.000000000 +0200
@@ -128,7 +128,6 @@
         threading.Timer(diff, self.monitor).start()  # schedule in a second
 
     def monitor(self):
-        global IS_RUNNING
         if IS_RUNNING:
             # NOTE(kbespalov): this way not properly works
             # because the monitor starting with range 1sec +-150 ms
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_messaging-18.1.0/tox.ini 
new/oslo_messaging-18.2.0/tox.ini
--- old/oslo_messaging-18.1.0/tox.ini   2026-05-20 10:57:32.000000000 +0200
+++ new/oslo_messaging-18.2.0/tox.ini   2026-07-10 15:49:08.000000000 +0200
@@ -11,7 +11,6 @@
   
{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 deps =
   -r{toxinidir}/test-requirements.txt
-  -r{toxinidir}/requirements.txt
 commands =
   stestr run --slowest {posargs}
 
@@ -54,7 +53,7 @@
 # scenario01     rabbit    rabbit
 # scenario02     rabbit    kafka
 #
-[testenv:py310-func-scenario01]
+[testenv:py311-func-scenario01]
 setenv =
   SCENARIO=scenario01
 allowlist_externals =
@@ -62,7 +61,7 @@
 commands =
   {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest 
{posargs:oslo_messaging.tests.functional}
 
-[testenv:py310-func-scenario02]
+[testenv:py311-func-scenario02]
 setenv =
   SCENARIO=scenario02
 allowlist_externals =
@@ -87,6 +86,7 @@
 paths = ./oslo_messaging/hacking
 
 [testenv:releasenotes]
+skip_install = true
 allowlist_externals =
   rm
 deps = {[testenv:docs]deps}
@@ -95,6 +95,7 @@
   sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html 
releasenotes/source releasenotes/build/html
 
 [testenv:bindep]
+skip_install = true
 deps =
   bindep
 commands = bindep {posargs}

Reply via email to