Commit Graph

347 Commits

Author SHA1 Message Date
Arnaud Cogoluègnes f5341878bc
Use = separator for stream offset STOMP
For offset (e.g. offset=5000) and timestamp (timetamp=5000).
It was ":" before, but this is already the separator for key/value
in STOMP headers. This was actually working with the client used
to test, but other clients may get confused.

References #3002.
2021-04-26 14:38:43 +02:00
Arnaud Cogoluègnes 065b92114d
Support streams in STOMP plugin
This commit introduces the support of an x-stream-offset header
in the SUBSCRIBE frame to start consuming from a specific place
in a stream. The possible values are first, last, next, offset:<offset-value>
(e.g. offset:40000), timestamp:<timestamp-in-seconds> (e.g. timestamp:1619428685).

This commit also propagates the x-stream-offset header in the MESSAGE frame
to know the offset of a the delivered message in the stream.
2021-04-26 11:15:55 +02:00
Philip Kuryloski e4aceb53a0 Add rabbitmq_stomp to bazel 2021-04-14 12:44:16 +02:00
Carl Hörberg 681cb78b0d Test that proxy dest address is picked up in all plugins 2021-03-31 11:28:40 +02:00
Michael Klishin 1587e080b9
STOMP: remove a flaky Python test already covered in Erlang 2021-03-22 20:03:08 +03:00
Michael Klishin ca201bbd7d
STOMP: upgrade Python suite(s) to stomp.py 6.x 2021-03-13 06:08:27 +03:00
Michael Klishin 6598dafe90
STOMP: add a runner to transactions.py 2021-03-13 06:00:10 +03:00
Michael Klishin 32814fb664
STOMP: continue modernizing stomp.py test suites 2021-03-12 09:31:39 +03:00
Michael Klishin bc769343bb
STOMP: stomp.py suite cosmetics 2021-03-12 07:31:52 +03:00
Michael Klishin a5cd08394e
STOMP: further stomp.py suite modernization steps 2021-03-12 07:25:15 +03:00
Michael Klishin 17cb24deb4
Rename a STOMP test suite 2021-03-12 07:25:15 +03:00
Michael Klishin 0801b61e8f
STOMP: run Python tests on Python 3 2021-03-11 22:03:29 +03:00
Michael Klishin 97ff62d3b2
Drop trailing newlines from logged messages where possible
Lager strips trailing newline characters but OTP logger with the default
formatter adds a newline at the end. To avoid unintentional multi-line log
messages we have to revisit most messages logged.

Some log entries are intentionally multiline, others
are printed to stdout directly: newlines are required there
for sensible formatting.
2021-03-11 15:17:37 +01:00
Michael Klishin 3c38b42226
STOMP: modernize Python test suite
* Upgrade to stomp.py 4.1.24 to gain Python 3.9 compatibility
 * Adjust to modern client/plugin disconnection delay
 * Remove tests that are not really possible to test with
   a regular well-behaved client (missed heartbeats)
2021-03-10 07:35:34 +03:00
Michael Klishin 52479099ec
Bump (c) year 2021-01-22 09:00:14 +03:00
dcorbacho 83f3eb1a4a
Test stream queues with STOMP
Stream queues require prefetch count and manual acknowledgment

(cherry picked from commit 45d3c3fecbf9f9782851bf580620a50bb4692a45)
2020-11-17 08:28:30 -08:00
Michael Klishin 921a3c29a2 Switch to MPL2 2020-07-14 21:55:55 +03:00
Jean-Sébastien Pédron d0e3ff9f45 python_SUITE: Add more log messages to test_util.py
Hopefully we should learn more when we hit another failure with the
plugin failing to listen to its TCP port.

While here, remove the try/catch block around the execution of
rabbitmqctl(8):
* It swallowed the exception and the error was ignored, hoping
  subsequent line would cause the testcase to fail.
* The print() was misformed: the `.format()` call was applied to the
  print() return value, not the string, leading to a useless message being
  printed.
* CalledProcessError.stderr does not exist according to the
  documentation, so even if the print() was correct, it would never work.

subprocess already prints the command output to stdout. So let's get rid
of this try/catch which only broke things in many ways.
2020-05-12 17:25:57 +02:00
Jean-Sébastien Pédron 594d331904 Update copyright (year 2020) 2020-03-10 16:51:40 +01:00
Jean-Sébastien Pédron cb095c20e9 python_SUITE: Use Pika 1.1.0
Pika 0.12.0 fails to compile for me with the latest Python 3.7.x (3.7.6
here).
2020-02-28 10:03:15 +01:00
Michael Klishin 98834380b3 (c) bump 2019-12-29 05:50:36 +03:00
Luke Bakken 32e0b1bcd2 Fix test by adding hide_server_info to schema 2019-10-28 11:48:08 -07:00
Luke Bakken 94bdf2a65e Add support for hide_server_info
Fixes #140

Add test that fails
2019-10-28 11:37:53 -07:00
Jean-Sébastien Pédron 656db39c67 python_SUITE: Skip quorum queue test if they are unavailable
To determine this, we look at the error reported by the broker when the
client tries to subscribe (and thus declare) a quorum queue.
2019-10-10 14:45:18 +02:00
Michael Klishin c8878fc963 Wait for a bit longer 2019-10-08 22:53:49 -05:00
Arnaud Cogoluègnes 2725600b02 Support x-queue-type argument
To be able to use quorum queues. Note deliveries from a classic queue
come with a context to inform back the queue about the handling of the
message (credit flow). Deliveries from a quorum queue do have this
context because quorum queues do not use credit flow. So supporting
quorum queues is not just about propagating the type header to AMQP
but needs also to handle both kinds of deliveries.

Fixes #138
2019-10-04 14:44:19 +02:00
Jean-Sébastien Pédron a77a41802a amqqueue_SUITE: Format protocol version as e.g. "1_0" in test group names
This allows us to specify a group name in the `gmake ct-amqqueue t=...`
command line.
2019-07-23 11:29:58 +02:00
Spring Operator 12de902841 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* http://blog.listincomprehension.com/search/label/procket (200) with 1 occurrences could not be migrated:
   ([https](https://blog.listincomprehension.com/search/label/procket) result ClosedChannelException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/TOML) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/subproc) result SSLHandshakeException).
* http://e2project.org (200) with 1 occurrences could not be migrated:
   ([https](https://e2project.org) result AnnotatedConnectException).
* http://nitrogenproject.com/ (200) with 2 occurrences could not be migrated:
   ([https](https://nitrogenproject.com/) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 1 occurrences could not be migrated:
   ([https](https://proper.softlab.ntua.gr) result SSLHandshakeException).
* http://yaws.hyber.org (200) with 1 occurrences could not be migrated:
   ([https](https://yaws.hyber.org) result AnnotatedConnectException).
* http://choven.ca (503) with 1 occurrences could not be migrated:
   ([https](https://choven.ca) result ConnectTimeoutException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* http://fixprotocol.org/ (301) with 1 occurrences migrated to:
  https://fixtrading.org ([https](https://fixprotocol.org/) result SSLHandshakeException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
  https://erldb.org ([https](https://erldb.org) result UnknownHostException).
* http://stomp.codehaus.org/Protocol (UnknownHostException) with 1 occurrences migrated to:
  https://stomp.codehaus.org/Protocol ([https](https://stomp.codehaus.org/Protocol) result UnknownHostException).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://cloudi.org/ with 27 occurrences migrated to:
  https://cloudi.org/ ([https](https://cloudi.org/) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
  https://erlware.org/ ([https](https://erlware.org/) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
  https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
  https://ninenines.eu ([https](https://ninenines.eu) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
  https://www.actordb.com/ ([https](https://www.actordb.com/) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
  https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html) result 200).
* http://www.rabbitmq.com/stomp.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/stomp.html ([https](https://www.rabbitmq.com/stomp.html) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
  https://www.rebar3.org ([https](https://www.rebar3.org) result 200).
* http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
  https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
  https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
  https://lasp-lang.org/ ([https](https://lasp-lang.org/) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
  https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec) result 301).
* http://www.mozilla.org/MPL/ with 22 occurrences migrated to:
  https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
* http://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html ([https](https://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
  https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli) result 301).
2019-03-20 03:23:56 -05:00
Luke Bakken c246ffd3a5 Add test for default_topic_exchange, fixup parse_routing 2019-01-24 06:53:06 -08:00
Luke Bakken 96f336d47a Add cuttlefish config and test 2019-01-23 10:15:47 -08:00
Michael Klishin e91e498d06 New style config: support stomp.tcp_listen_options.*
That mimic tcp_listen_options.* for AMQP 0-9-1 and AMQP 1.0 listeners.

Closes #129.

[#157922235]
2019-01-02 20:18:40 +03:00
Michael Klishin 417aeac814 Use Pika 0.12.0 for Python 3.7 compatibility
See pika/pika#923.
2018-10-10 22:55:46 +03:00
Michael Klishin 720105add2 Python test suite: compatibility with Python 3.5+
"await" is a keyword as of PEP 492.
2018-07-11 22:13:13 +03:00
Michael Klishin c1559f4834 Python 3 compatbility: cosmetic drive-by changes 2018-04-03 00:36:59 +03:00
Michael Klishin 008d542d20 Ditto 2018-04-03 00:36:41 +03:00
Michael Klishin f24bc6dfdb Python 3 compatibility 2018-04-02 23:43:14 +03:00
Michael Klishin 469f899de8 Add a missing parenthesis 2018-04-02 23:42:51 +03:00
Michael Klishin 7c634f228b Python 3 compatibility 2018-04-02 23:27:42 +03:00
Michael Klishin 0d2a49b257 Use Pika 0.11.x 2018-04-02 23:00:36 +03:00
Michael Klishin 36feef395c One more test 2018-04-02 23:00:21 +03:00
Michael Klishin 4b83bc91f8 Merge branch 'stable' 2017-10-01 13:04:34 +03:00
Michael Klishin fe9481cbfe Missing test expectation update from #121 2017-10-01 13:04:22 +03:00
Luke Bakken 8ec59d4445 Add test demonstrating topic permissions using Python 2017-06-14 10:58:52 -07:00
Michael Klishin cb5086bf44 Merge branch 'master' into rabbitmq-server-1229 2017-06-13 23:57:01 +03:00
Arnaud Cogoluègnes c6fdd8fa17 Support variable expansion in topic authz
Part of rabbitmq/rabbitmq-server#1229
2017-06-12 10:35:52 +02:00
Michael Klishin 5038656062 Merge branch 'stable' 2017-06-10 09:29:07 +03:00
Luke Bakken fe222abd81 Add failing test that shows custom headers are not returned.
Add some more test cases and fix simple_test_send_rec use the headers argument to conn.send

Add AMQP -> STOMP test validating a custom header

Send headers in AMQP message and verify STOMP receipt
2017-06-09 11:15:37 -07:00
Michael Klishin 9be7f2efe0 Merge branch 'stable' 2017-04-02 22:03:38 +03:00
Michael Klishin bbd0835011 (c) year 2017-04-02 21:49:30 +03:00
Daniil Fedotov db74639159 Config schema test for plugin
Part of [#141481501]
Moved from rabbitmq-server
2017-03-17 11:02:07 +00:00