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}