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.
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.
Implements access_policy for dispatcher to restrict endpoint methods.
Implements the following access policies:
* Implement decorator @rpc.expose for use with the
* Modify get_rpc_server to allow optional access_policy argument
* Set default access_policy to LegacyRPCAccessPolicy (Nova exposes
_associate_floating_ip in tempest tests). Added debtcollector
* Add test cases for access_policy=None
* Clarify documentation
ZeroMQ driver options are current stored into the DEFAULT group.
This change makes the zmq configuration clearer by putting its
options into oslo_messaging_zmq group.
Co-Authored-By: Oleksii Zamiatin <firstname.lastname@example.org>
This patch includes updates to the user guide document for the
amqp-dispatch-router feature branch. Includes information for deploying
driver to operate with router or broker intermediaries.
In this change router was redesigned in a way most
appropriate for routing concept of zmq.ROUTER socket.
DEALER(cli)-ROUTER(proxy)-DEALER(srv) instead of
DEALER-ROUTER-DEALER-ROUTER (3 layers instead of 4)
The main reason is to use zmq.DEALER identity in message
routing. For this reason DealerConsumer was introduced
server-side. RouterConsumer is left for peer-to-peer
DEALER-ROUTER deployment option.
Also handled assertions in receive-methods in order
to not stop server when received message with wrong format.
Using a timestamp as value for "html_last_updated_fmt" isn't good
for the reproducible builds initiative from different downstream
distributions because the build result always differs due to the
timestamp in the documentation.
Also when not setting "html_last_updated_fmt", the value can be set
via command line when running "sphinx-build -D".
In this change 'use_router_proxy' option was added
to switch between direct connections and proxy.
Proxy was reimplemented and splitted onto two
types of proxies:
* PUBLISHER proxy for fanout pattern
* ROUTER proxy for direct messaging
Each type of proxy is configured over command line
Deployment guide was updated accordingly to the change.
Since the change I643a111fca8bac32f41ced232d54ff2a2ebcbf77
we don't need proxy for direct types because any message
woud be sent before server listening to the target
appears on name server registry, so DEALER wouldn't block.
In change Ief6f95ea906bfd95b3218a930c9db5d8a764beb9, we
decoupled RPC and Notifications a bit. We should take another
step and separate out the options for notifications into
its own group.
Back in liberty we marked this driver as deprecated. This patch removes
it from the tree. The patch also removes tests, options and other
references in the documentation. Note that one script is being kept
because it's required by the amqp driver.
New driver introduced some new options and changed its architecture.
The first update of the deployment guide after the driver being
reimplemented. Following driver updates should be reflected in the
guide as well.
Up until now it has only been available in the OpenStack spec, but it is
a living document and I believe we can maintain it in oslo.messaging's
Remove unnecessary rpc_zmq_port option from zmq driver, because zmq
driver doesn't use static port any more - dynamic port binding is used
for running servers.
Our class hierarchy hides classes and modules that so its hard
for folks to write a custom Notification driver. We should
make these public and document them
Add the directive to include the configuration options to the library
(feature change in oslo.config)
(global requirements change to update oslo.config version)
Use stevedore.sphinxext to populate a new page listing all available
Add docstrings to the driver classes, including references to more
extensive documentation if it is available.