The amqp1 options allow_insecure_options, username and password are all
deprecated, remove them. allow_insecure_options was deprecated during
Ocata, and the other two were deprecated in 5.22.0, released during
Pike.
Change-Id: I321266c3dba83a38fe6ebd775db2e74c14cc96cd
Users of the oslo.messaging RPC communications service must use
the rabbit ("rabbit://...") or AMQP 1.0 ("amqp://...") drivers.
Change-Id: If3474142f1fe99d41d7b4466061ed0e23ca38549
Closes-Bug: 1789259
This is a mechanically generated patch to add a functional test job
running under Python 3 as part of the python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: Ib99a323861c0fdb548287446ab25e0516a7c182e
Story: #2002586
Task: #24322
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: I0401a53945ad87e1dc046904054b12e2b106a3e8
Story: #2003250
This defaults to 0 anyway, and is being removed as the devstack
excercises are being removed. see https://review.openstack.org/#/c/581377/
Change-Id: Ifb147f9fb2071724a9eaf306273276db65125cf7
Due to the bug below we want to have py-amqp>=2.3.0 so that connecting
to rabbit endpoints don't timeout when relying on /etc/hosts entries.
Closes-Bug: 1780992
Change-Id: Ia2c1114cb0f8d480695197714f7c6293751430dd
The patch for https://review.openstack.org/#/c/436958/ fixed a
threading problem by moving the ack back to the polling
thread. However the RPC server expects to catch any failures of the
ACK and abort the request. This patch adds the ACK error handling
back to the polling thread.
This patch is based heavily off the original work done by Mehdi
Abaakouk (sileht).
Change-Id: I708c3d6676b974d8daac6817c15f596cdf35817b
Closes-Bug: #1695746
The _get_connection_info() method attempts to gather debug information
from the connection, and will reach into the amqp channel to get the
local (client's) TCP port number via the 'sock' property.
If _get_connection_info() is called from autoretry's on_error handler
the 'sock' property notices that the transport is not set and attempts
to re-connect. amqp has deprecated this reconnect behavior, and in
any case the client's socket is irrelevant since the connection may
not be valid at this point.
Closes-Bug: #1745166
Change-Id: I3c42f8463605927f6f94d6c3a7f05e584476abc1
Under Python 3.7, a trailing comma is no longer added to
the init parameters generated by a repr() call:
>>> repr(Exception('It Works'))
"Exception('It Works')"
vs
>>> repr(Exception('It Works'))
"Exception('It Works',)"
Support pre and post Python 3.7 formats in test cases for
notification middleware.
Change-Id: I30a46ae82f2cc1b529287c049aa5fc6d987e2538
Python 3.7 does not allow the use of 'async' as
a parameter name or object attribute; update
occurrences to use a different name.
This is inline with PEP-492, where await and async
are keywords.
Change-Id: I73efcafab1e0832a0ada95f6c12cb6a659dfcf27
To facilitate removing rpc_backend support, disentangle the aliases
code by removing it to simplify the code and the tests. Aliases were
first depreacted in 5.20.0 during Pike.
Change-Id: I7d80cd050ce1eca2c6b6c38f0fac29d090b90bf3
Closes-Bug: #1424728
According to Openstack summit session [1],
stestr is maintained project to which all Openstack projects should migrate.
Let's switch to stestr as other projects have already moved to it.
[1] https://etherpad.openstack.org/p/YVR-python-pti
Change-Id: I89b785c91738ab62e3f42da42c431b9df8ccfd70
With PEP 479, the behaviour of StopIteration is changing. Raising it to
stop a generator is considered incorrect and from Python 3.7 this will
cause a RuntimeError. The PEP recommends using the return statement.
More details: https://www.python.org/dev/peps/pep-0479/#examples-of-breakage
Change-Id: Ib27581fccbbf14c082fb919d8b6edea1ac83e3c0
The fake_rabbit configuration option has been deprecated since the
release of 1.5.0 in late 2014. Finally remove it, and its test.
Change-Id: I014c2012cca0f289de0d95b9bb35bbde7f61d2ee
The call monitoring feature was introduced in commit
b34ab8b1cc9f4d513a2927c102dbbe82031d9c2a for RabbitMQ. This patch
enables the feature on the AMQP 1.0 driver - currently the only other
driver that supports RPC.
Change-Id: Ic787696852690b59779fb4716aec1e78c48bbe6a
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I02ef155ef47a5eaddf9de902ad3608bee677fbcf
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
In some specific cases, the middleware would fail to rebuild
the original exception, see bug [1] below. Adding this output
may help locate the root cause quickly.
[1]: https://bugs.launchpad.net/cinder/+bug/1728826
Change-Id: Ia9304bda4e515812b146885f830e70f28a285f2d
The example usage of transport_url in ConfFixture was not corrected when
the rest of the code was switched to using 'fake:/' for transport_url.
Since other projects will refer to this example to review changes, it
should be correct.
Also change the transport URLs used in test_transport to correspond to
the correct way of specifying virtual hosts.
Change-Id: If8e0a869e02fda2d8d2c86d82ef83ffc3a4361e4
As the first step towards removing rpc_backend, we need all of the test
fixtures to stop setting/using it via ConfFixture.transport_driver. Add
ConfFixture.transport_url, and move the tests over to setting it rather
than transport_driver.
Partial-Bug: #1712399
Change-Id: I6e2ae2b511fdc52790d5755a9aecaf2f427ab706
This adds an optional call_monitor_timeout parameter to the RPC client,
which if specified, will enable heartbeating of long-running calls by
the server. This enables the user to increase the regular timeout to
a much larger value, allowing calls to take a very long time, but
with heartbeating to indicate that they are still running on the server
side. If the server stops heartbeating, then the call_monitor_timeout
takes over and we fail with the usual MessagingTimeout instead of waiting
for the longer overall timeout to expire.
Change-Id: I60334aaf019f177a984583528b71d00859d31f84