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.
Closes-Bug: #1497277
Change-Id: I91e978347dd364b2d4c00bc223b0e3ecface7c43
The main issue with eventlet.green.zmq is that libzmq as a C-library
is completely monkey-patch unfriendly. So any blocking call inside
the native library makes calling process stuck. We can't avoid this
actually in an absolutely normal situation when a client appears
earlier than listener we have all client process get stuck until listener
raised. If the listener for example is also blocked awaiting for some
other service to appear we have a chain of locks which may occasionally
result in a dead-lock. The other situation with Notifier is quite similar.
For that reason zmq-broker was restored, but now it serves as an outgoing
queue on a client side. Servers remained the same dynamically port-binded.
Now all clients can still use green-zmq, but presence of the broker-queue
on a host guarantees that green threads will never blocked in a client
because all messages will wait their listeners inside the broker queue.
The broker process's modules are not monkey-patched, they make use of native
threading and native zmq.
Possibility to run without broker also remains. The option zmq_use_broker
introduced for that reason.
Closes-Bug: #1497315
Change-Id: I786b100fd6ee1cf4b99139db0ca044d358d36345
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
Closes-Bug: #1426046
Change-Id: Ifb96c2ae9868426cac2700bf4917c27c02c90b15
abandonning -> abandoning
for output of oslo_messaging/_drivers/impl_rabbit.py
Plus some small fix for source comments/config help.
Change-Id: Ia4bd1465cbe8beef8e109d20e5ddbec12d6d8e8f
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
We are using Redis-based persistent name storage, so
unrelated references should be cleaned when listener
doesn't exist any more.
Change-Id: I464a17d6de1d1679244db51f54f620017da071b3
Proton's SASL implementation provides several different configuration
options, such as the permitted mechanism set and the configuration
file. This patch adds support for configuring these items.
Change-Id: Icf59643a6d557e3d91947664afedd420c9522fd8
Closes-Bug: #1495969
Break any references that can form a cyclic reference. Several of
proton's python classes define __del__ methods, so a cyclic reference
must be broken manually.
Change-Id: Icabc7abd01a02cb80c7eb4a0de682e90308459ef
Closes-Bug: #1496540
If the version of qpidd does not support setting the SASL service name
as required by AMQP 1.0, then authentication is not possible.
Change-Id: I74f2bb094fc0dbae0525ba535a60fe80661e89f2
Closes-Bug: #1496573
We want to ensure start have really finish before the caller
use stop to not go into weird driver state.
Inteads of raise RuntimeError or just printing warning, we
now use a lock to protect the state change of the server.
So stop will just wait that the server finish to start before
stopping.
This also removes the need to start/stop the server from the
same thread just to fix the state consistency of drivers when
thread or eventlet executor is used.
Change-Id: Ia7346f6cc0bbe8631a2e3318c7031b34ab1ec510
Log message specific information (unique_id/msg_id etc) to make
debugging easier.
Log msg_type, exchange_type, unique_id, msg_id, exchange,
reply queue, topic before actual send;
Log unique_id, msg_id, reply queue before sending reply;
Log msg_id, unique_id and reply_q if needed when receive message.
Change-Id: I10d7d3eb6676ea60e5a932f5932e14bafa50532c
As a result of upgrading proton to 0.10, some behavioral changes have
triggerd failures in the gate.
This patch fixes a subprocess call and syntax error in the AMQP1.0 unit tests.
This patch also fixes the functional test setup script to correctly
configure olter versions of QPIDD.
Both these fixes are necessary to get the gate to pass.
Change-Id: I5ca8476999fc953688c76c302a59bedf70658c8b
Closes-Bug: #1494794
Closes-Bug: #1494918
Pyngus 2.0 includes a new API for configuring SASL credentials.
Previous versions of Pyngus did not provide this API - the driver had
to invoke Proton APIs in order to configure user credentials. Moving
to the Pyngus API will preserve compatibility with older versions of
Proton, since the next release of Proton wil be changing its SASL API.
Pyngus 2.0 also adds strict enforcement of callback re-entrancy
constrants. This patch fixes some bad driver reentrancy violations.
Closes-bug: #1473515
Change-Id: Iddccefd3ee3c9092c086fc54e3810f78d5df9338
Add the directive to include the configuration options to the library
documentation.
Depends-On: I549c8db98bf548dd0a7e8869a57301fa4096f78c
(feature change in oslo.config)
Depends-On: I89e3e4fd41ed4c989c2dd4c9cd1d7b7e806fa15a
(global requirements change to update oslo.config version)
Change-Id: Ibec7071027fc33374a73abc30f8f672380bae6ea