This patch provide the sync flag:
simulator.py rpc-client --sync call
simulator.py rpc-client --sync fanout
The --sync values means next:
- call: to send sync msg via rpc.call
- fanout: to broadcast sync msg via rpc.fanout to all servers on topic
When clients has sent all messages, the rpc-server will be stopped
automatically and dump statistics to a file (if --json-file is used).
This is much usefull than rough killing the process of the server in
benchmark frameworks.
Change-Id: I06fd8dbbcdc8b2b9f13029029f730b417ff128ce
--debug, --is-cast and --is-fanout are defined as args of type=bool.
This means that, for example, if we want to enable debug logging
level, we have to type '--debug True'. But we can also use
'--debug False' in order to do the same, which is very misleading
(in fact, any non-empty string will evaluate to True). This patch
tries to solve this problem by replacing type=bool and
default=False with action='store_true' for these args, so that
we will be able to enable them (they will remain False by default
as before) simply as '--debug' etc.
Change-Id: I8ee04c35427df446966161491da8d264b44975bf
Since proxy supposed to be used in different configurations
second ROUTER socket may stay unused (e.g. when we use proxy
for publishing only fanout messages in mixed direct/pub-sub
configuration see ZmqClientMixDirectPubSub).
This patch introduces two modes of proxy SingleRouterProxy (where
frontend and backend ROUTERS are the same socket) and
DoubleRouterProxy (different sockets for the frontend and for the
backend - the original behavior).
Change-Id: Ia859b92e1f238fcbbcf42e17b06e0f4ad04e79f6
According to the RabbitMQ client docs [1], the only valid login
methods are: PLAIN, AMQPLAIN, or RABBIT-CR-DEMO. This patch restricts
the rabbit driver to only those options.
[1] https://www.rabbitmq.com/authentication.html
Change-Id: I193f33adf4ecc1c0fd29ddc08b35533f24f1c967
This patch simply replaces all delimeters used for generating
internal identifiers like redis keys or socket identities
with slashes (since they are visually better for debugging than
dots, hyphens or underscores, which may also occur inside
topic or server names).
Change-Id: I8e8e80f467404a87a2526c80c8fae6cba5880c6d
This patch fix incorrect fanout behavior when use_pub_sub=False.
In addition it also makes dummy matchmaker behave similar to (already
fixed here) redis one in order to make future testing more realistic
(relevant tests were also fixed and refactored).
Change-Id: Ie131de189972250ea2d9b99fe65b5908b7144569
Closes-Bug: #1622968
During rally tests it was discovered that the latency between
receiving message and dispatching it can reach up to 10 minutes.
This behaviour breaks the mechanism of acks and retries in zmq driver,
which causes test failures. This patch tries to fix these problems
by moving ack sending from rpc server's thread to zmq dealer
consumer's thread (immediately after message receiving).
Change-Id: If33d14006ffa947baf5c34c8b1f61f336432374f
In oslo_messaging/_drivers/impl_rabbit.py, the documentation of
the Consumer class is the following: """Init the Publisher class
with the exchange_name, routing_key, type, durable auto_delete""".
This should be corrected by putting Consumer instead of Publisher.
Closes-Bug: 1623550
Change-Id: I77d09aeb1268ed79590a8b02ab5bf370f3b72caf
Rework the inline documentation for executors, RPC servers and
clients, notifiers and notification listeners for clarity and flow.
Change-Id: If4f1db853a7fc85340177fd2c9c43a479d72459d
Consumer declaration consist of the next steps:
1) declare an exchange
2) declare a queue
3) bind the queue to the exchange
Due to reply exchanges are auto-delete, at the
step 3 the exchange can be removed and consumer.declare()
will raise `queue.bind 404 Exchange not found`.
So, in this case the queue is exist and AMQPListener
just call consumer.consume() on the queue and go to
drain_events() despite on the fact that the queue is
unbound.
This change tries to redeclare queue/exchange proactively
each times channel change and just before consuming messages.
Co-Authored-By: Mehdi Abaakouk <sileht@redhat.com>
Closes-Bug: #1609766
Change-Id: Id8b48df3d26675d72955d417ce7622b1e8aa6195
This patch makes message serialization in the pika driver
configurable.
Change-Id: Ib86cb91110aa89663a54afdd9932d60f6f45f585
Depends-On: Idb12666255a990dfc8f8ff6b43e941b3481b9c1c
This patch removes unused close_linger attribute. Even if this value
will be ever needed, it can always be obtained via getsockopt.
Change-Id: I30a6f0876836d77d7cbf700a8035d9341810b959
This patch makes zmq-driver-pollers work only with
zmq-driver-sockets since the lower-level zmq-socket class
have to be used only as an underlying implementation
for the higher-level zmq-driver-socket class.
Change-Id: Icb6fe89a3af7af6760b724a313ad2a7fb2a106c7
Closes-Bug: #1620543
When data[k] is None during match check, we are getting annoying
TypeError exceptions like: "TypeError: expected string or buffer".
This patch adds a check that data[k] is something the regex can do
matching.
Change-Id: I75c8f602a59a90aeb5a6973f2e9e25708194ad78
This patch renames the rpc_cast_timeout option, because it is
missleading and actually is only used as zmq.LINGER socket option.
Change-Id: Ia7b6fc1213280e93940b34b087ce0e3672d50304