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 2023-05-03 15:42:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.messaging (Old)
and /work/SRC/openSUSE:Factory/.python-oslo.messaging.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-oslo.messaging"
Wed May 3 15:42:24 2023 rev:28 rq:1084312 version:14.2.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-oslo.messaging/python-oslo.messaging.changes
2022-10-03 13:47:21.445692000 +0200
+++
/work/SRC/openSUSE:Factory/.python-oslo.messaging.new.1533/python-oslo.messaging.changes
2023-05-03 15:42:25.562772096 +0200
@@ -1,0 +2,13 @@
+Wed May 3 12:20:24 UTC 2023 - [email protected]
+
+- update to version 14.2.0
+ - Force creating non durable control exchange when a precondition failed
+ - update hacking pin to support flake8 3.8.3
+ - tox cleanups
+ - Update master for stable/zed
+ - Support overriding class for get_rpc_* helper functions
+ - Warn when we force creating a non durable exchange
+ - Implement get_rpc_client function
+ - Remove logging from ProducerConnection._produce_message
+
+-------------------------------------------------------------------
Old:
----
oslo.messaging-14.0.0.tar.gz
New:
----
oslo.messaging-14.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-oslo.messaging.spec ++++++
--- /var/tmp/diff_new_pack.7NLCIg/_old 2023-05-03 15:42:26.030774869 +0200
+++ /var/tmp/diff_new_pack.7NLCIg/_new 2023-05-03 15:42:26.034774892 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-oslo.messaging
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
Name: python-oslo.messaging
-Version: 14.0.0
+Version: 14.2.0
Release: 0
Summary: OpenStack oslo.messaging library
License: Apache-2.0
Group: Development/Languages/Python
URL: https://docs.openstack.org/oslo.messaging
-Source0:
https://files.pythonhosted.org/packages/source/o/oslo.messaging/oslo.messaging-14.0.0.tar.gz
+Source0:
https://files.pythonhosted.org/packages/source/o/oslo.messaging/oslo.messaging-14.2.0.tar.gz
BuildRequires: openstack-macros
BuildRequires: python3-PyYAML >= 3.13
BuildRequires: python3-WebOb >= 1.7.1
@@ -98,7 +98,7 @@
This package contains the documentation.
%prep
-%autosetup -p1 -n oslo.messaging-14.0.0
+%autosetup -p1 -n oslo.messaging-14.2.0
%py_req_cleanup
%build
@@ -118,7 +118,7 @@
# fail without it
rm -rf oslo_messaging/tests/functional
# 3 cyrus tests fail on rdo with time out
-python3 -m stestr.cli run --black-regex
'^oslo_messaging.tests.(functional|drivers.test_amqp_driver.TestCyrusAuthentication.test_authentication_(ok|ignore_default_realm|default_realm))'
+%{openstack_stestr_run} --black-regex
'^oslo_messaging.tests.(functional|drivers.test_amqp_driver.TestCyrusAuthentication.test_authentication_(ok|ignore_default_realm|default_realm))'
%files -n python3-oslo.messaging
%license LICENSE
++++++ oslo.messaging-14.0.0.tar.gz -> oslo.messaging-14.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/.pre-commit-config.yaml
new/oslo.messaging-14.2.0/.pre-commit-config.yaml
--- old/oslo.messaging-14.0.0/.pre-commit-config.yaml 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/.pre-commit-config.yaml 2023-02-01
11:58:55.000000000 +0100
@@ -32,7 +32,7 @@
- id: flake8
name: flake8
additional_dependencies:
- - hacking>=3.0.1,<3.1.0
+ - hacking>=3.0.1,<=4.1.0
language: python
entry: flake8
files: '^.*\.py$'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/AUTHORS
new/oslo.messaging-14.2.0/AUTHORS
--- old/oslo.messaging-14.0.0/AUTHORS 2022-08-24 15:27:23.000000000 +0200
+++ new/oslo.messaging-14.2.0/AUTHORS 2023-02-01 11:59:33.000000000 +0100
@@ -76,6 +76,7 @@
Ghanshyam Mann <[email protected]>
Gordon Sim <[email protected]>
Gregory Haynes <[email protected]>
+Guillaume Espanel <[email protected]>
Haifeng.Yan <[email protected]>
Hanxi Liu <[email protected]>
Hervé Beraud <[email protected]>
@@ -168,6 +169,7 @@
Stanislav Kudriashev <[email protected]>
StanisÅaw Pitucha <[email protected]>
Stephen Finucane <[email protected]>
+Stephen Finucane <[email protected]>
Steve Kowalik <[email protected]>
Swapnil Kulkarni (coolsvap) <[email protected]>
Takashi NATSUME <[email protected]>
@@ -176,6 +178,8 @@
Thomas Goirand <[email protected]>
Thomas Herve <[email protected]>
Thomas Herve <[email protected]>
+Tobias Urdin <[email protected]>
+Tobias Urdin <[email protected]>
TommyLike <[email protected]>
Tony Breeds <[email protected]>
Tovin Seven <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/ChangeLog
new/oslo.messaging-14.2.0/ChangeLog
--- old/oslo.messaging-14.0.0/ChangeLog 2022-08-24 15:27:22.000000000 +0200
+++ new/oslo.messaging-14.2.0/ChangeLog 2023-02-01 11:59:33.000000000 +0100
@@ -1,14 +1,29 @@
CHANGES
=======
+14.2.0
+------
+
+* Support overriding class for get\_rpc\_\* helper functions
+* tox cleanups
+
+14.1.0
+------
+
+* Implement get\_rpc\_client function
+* Warn when we force creating a non durable exchange
+* Update master for stable/zed
+
14.0.0
------
* Change default value of "heartbeat\_in\_pthread" to False
+* Remove logging from ProducerConnection.\_produce\_message
13.0.0
------
+* update hacking pin to support flake8 3.8.3
* Drop python3.6/3.7 support in testing runtime
12.14.0
@@ -30,6 +45,7 @@
* [rabbit] use retry parameters during notification sending
* Update python testing classifier
+* Force creating non durable control exchange when a precondition failed
* Reproduce bug 1917645
12.11.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/PKG-INFO
new/oslo.messaging-14.2.0/PKG-INFO
--- old/oslo.messaging-14.0.0/PKG-INFO 2022-08-24 15:27:23.258357500 +0200
+++ new/oslo.messaging-14.2.0/PKG-INFO 2023-02-01 11:59:33.452776000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: oslo.messaging
-Version: 14.0.0
+Version: 14.2.0
Summary: Oslo Messaging API
Home-page: https://docs.openstack.org/oslo.messaging/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo.messaging.egg-info/PKG-INFO
new/oslo.messaging-14.2.0/oslo.messaging.egg-info/PKG-INFO
--- old/oslo.messaging-14.0.0/oslo.messaging.egg-info/PKG-INFO 2022-08-24
15:27:23.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo.messaging.egg-info/PKG-INFO 2023-02-01
11:59:33.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: oslo.messaging
-Version: 14.0.0
+Version: 14.2.0
Summary: Oslo Messaging API
Home-page: https://docs.openstack.org/oslo.messaging/latest/
Author: OpenStack
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo.messaging.egg-info/SOURCES.txt
new/oslo.messaging-14.2.0/oslo.messaging.egg-info/SOURCES.txt
--- old/oslo.messaging-14.0.0/oslo.messaging.egg-info/SOURCES.txt
2022-08-24 15:27:23.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo.messaging.egg-info/SOURCES.txt
2023-02-01 11:59:33.000000000 +0100
@@ -147,14 +147,18 @@
releasenotes/notes/blocking-executor-deprecated-895146c1c3bf2f51.yaml
releasenotes/notes/blocking-executor-support-dropped-a3bc74c6825863f0.yaml
releasenotes/notes/bug-1917645-rabbit-use-retry-parameter-for-notifications-3f7c508ab4437579.yaml
+releasenotes/notes/bug-1981093-kafka-dont-log-in-tpool-execute-fa50ceee2d55ebae.yaml
releasenotes/notes/bump-amqp-version-due-to-tls-issue-e877b152eb101c15.yaml
releasenotes/notes/connection_ttl-2cf0fe6e1ab8c73c.yaml
+releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
releasenotes/notes/deprecate-ZeroMQ-driver-a8af25aaba867c5b.yaml
releasenotes/notes/disable-mandatory-flag-a6210a534f3853f0.yaml
releasenotes/notes/do-not-run-heartbeat-in-pthread-by-default-42e1299f59b841f8.yaml
releasenotes/notes/drop-python27-support-5ef2f365d8930483.yaml
releasenotes/notes/enforce_fips_mode-07dd259eb8a73c2b.yaml
releasenotes/notes/fix-access_policy-deafult-a6954a147cb002b0.yaml
+releasenotes/notes/get-rpc-client-0b4aa62160864b29.yaml
+releasenotes/notes/get-rpc-helpers-cls-8911826ac08aef2a.yaml
releasenotes/notes/get_rpc_transport-4aa3511ad9754a60.yaml
releasenotes/notes/handle-missing-queue-553a803f94976be7.yaml
releasenotes/notes/kafka-client-library-change-fe16d5a34550db7f.yaml
@@ -186,6 +190,7 @@
releasenotes/source/wallaby.rst
releasenotes/source/xena.rst
releasenotes/source/yoga.rst
+releasenotes/source/zed.rst
releasenotes/source/_static/.placeholder
releasenotes/source/_templates/.placeholder
releasenotes/source/locale/en_GB/LC_MESSAGES/releasenotes.po
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo.messaging.egg-info/pbr.json
new/oslo.messaging-14.2.0/oslo.messaging.egg-info/pbr.json
--- old/oslo.messaging-14.0.0/oslo.messaging.egg-info/pbr.json 2022-08-24
15:27:23.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo.messaging.egg-info/pbr.json 2023-02-01
11:59:33.000000000 +0100
@@ -1 +1 @@
-{"git_version": "e44f286e", "is_release": true}
\ No newline at end of file
+{"git_version": "687dea2e", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo.messaging.egg-info/requires.txt
new/oslo.messaging-14.2.0/oslo.messaging.egg-info/requires.txt
--- old/oslo.messaging-14.0.0/oslo.messaging.egg-info/requires.txt
2022-08-24 15:27:23.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo.messaging.egg-info/requires.txt
2023-02-01 11:59:33.000000000 +0100
@@ -28,7 +28,7 @@
eventlet>=0.23.0
fixtures>=3.0.0
greenlet>=0.4.15
-hacking<3.1.0,>=3.0.1
+hacking<=4.1.0,>=3.0.1
oslotest>=3.2.0
pifpaf>=2.2.0
pre-commit>=2.6.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/_drivers/impl_kafka.py
new/oslo.messaging-14.2.0/oslo_messaging/_drivers/impl_kafka.py
--- old/oslo.messaging-14.0.0/oslo_messaging/_drivers/impl_kafka.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/_drivers/impl_kafka.py
2023-02-01 11:58:55.000000000 +0100
@@ -265,18 +265,17 @@
self.producer = None
self.producer_lock = threading.Lock()
- def _produce_message(self, topic, message):
- while True:
- try:
- self.producer.produce(topic, message)
- except KafkaException as e:
- LOG.error("Produce message failed: %s" % str(e))
- except BufferError:
- LOG.debug("Produce message queue full, waiting for deliveries")
- self.producer.poll(0.5)
- continue
- break
-
+ def _produce_message(self, topic, message, poll):
+ if poll:
+ self.producer.poll(poll)
+ try:
+ self.producer.produce(topic, message)
+ except KafkaException as e:
+ self.producer.poll(0)
+ raise e
+ except BufferError as e:
+ # We'll have to poll next time
+ raise e
self.producer.poll(0)
def notify_send(self, topic, ctxt, msg, retry):
@@ -293,9 +292,22 @@
try:
self._ensure_producer()
- if eventletutils.is_monkey_patched('thread'):
- return tpool.execute(self._produce_message, topic, message)
- return self._produce_message(topic, message)
+ poll = 0
+ while True:
+ try:
+ if eventletutils.is_monkey_patched('thread'):
+ return tpool.execute(self._produce_message, topic,
+ message, poll)
+ return self._produce_message(topic, message, poll)
+ except KafkaException as e:
+ LOG.error("Produce message failed: %s" % str(e))
+ break
+ except BufferError:
+ LOG.debug("Produce message queue full, "
+ "waiting for deliveries")
+ # We'll retry with .5s polling
+ poll = 0.5
+
except Exception:
# NOTE(sileht): if something goes wrong close the producer
# connection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/_drivers/impl_rabbit.py
new/oslo.messaging-14.2.0/oslo_messaging/_drivers/impl_rabbit.py
--- old/oslo.messaging-14.0.0/oslo_messaging/_drivers/impl_rabbit.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/_drivers/impl_rabbit.py
2023-02-01 11:58:55.000000000 +0100
@@ -349,11 +349,44 @@
self._declared_on = None
self.exchange = kombu.entity.Exchange(
name=exchange_name,
- type=type,
+ type=self.type,
durable=self.durable,
auto_delete=self.exchange_auto_delete)
self.enable_cancel_on_failover = enable_cancel_on_failover
+ def _declare_fallback(self, err, conn, consumer_arguments):
+ """Fallback by declaring a non durable queue.
+
+ When a control exchange is shared between services it is possible
+ that some service created first a non durable control exchange and
+ then after that an other service can try to create the same control
+ exchange but as a durable control exchange. In this case RabbitMQ
+ will raise an exception (PreconditionFailed), and then it will stop
+ our execution and our service will fail entirly. In this case we want
+ to fallback by creating a non durable queue to match the default
+ config.
+ """
+ if "PRECONDITION_FAILED - inequivalent arg 'durable'" in str(err):
+ LOG.info(
+ "[%s] Retrying to declare the exchange (%s) as "
+ "non durable", conn.connection_id, self.exchange_name)
+ self.exchange = kombu.entity.Exchange(
+ name=self.exchange_name,
+ type=self.type,
+ durable=False,
+ auto_delete=self.queue_auto_delete)
+ self.queue = kombu.entity.Queue(
+ name=self.queue_name,
+ channel=conn.channel,
+ exchange=self.exchange,
+ durable=False,
+ auto_delete=self.queue_auto_delete,
+ routing_key=self.routing_key,
+ queue_arguments=self.queue_arguments,
+ consumer_arguments=consumer_arguments
+ )
+ self.queue.declare()
+
def declare(self, conn):
"""Re-declare the queue after a rabbit (re)connect."""
@@ -376,7 +409,18 @@
try:
LOG.debug('[%s] Queue.declare: %s',
conn.connection_id, self.queue_name)
- self.queue.declare()
+ try:
+ self.queue.declare()
+ except amqp_exec.PreconditionFailed as err:
+ # NOTE(hberaud): This kind of exception may be triggered
+ # when a control exchange is shared between services and
+ # when services try to create it with configs that differ
+ # from each others. RabbitMQ will reject the services
+ # that try to create it with a configuration that differ
+ # from the one used first.
+ LOG.warning(err)
+ self._declare_fallback(err, conn, consumer_arguments)
+
except conn.connection.channel_errors as exc:
# NOTE(jrosenboom): This exception may be triggered by a race
# condition. Simply retrying will solve the error most of the time
@@ -1354,7 +1398,20 @@
"""Publish a message."""
if not (exchange.passive or exchange.name in self._declared_exchanges):
- exchange(self.channel).declare()
+ try:
+ exchange(self.channel).declare()
+ except amqp_exec.PreconditionFailed as err:
+ # NOTE(hberaud): This kind of exception may be triggered
+ # when a control exchange is shared between services and
+ # when services try to create it with configs that differ
+ # from each others. RabbitMQ will reject the services
+ # that try to create it with a configuration that differ
+ # from the one used first.
+ if "PRECONDITION_FAILED - inequivalent arg 'durable'" \
+ in str(err):
+ LOG.warning("Force creating a non durable exchange.")
+ exchange.durable = False
+ exchange(self.channel).declare()
self._declared_exchanges.add(exchange.name)
log_info = {'msg': msg,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/oslo_messaging/rpc/__init__.py
new/oslo.messaging-14.2.0/oslo_messaging/rpc/__init__.py
--- old/oslo.messaging-14.0.0/oslo_messaging/rpc/__init__.py 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/rpc/__init__.py 2023-02-01
11:58:55.000000000 +0100
@@ -30,6 +30,7 @@
'expected_exceptions',
'get_rpc_transport',
'get_rpc_server',
+ 'get_rpc_client',
'expose'
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/oslo_messaging/rpc/client.py
new/oslo.messaging-14.2.0/oslo_messaging/rpc/client.py
--- old/oslo.messaging-14.0.0/oslo_messaging/rpc/client.py 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/rpc/client.py 2023-02-01
11:58:55.000000000 +0100
@@ -32,6 +32,7 @@
'RPCClient',
'RPCVersionCapError',
'RemoteError',
+ 'get_rpc_client',
]
LOG = logging.getLogger(__name__)
@@ -263,6 +264,9 @@
The RPCClient class is responsible for sending method invocations to and
receiving return values from remote RPC servers via a messaging transport.
+ The class should always be instantiated by using the get_rpc_client
+ function and not constructing the class directly.
+
Two RPC patterns are supported: RPC calls and RPC casts.
An RPC cast is used when an RPC method does *not* return a value to
@@ -295,7 +299,7 @@
def __init__(self, transport):
target = messaging.Target(topic='test', version='2.0')
- self._client = messaging.RPCClient(transport, target)
+ self._client = messaging.get_rpc_client(transport, target)
def test(self, ctxt, arg):
return self._client.call(ctxt, 'test', arg=arg)
@@ -320,7 +324,7 @@
transport = messaging.get_rpc_transport(cfg.CONF)
target = messaging.Target(topic='test', version='2.0')
- client = messaging.RPCClient(transport, target)
+ client = messaging.get_rpc_client(transport, target)
client.call(ctxt, 'test', arg=arg)
but this is probably only useful in limited circumstances as a wrapper
@@ -334,7 +338,7 @@
have the RPC request fail with a MessageDeliveryFailure after the given
number of retries. For example::
- client = messaging.RPCClient(transport, target, retry=None)
+ client = messaging.get_rpc_client(transport, target, retry=None)
client.call(ctxt, 'sync')
try:
client.prepare(retry=0).cast(ctxt, 'ping')
@@ -346,9 +350,13 @@
def __init__(self, transport, target,
timeout=None, version_cap=None, serializer=None, retry=None,
- call_monitor_timeout=None, transport_options=None):
+ call_monitor_timeout=None, transport_options=None,
+ _manual_load=True):
"""Construct an RPC client.
+ This should not be called directly, use the get_rpc_client function
+ to instantiate this class.
+
:param transport: a messaging transport handle
:type transport: Transport
:param target: the default target for invocations
@@ -371,7 +379,17 @@
(less than the overall timeout
parameter).
:type call_monitor_timeout: int
+ :param transport_options: Transport options passed to client.
+ :type transport_options: TransportOptions
+ :param _manual_load: Internal use only to check if class was
+ manually instantiated or not.
+ :type _manual_load: bool
"""
+ if _manual_load:
+ LOG.warning("Using RPCClient manually to instantiate client. "
+ "Please use get_rpc_client to obtain an RPC client "
+ "instance.")
+
if serializer is None:
serializer = msg_serializer.NoOpSerializer()
@@ -530,3 +548,18 @@
def can_send_version(self, version=_marker):
"""Check to see if a version is compatible with the version cap."""
return self.prepare(version=version).can_send_version()
+
+
+def get_rpc_client(transport, target, client_cls=RPCClient, **kwargs):
+ """Construct an RPC client.
+
+ :param transport: the messaging transport
+ :type transport: Transport
+ :param target: the exchange, topic and server to listen on
+ :type target: Target
+ :param client_cls: The client class to instantiate
+ :type client_cls: class
+ :param **kwargs: The kwargs will be passed down to the
+ client_cls constructor
+ """
+ return client_cls(transport, target, _manual_load=False, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/oslo_messaging/rpc/server.py
new/oslo.messaging-14.2.0/oslo_messaging/rpc/server.py
--- old/oslo.messaging-14.0.0/oslo_messaging/rpc/server.py 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/rpc/server.py 2023-02-01
11:58:55.000000000 +0100
@@ -200,7 +200,8 @@
def get_rpc_server(transport, target, endpoints,
- executor=None, serializer=None, access_policy=None):
+ executor=None, serializer=None, access_policy=None,
+ server_cls=RPCServer):
"""Construct an RPC server.
:param transport: the messaging transport
@@ -217,10 +218,12 @@
:param access_policy: an optional access policy.
Defaults to DefaultRPCAccessPolicy
:type access_policy: RPCAccessPolicyBase
+ :param server_cls: The server class to instantiate
+ :type server_cls: class
"""
dispatcher = rpc_dispatcher.RPCDispatcher(endpoints, serializer,
access_policy)
- return RPCServer(transport, target, dispatcher, executor)
+ return server_cls(transport, target, dispatcher, executor)
def expected_exceptions(*exceptions):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/rpc/transport.py
new/oslo.messaging-14.2.0/oslo_messaging/rpc/transport.py
--- old/oslo.messaging-14.0.0/oslo_messaging/rpc/transport.py 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/rpc/transport.py 2023-02-01
11:58:55.000000000 +0100
@@ -22,7 +22,8 @@
def get_rpc_transport(conf, url=None,
- allowed_remote_exmods=None):
+ allowed_remote_exmods=None,
+ transport_cls=msg_transport.RPCTransport):
"""A factory method for Transport objects for RPCs.
This method should be used to ensure the correct messaging functionality
@@ -43,7 +44,9 @@
transport will deserialize remote exceptions
from
:type allowed_remote_exmods: list
+ :param transport_cls: the transport class to instantiate
+ :type transport_cls: class
"""
return msg_transport._get_transport(
conf, url, allowed_remote_exmods,
- transport_cls=msg_transport.RPCTransport)
+ transport_cls=transport_cls)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/tests/drivers/test_impl_kafka.py
new/oslo.messaging-14.2.0/oslo_messaging/tests/drivers/test_impl_kafka.py
--- old/oslo.messaging-14.0.0/oslo_messaging/tests/drivers/test_impl_kafka.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/tests/drivers/test_impl_kafka.py
2023-02-01 11:58:55.000000000 +0100
@@ -15,6 +15,8 @@
import testscenarios
from unittest import mock
+from confluent_kafka import KafkaException
+
import oslo_messaging
from oslo_messaging._drivers import impl_kafka as kafka_driver
from oslo_messaging.tests import utils as test_utils
@@ -120,6 +122,36 @@
'ssl.key.password': '',
})
+ def test_send_notification_retries_on_buffer_error(self):
+ target = oslo_messaging.Target(topic="topic_test")
+
+ with mock.patch("confluent_kafka.Producer") as producer:
+ fake_producer = mock.MagicMock()
+ fake_producer.produce = mock.Mock(
+ side_effect=[BufferError, BufferError, None])
+ producer.return_value = fake_producer
+
+ self.driver.send_notification(
+ target, {}, {"payload": ["test_1"]},
+ None, retry=3)
+
+ assert fake_producer.produce.call_count == 3
+
+ def test_send_notification_stops_on_kafka_error(self):
+ target = oslo_messaging.Target(topic="topic_test")
+
+ with mock.patch("confluent_kafka.Producer") as producer:
+ fake_producer = mock.MagicMock()
+ fake_producer.produce = mock.Mock(
+ side_effect=[KafkaException, None])
+ producer.return_value = fake_producer
+
+ self.driver.send_notification(
+ target, {}, {"payload": ["test_1"]},
+ None, retry=3)
+
+ assert fake_producer.produce.call_count == 1
+
def test_listen(self):
target = oslo_messaging.Target(topic="topic_test")
self.assertRaises(NotImplementedError, self.driver.listen, target,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/tests/functional/utils.py
new/oslo.messaging-14.2.0/oslo_messaging/tests/functional/utils.py
--- old/oslo.messaging-14.0.0/oslo_messaging/tests/functional/utils.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/tests/functional/utils.py
2023-02-01 11:58:55.000000000 +0100
@@ -114,8 +114,8 @@
target=self.target,
endpoints=endpoints,
executor=self.executor)
- self._ctrl = oslo_messaging.RPCClient(transport.transport,
- self.ctrl_target)
+ self._ctrl = oslo_messaging.get_rpc_client(transport.transport,
+ self.ctrl_target)
self._start()
transport.wait()
@@ -230,7 +230,7 @@
transport_options=None, **kwargs):
self.name = name or "functional-tests"
self.cast = cast
- self.client = oslo_messaging.RPCClient(
+ self.client = oslo_messaging.get_rpc_client(
transport=transport,
target=target,
transport_options=transport_options,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/tests/rpc/test_client.py
new/oslo.messaging-14.2.0/oslo_messaging/tests/rpc/test_client.py
--- old/oslo.messaging-14.0.0/oslo_messaging/tests/rpc/test_client.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/tests/rpc/test_client.py
2023-02-01 11:58:55.000000000 +0100
@@ -44,8 +44,9 @@
self.config(rpc_response_timeout=None)
transport_options = oslo_messaging.TransportOptions()
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
- client = oslo_messaging.RPCClient(transport, oslo_messaging.Target(),
- transport_options=transport_options)
+ client = oslo_messaging.get_rpc_client(
+ transport, oslo_messaging.Target(),
+ transport_options=transport_options)
transport._send = mock.Mock()
@@ -70,7 +71,7 @@
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
transport_options = oslo_messaging.TransportOptions(at_least_once=True)
- client = oslo_messaging.RPCClient(
+ client = oslo_messaging.get_rpc_client(
transport,
oslo_messaging.Target(),
transport_options=transport_options)
@@ -215,7 +216,7 @@
expect_target = oslo_messaging.Target(**self.expect)
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
- client = oslo_messaging.RPCClient(transport, target)
+ client = oslo_messaging.get_rpc_client(transport, target)
transport._send = mock.Mock()
@@ -269,9 +270,9 @@
self.config(rpc_response_timeout=self.confval)
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
- client = oslo_messaging.RPCClient(transport, oslo_messaging.Target(),
- timeout=self.ctor,
- call_monitor_timeout=self.cm)
+ client = oslo_messaging.get_rpc_client(
+ transport, oslo_messaging.Target(), timeout=self.ctor,
+ call_monitor_timeout=self.cm)
transport._send = mock.Mock()
@@ -302,8 +303,9 @@
def test_call_retry(self):
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
- client = oslo_messaging.RPCClient(transport, oslo_messaging.Target(),
- retry=self.ctor)
+ client = oslo_messaging.get_rpc_client(
+ transport, oslo_messaging.Target(),
+ retry=self.ctor)
transport._send = mock.Mock()
@@ -332,8 +334,8 @@
def test_call_fanout(self):
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
- client = oslo_messaging.RPCClient(transport,
- oslo_messaging.Target(**self.target))
+ client = oslo_messaging.get_rpc_client(
+ transport, oslo_messaging.Target(**self.target))
if self.prepare is not _notset:
client = client.prepare(**self.prepare)
@@ -363,8 +365,8 @@
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
serializer = msg_serializer.NoOpSerializer()
- client = oslo_messaging.RPCClient(transport, oslo_messaging.Target(),
- serializer=serializer)
+ client = oslo_messaging.get_rpc_client(
+ transport, oslo_messaging.Target(), serializer=serializer)
transport._send = mock.Mock()
kwargs = dict(wait_for_reply=True,
@@ -465,8 +467,8 @@
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
target = oslo_messaging.Target(version=self.version)
- client = oslo_messaging.RPCClient(transport, target,
- version_cap=self.cap)
+ client = oslo_messaging.get_rpc_client(transport, target,
+ version_cap=self.cap)
if self.success:
transport._send = mock.Mock()
@@ -574,8 +576,8 @@
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
target = oslo_messaging.Target(version=self.version)
- client = oslo_messaging.RPCClient(transport, target,
- version_cap=self.cap)
+ client = oslo_messaging.get_rpc_client(transport, target,
+ version_cap=self.cap)
prep_kwargs = {}
if self.prepare_cap is not _notset:
@@ -598,7 +600,7 @@
def test_invalid_version_type(self):
target = oslo_messaging.Target(topic='sometopic')
transport = oslo_messaging.get_rpc_transport(self.conf, url='fake:')
- client = oslo_messaging.RPCClient(transport, target)
+ client = oslo_messaging.get_rpc_client(transport, target)
self.assertRaises(exceptions.MessagingException,
client.prepare, version='5')
self.assertRaises(exceptions.MessagingException,
@@ -612,7 +614,7 @@
@mock.patch('oslo_messaging.rpc.client.LOG')
def test_warning_when_notifier_transport(self, log):
transport = oslo_messaging.get_notification_transport(self.conf)
- oslo_messaging.RPCClient(transport, oslo_messaging.Target())
+ oslo_messaging.get_rpc_client(transport, oslo_messaging.Target())
log.warning.assert_called_once_with(
"Using notification transport for RPC. Please use "
"get_rpc_transport to obtain an RPC transport "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/tests/rpc/test_server.py
new/oslo.messaging-14.2.0/oslo_messaging/tests/rpc/test_server.py
--- old/oslo.messaging-14.0.0/oslo_messaging/tests/rpc/test_server.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/tests/rpc/test_server.py
2023-02-01 11:58:55.000000000 +0100
@@ -102,8 +102,8 @@
def _setup_client(self, transport, topic='testtopic', exchange=None):
target = oslo_messaging.Target(topic=topic, exchange=exchange)
- return oslo_messaging.RPCClient(transport, target=target,
- serializer=self.serializer)
+ return oslo_messaging.get_rpc_client(transport, target=target,
+ serializer=self.serializer)
class TestRPCServer(test_utils.BaseTestCase, ServerSetupMixin):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/oslo_messaging/tests/test_transport.py
new/oslo.messaging-14.2.0/oslo_messaging/tests/test_transport.py
--- old/oslo.messaging-14.0.0/oslo_messaging/tests/test_transport.py
2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/oslo_messaging/tests/test_transport.py
2023-02-01 11:58:55.000000000 +0100
@@ -115,7 +115,7 @@
self.assertIsNotNone(transport_)
self.assertIs(transport_.conf, self.conf)
self.assertIs(transport_._driver, drvr)
- self.assertTrue(isinstance(transport_, transport.RPCTransport))
+ self.assertIsInstance(transport_, transport.RPCTransport)
driver.DriverManager.assert_called_once_with('oslo.messaging.drivers',
self.expect['backend'],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/releasenotes/notes/bug-1981093-kafka-dont-log-in-tpool-execute-fa50ceee2d55ebae.yaml
new/oslo.messaging-14.2.0/releasenotes/notes/bug-1981093-kafka-dont-log-in-tpool-execute-fa50ceee2d55ebae.yaml
---
old/oslo.messaging-14.0.0/releasenotes/notes/bug-1981093-kafka-dont-log-in-tpool-execute-fa50ceee2d55ebae.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.messaging-14.2.0/releasenotes/notes/bug-1981093-kafka-dont-log-in-tpool-execute-fa50ceee2d55ebae.yaml
2023-02-01 11:58:55.000000000 +0100
@@ -0,0 +1,8 @@
+---
+fixes:
+ - |
+ [`bug 1981093 <https://bugs.launchpad.net/oslo.messaging/+bug/1981093>`_]
+ Pulls calls to logging functions out of ``impl_kafka._produce_message``.
+ Since ``_produce_message`` is called through tpool.execute, calling logging
+ functions inside ``_produce_message`` could cause subsequent calls to
+ logging functions to deadlock.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
new/oslo.messaging-14.2.0/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
---
old/oslo.messaging-14.0.0/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.messaging-14.2.0/releasenotes/notes/declare_fallback_durable_exchange-0db677de4fdf1e78.yaml
2023-02-01 11:58:55.000000000 +0100
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Force creating non durable control exchange when a precondition failed
+ related to config that differ occuring.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/releasenotes/notes/get-rpc-client-0b4aa62160864b29.yaml
new/oslo.messaging-14.2.0/releasenotes/notes/get-rpc-client-0b4aa62160864b29.yaml
---
old/oslo.messaging-14.0.0/releasenotes/notes/get-rpc-client-0b4aa62160864b29.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.messaging-14.2.0/releasenotes/notes/get-rpc-client-0b4aa62160864b29.yaml
2023-02-01 11:58:55.000000000 +0100
@@ -0,0 +1,11 @@
+---
+features:
+ - |
+ Added new ``get_rpc_client`` function to instantiate the RPCClient
+ class
+deprecations:
+ - |
+ Instantiating the RPCClient class directly is deprecated in favor
+ of using the new ``get_rpc_client`` function to expose a more
+ common API similar to existing functions such as ``get_rpc_server``
+ and ``get_rpc_transport``
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/oslo.messaging-14.0.0/releasenotes/notes/get-rpc-helpers-cls-8911826ac08aef2a.yaml
new/oslo.messaging-14.2.0/releasenotes/notes/get-rpc-helpers-cls-8911826ac08aef2a.yaml
---
old/oslo.messaging-14.0.0/releasenotes/notes/get-rpc-helpers-cls-8911826ac08aef2a.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/oslo.messaging-14.2.0/releasenotes/notes/get-rpc-helpers-cls-8911826ac08aef2a.yaml
2023-02-01 11:58:55.000000000 +0100
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ The ``get_rpc_transport``, ``get_rpc_server`` and ``get_rpc_client`` helper
+ functions now have support for overriding the class that is instantiated.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/releasenotes/source/index.rst
new/oslo.messaging-14.2.0/releasenotes/source/index.rst
--- old/oslo.messaging-14.0.0/releasenotes/source/index.rst 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/releasenotes/source/index.rst 2023-02-01
11:58:55.000000000 +0100
@@ -6,6 +6,7 @@
:maxdepth: 1
unreleased
+ zed
yoga
xena
wallaby
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/releasenotes/source/zed.rst
new/oslo.messaging-14.2.0/releasenotes/source/zed.rst
--- old/oslo.messaging-14.0.0/releasenotes/source/zed.rst 1970-01-01
01:00:00.000000000 +0100
+++ new/oslo.messaging-14.2.0/releasenotes/source/zed.rst 2023-02-01
11:58:55.000000000 +0100
@@ -0,0 +1,6 @@
+========================
+Zed Series Release Notes
+========================
+
+.. release-notes::
+ :branch: stable/zed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/test-requirements.txt
new/oslo.messaging-14.2.0/test-requirements.txt
--- old/oslo.messaging-14.0.0/test-requirements.txt 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/test-requirements.txt 2023-02-01
11:58:55.000000000 +0100
@@ -3,7 +3,7 @@
# process, which may cause wedges in the gate later.
# Hacking already pins down pep8, pyflakes and flake8
-hacking>=3.0.1,<3.1.0 # Apache-2.0
+hacking>=3.0.1,<=4.1.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
stestr>=2.0.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/tools/simulator.py
new/oslo.messaging-14.2.0/tools/simulator.py
--- old/oslo.messaging-14.0.0/tools/simulator.py 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/tools/simulator.py 2023-02-01
11:58:55.000000000 +0100
@@ -410,7 +410,7 @@
def __init__(self, client_id, transport, target, timeout, is_cast,
wait_after_msg, sync_mode=False):
- client = rpc.RPCClient(transport, target)
+ client = rpc.get_rpc_client(transport, target)
method = _rpc_cast if is_cast else _rpc_call
super(RPCClient, self).__init__(client_id,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/tools/test-setup.sh
new/oslo.messaging-14.2.0/tools/test-setup.sh
--- old/oslo.messaging-14.0.0/tools/test-setup.sh 2022-08-24
15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/tools/test-setup.sh 2023-02-01
11:58:55.000000000 +0100
@@ -11,10 +11,10 @@
# this package here.
# inspired from project-config install-distro-packages.sh
-if apt-get -v >/dev/null 2>&1 ; then
- sudo add-apt-repository -y ppa:qpid/testing
- sudo apt-get -qq update
- sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \
- apt-get -q --option "Dpkg::Options::=--force-confold" \
- --assume-yes install qdrouterd
-fi
+#if apt-get -v >/dev/null 2>&1 ; then
+# sudo add-apt-repository -y ppa:qpid/testing
+# sudo apt-get -qq update
+# sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \
+# apt-get -q --option "Dpkg::Options::=--force-confold" \
+# --assume-yes install qdrouterd
+#fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/oslo.messaging-14.0.0/tox.ini
new/oslo.messaging-14.2.0/tox.ini
--- old/oslo.messaging-14.0.0/tox.ini 2022-08-24 15:26:44.000000000 +0200
+++ new/oslo.messaging-14.2.0/tox.ini 2023-02-01 11:58:55.000000000 +0100
@@ -1,21 +1,18 @@
[tox]
minversion = 3.18.0
-envlist = py3,pep8
-ignore_basepython_conflict = true
+envlist = py3, pep8
[testenv]
-basepython = python3
-setenv =
- VIRTUAL_ENV={envdir}
-passenv = OS_*
- ZUUL_CACHE_DIR
- REQUIREMENTS_PIP_LOCATION
-install_command = pip install {opts} {packages}
+passenv =
+ OS_*
+ ZUUL_CACHE_DIR
+ REQUIREMENTS_PIP_LOCATION
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
-commands = stestr run --slowest {posargs}
+commands =
+ stestr run --slowest {posargs}
[testenv:pep8]
commands =
@@ -25,7 +22,7 @@
[testenv:cover]
setenv =
- PYTHON=coverage run --source oslo_messaging --parallel-mode
+ PYTHON=coverage run --source oslo_messaging --parallel-mode
commands =
stestr run --slowest {posargs}
coverage combine
@@ -37,14 +34,15 @@
[testenv:docs]
allowlist_externals = rm
-deps = -r{toxinidir}/doc/requirements.txt
+deps =
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+ -r{toxinidir}/doc/requirements.txt
commands =
rm -fr doc/build
sphinx-build -W --keep-going -b html doc/source doc/build/html
-#
# The following functional test scenarios are defined for the
-# testing of the messaging backends and to demonstrated the functiona
+# testing of the messaging backends and to demonstrated the functional
# correctness across driver combinations (e.g. RPC and Notify)
#
# RPC Notify
@@ -56,42 +54,50 @@
#
[testenv:py38-func-scenario01]
setenv =
- {[testenv]setenv}
- SCENARIO=scenario01
-commands = {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
+ SCENARIO=scenario01
+allowlist_externals =
+ {toxinidir}/tools/setup-scenario-env.sh
+commands =
+ {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
[testenv:py38-func-scenario02]
setenv =
- {[testenv]setenv}
- SCENARIO=scenario02
-commands = {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
+ SCENARIO=scenario02
+allowlist_externals =
+ {toxinidir}/tools/setup-scenario-env.sh
+commands =
+ {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
[testenv:py38-func-scenario03]
setenv =
- {[testenv]setenv}
- SCENARIO=scenario03
- ENVNAME={envname}
- WORKDIR={toxworkdir}
-commands = {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
+ SCENARIO=scenario03
+ ENVNAME={envname}
+ WORKDIR={toxworkdir}
+allowlist_externals =
+ {toxinidir}/tools/setup-scenario-env.sh
+commands =
+ {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
[testenv:py38-func-scenario04]
setenv =
- {[testenv]setenv}
- SCENARIO=scenario04
- ENVNAME={envname}
- WORKDIR={toxworkdir}
-commands = {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
+ SCENARIO=scenario04
+ ENVNAME={envname}
+ WORKDIR={toxworkdir}
+allowlist_externals =
+ {toxinidir}/tools/setup-scenario-env.sh
+commands =
+ {toxinidir}/tools/setup-scenario-env.sh stestr run --slowest
{posargs:oslo_messaging.tests.functional}
[testenv:bandit]
# NOTE(kgiusti): This is required for the integration test job of the bandit
# project. Please do not remove.
-commands = bandit -r oslo_messaging -x tests -n5
+commands =
+ bandit -r oslo_messaging -x tests -n5
[flake8]
-# E731 skipped as assign a lambda expression
-
show-source = True
enable-extensions = H203,H106
+# E731 skipped as assign a lambda expression
ignore = E731,H405,W504
exclude = .tox,dist,doc,*.egg,build,__init__.py
@@ -105,12 +111,16 @@
paths = ./oslo_messaging/hacking
[testenv:releasenotes]
-allowlist_externals = rm
+allowlist_externals =
+ rm
commands =
rm -rf releasenotes/build
sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html
releasenotes/source releasenotes/build/html
-deps = -r{toxinidir}/doc/requirements.txt
+deps =
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
+ -r{toxinidir}/doc/requirements.txt
[testenv:bindep]
-deps = bindep
+deps =
+ bindep
commands = bindep {posargs}