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
1) Provide master_group_name as virtual_host in url:
zmq+sentinel://:password@sentinel-a,:password@sentinel-b/master_group_name
2) Use slaves for the read operations like SMEMBERS.
Change-Id: I690ecae4a260feef5425eac1f3f5b0e5cf4bb2d7
Central + local proxies combination optimizes following:
* Makes it possible to shorten the number of TCP connections
to a single subscription from node.
* PUB/SUB limitation of 10k consumers can be bumped up to 10k nodes
not only to 10k services
* Fanout happens in 2 steps therefore central proxy takes less load
and blocks for a shorter period of time since it needs to fanout
to less consumers (local proxies) not directly to every single service.
Change-Id: I57d87bc8310354142ab69a9f2d3e0a0cf5b972b8
When the application set batch_size, so we don't need to prefetch more
messages, especially for notifications. Notifications queues can be
really big when the consumer have disapear during a long period, and
when it come back, kombu/pyamqp will fetch all messages it can. So we
override the qos prefetch value.
Change-Id: I601e10cf94310b9f96f7acb9942959aaafad7994
Closes-bug: #1551667
Avoid blocking the RPC Server thread when it attempts to acknowledge
the RPC request message. Blocking is unnecessary as the acknowledge
command does not return a status and can be processed asynchronously
from the server thread.
Avoiding this context switch improves overall RPC call throughput
according to the simulator tool by approximately ten percent on my
test systems.
Change-Id: I71548eb6f9f7dcaf74cb426d4e9b369b54856419
This patch makes it possible to maintain several redis hosts at
once in order to increase driver's reliability and fault tolerance.
Change-Id: Id6f63a4bb67a39340a74d16144c79028c7af245d