Adding constraints support to libraries is slightly more complex than
services as the libraries themselves are listed in upper-constraints.txt
which leads to errors that you can't install a specific version and a
constrained version.
This change adds constraints support by also adding a helper script to
edit the constraints to remove oslo.messaging.
Change-Id: I8be883215f27abb58d15b85e8542cbdf32000bac
1.As mentioned in [1], we should avoid using six.iteritems to achieve iterators.
We can use dict.items instead, as it will return iterators in PY3 as well.
And dict.items/keys will more readable. 2.In py2, the performance about
list should be negligible, see the link [2].
[1] https://wiki.openstack.org/wiki/Python3
[2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html
Change-Id: Ia235afc3532f62f265f91ca46d2306c72fc2a2a2
Currently zmq functional gate jobs run the same configuration zeromq
for all three configurations zeromq/zeromq-proxy/zeromq-pub-sub while
locally if we run
tox -e py27-func-zeromq-proxy (or pub-sub or zeromq)
the proper one will run.
Gate job has to work similarly to what we have in local testing.
Change-Id: I94342be65564665faf27d8d01ae6650183146874
Closes-Bug: #1643929
Add detailed documentation to the driver API to help driver developers
create drivers that behave consistently. Specifically prescribes a
set of operational characteristics that a driver must conform to in
order to provide consistent behavior across different implementations.
Change-Id: Icb251ee724f9a0ac4fede702a367910de4ba95e3
Move from __init__ any redis hosts discovering, because
at the first few seconds of sentinel starting no master
or slave are synced and in this case the constructor
of MatchmakerSentinel may thrown MasterNotFoundError
or SlaveNotFoundError exception that kills openstack
service at the starting (nova/neutron).
Change-Id: I3f0e0cb13072e438224675055678fc8cee913961
Currently we set it before the channel and as a result nothing
happens, only an error is logged at the debug level.
Change-Id: Ifebdd957d403e47039c10f7e55c4e7ef08fba658
Closes-Bug: #1640773
update srouce doc pika_driver.rst the charactor
the word:more then shoud be more than
Closes-Bug: #1639995
Change-Id: I41460492c4503cf395c93b0bf643ccb98f4e12c3
Calling threading.Event.wait() when using eventlet results in a busy
loop calling epoll_wait, because the Python 2.x
threading.Condition.wait() implementation busy-waits by calling
sleep() with very small values (0.0005..0.05s). Because sleep() is
monkey-patched by eventlet, this results in many very short timers
being added to the eventlet hub, and forces eventlet to constantly
epoll_wait looking for new data unecessarily.
This utilizes a new Event from eventletutils which conditionalizes the
event primitive depending on whether or not eventlet is being used.
If it is, eventlet.event.Event is used instead of threading.Event.
The eventlet.event.Event implementation does not suffer from the same
busy-wait sleep problem. If eventlet is not used, the previous
behavior is retained.
Change-Id: I5c211092d282e724d1c87ce4d06b6c44b592e764
Depends-On: Id33c9f8c17102ba1fe24c12b053c336b6d265501
Closes-bug: #1518430
by removing some class which don't exist and adding some function
which exist in current source.
Change-Id: I1aa78db34051dd554bfdb81e9e24378cbf7f0ea3
Closes-Bugs: #1637930
This patch cleans up the documentation by removing some functions
which don't exist anymore and cause sphinx warnings. The patch also
adds pika_driver to index.rst.
Change-Id: I23908089ef6ad1f05c78521c2eea3a0a3276eb2a
Closes-Bug: #1639171
This patch replaces the legacy retrying library with the newer
and more convenient tenacity one, taking into account that:
1) retrying uses milliseconds for wait times, but tenacity uses seconds;
2) retrying has a lot of numeric arguments for specifying behaviour
of decorated functions, while tenacity has a few of them, which are
specialized objects, thus making the retry-decorator more flexible.
Change-Id: Ib6ecffe5d1cf292badbb9eb6db6260f17460f343
Closes-Bug: #1635399
Following OpenStack Style Guidelines[1]:
http://docs.openstack.org/developer/hacking/#unit-tests-and-assertraises
[H203] Unit test assertions tend to give better messages for more specific assertions.
As a result, assertIsNone(...) is preferred over assertEqual(None, ...)
Change-Id: I192e339fadc6b738714697d1ae8673ebfb7abd79
Some of tests use different method of
assertTrue(isinstance(A, B)) or assertEqual(type(A), B).
The correct way is to use assertIsInstance(A, B) provided
by testtools
Change-Id: I0d2ec8ff3be41afb871ebd2aa71a8dfd13e2076d
When target is specified with server name the correct
result is empty if there is no records with this precise
name registered.
Change-Id: Ibaa7c23c633ccc5f2ca428deb022c9fc1d00e8e7
Replace 'assertEqual(None, ...)' with 'assertIsNone(...)'.
Replace 'assertTrue(a in b)' with ''assertIn(a, b).
Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)'.
Change-Id: Ia13cb8465ec86c07867ef977f8ab0d0fdbabb1d4
1) Remove hardcoding 'redis' matchmaker from any zmq:// transport because it's
fails in cases zmq+etcd:// or zmq+sentinel:// urls.
2) Allow to use transport_url from config file by removing default value for
args.url option. In this case by default args.url is None and
transport_url will be used from config file.
Change-Id: I1edcabe46b1e92dd4e6eccc9151b50d03f394186
Do initialization of the generator only for rpc/notify clients.
No needs to load messages_length.yaml and calculate distribution for servers.
Change-Id: Ib1ac30181bec20eacf6d29ccd5f76c0b6b1e96f8