The loggin verbosity changed in 0.32 which our gate is pulling from the
updates repository. This patch updates the script to make it work again.
Closes-bug: #1468917
Change-Id: I88a1bc794246beb156d4301bd503fa51a7cd2cce
This change adjusts the exception message to be more in line with the
version compatibility algorithm so as to accurately portray the
problem to the log recipient.
The RPCVersionCapError message can be grossly incorrect when the
requested message's major version is lower than the specified version
cap's major version, declaring the requested message version as too
high, when the real error is that the major versions differ (as major
versions are assumed to be incompatible).
Example:
RPCVersionCapError: Requested message version, 3.23 is too
high. It needs to be lower than the specified version cap 4.0.
Change-Id: Iceef999ed385f2ba77449c568127f50f83d47196
Closes-Bug: 1468525
The Oslo libraries have moved all of their code out of the 'oslo'
namespace package into per-library packages. The namespace package was
retained during kilo for backwards compatibility, but will be removed by
the liberty-2 milestone. This change removes the use of the namespace
package, replacing it with the new package names.
The patches in the libraries will be put on hold until application
patches have landed, or L2, whichever comes first. At that point, new
versions of the libraries without namespace packages will be released as
a major version update.
Please merge this patch, or an equivalent, before L2 to avoid problems
with those library releases.
Blueprint: remove-namespace-packages
https://blueprints.launchpad.net/oslo-incubator/+spec/remove-namespace-packages
Change-Id: I05a408b76d4f31b803769a27759e91df770511bb
Rabbitmq's amqp1.0 plugin doesn't have support for vbin8, which is the
default encoding used by qpid-proton. In order to workaround this issue
we should use inferred=True.
Closes-bug: #1465409
Change-Id: Id265917244d7e152c5e13a10df367a3e59de8e50
Now that python-qpid-proton has taken an approach similar to zmq's, it's
possible to install it in boxes where the C libraries are not present in
the system. This patch takes advantage of that to enable amqp protocol's
tests everywhere.
Change-Id: Ibce4c791aafadf45fa876d6a4f5373fde94769ff
This adds a setup script for each tox functional target to start a
rabbitmq-server, qpidd or redis daemon dedicated for the functional
testing.
This script is responsible to spawn a preconfigured daemon needed for
the functional tests.
This also changes the gate script to just install the required packages
instead of setup a devstack.
This also fixes the zmq config options loading in tests
Closes-bug: #1442612
Change-Id: I27eb2c1d3d0ca67aa361c83e41372138e03d9bdd
versionutils.py is no longer in oslo-incubator. So we can
either use versionutils from oslo_log or debtcollector instead.
However, oslo.messaging does not use oslo.log currently and we
should not be adding yet another library as a dependency here,
so we should just use the base python warnings library for
our limited use of deprecated() method.
Change-Id: Ib8a487051c894fa4828da65d4890b7a4f57f1d12
oslotest 1.7.0 breakes oslo.messaging unittests, because it doesn't add
mox to six.moves anymore - see change Ic59c73abb9b09cb594bf7df4173d7f99f81d526c
This patch fixes imports on test run.
Change-Id: Ia40b7733bd2e74b1a1703f2e1a5245f01debbd36
When the broker will block the connection for a server-side issue
like disk full, it notifies the client.
This change adds the callback methods when this occurs to inform
the deployer about the reason of this blocking.
Change-Id: I5164b9e1b720f022b45a5718258df036ba8808ed
Closes-bug: #1454449
This change causes the message sender to block until the messaging
infrastructure (e.g. the broker) assumes ownership of the message (or
fails to accept it). If the message is accepted, then the sender will
either pend for a response (in the case of RPC), or simply return (in
the case of notification). If the message is rejected by the
messaging infrastructure a MessagingException will be raised at the
sender.
Change-Id: I3f4a1ed1c17e18f6d629f16e6b5c99de45b083d6
Closes-Bug: #1377228
Connection class contains `magic` attribute conf, which contains (or at
least should contain) all config options. Set these config options as
class attributes to make the code more clear
Change-Id: Ib67f148e2ecf3def37e57d6e3359bced932fbc90
There was still a reference to the oslo.config namespace package
in _drivers/base.py. This converts it to the new package name.
Change-Id: I9c3878094bcf8015c30d87f693f51e0d48b31a33
The rabbit driver was using the rpc_response_timeout configuration
option as a reconnect timeout value, even though the option was defined
only in oslo_messaging.client and was not always being registered before
being accessed. An earlier patch fixed this by registering the option
here in the driver, too, but that breaks several levels of
abstraction. This changes the driver to define a new option with the
same default value, so that the driver is only using options it defines
itself. It also removes the old hacky fix.
Closes-bug: #1461182
Change-Id: Ia96c815d157219e12a10d94b87b0156503369a6b
Tests with `fanout_target` scenarios were skipped because of issue [1].
This issue already fixed, so we can enable these tests.
[1] https://github.com/celery/kombu/issues/195
Change-Id: I6600c6b9089e6093cbad2b0b96f2682ac9d25c69
Use stevedore.sphinxext to populate a new page listing all available
drivers.
Add docstrings to the driver classes, including references to more
extensive documentation if it is available.
Depends-on: I1a24f9326b4e54174d9dc0ae366315fe29c3ac1b
Depends-on: Ie715f98fe0d3cba8b2f4f6235e7c2b6f79be7ea0
Change-Id: Ief0aa05e6deba0126d63faf13497d0fe0539e08d
The response code in the rabbit driver doesn't use a Client object, so
the option is not being registered in servers that don't instantiate
Client instances (ironic-conductor, for example).
Change-Id: I7def5e6d4960938a17344db024585a0492d6969d
Partial-bug: #1461182
The current condition logic in _publish_and_retry_on_missing_exchange()
replaces passed `timeout` value with `rpc_response_timeout` config value.
This patch fix it.
Change-Id: I451cd2b5da78a3d7011466dfb14669aa1dcf1d5c
We are checking time of thread run in test_impl_rabbit.py and sometimes
it can be a bit longer, because of server load.
Set places=0 instead of 1 to make tests less restrictive.
Change-Id: I2ef6f1474047e1da64402e93696cb73b4d3318e8
Added a new configuration option `send_single_reply` which allows to
send a single AMQP reply instead of two. This will reduce amount of RPC
calls and increase transport productivity.
The new behaviour is not compatible with the old logic, so isn't
backward compatible and disabled by default.
DocImpact
A new configuration option added.
Blueprint: remove-double-reply
Change-Id: Idab118b22163e734aca010f325cddfaec26bfa0f
Current implementation of RabbitMQ driver in in Connection.reset() change
the channel to use and create a new channel for it. This happens after the
each message send.
There no big need to create a new channel each time, so we can cancel all
consumer queues, instead of creating a channel in reset().
Test test_connection_reset_always_succeed() removed, because we are not
create channel on reset() anymore.
Co-Authored-By: Mehdi Abaakouk <sileht@redhat.com>
Change-Id: Ie164840e6c055b01525b13aabdb8b9c7f5d1b98b