Simon MacMullen
54497b3e0f
Test max_hops by building a ring with three brokers.
2011-06-16 17:56:23 +01:00
Simon MacMullen
18fbdfb62e
Rename x-forwarding to x-received-from, remove protocol from it.
2011-06-16 13:23:36 +01:00
Simon MacMullen
153be18672
Rejig the configuration to go through an additional layer of indirection so that exchange arguments can plausibly be immutable, and to get rid of the confusing merging.
...
Also fix the insidious default queue expiry that had been hiding.
2011-06-03 18:09:23 +01:00
Simon MacMullen
04e83ea49a
Fix the command-queuing logic. This requires a number of changes:
...
* Actually fix the logic: keep track of the next expected
serial. Queue up commands that come after it, and ignore ones
before it. Take initial value of the serial in the same tx as
we execute rabbit_binding:list_for_source.
* Introduce a function in rabbitmq-server to peek the next value
of an exchange's serial to support this.
* Make (un)binding transmission asynchronous, and note it in the
README. This is the right thing to do, but unfortunately it
means we need to insert sleep()s all over the place in the
test suite. Ah well.
* Make remove_bindings into a single message sent to each link,
rather than a bunch of (remove_binding)s.
* Make add_bindings always send a message to each link, even if
it does nothing, to eat up the serial number.
* Make the serialisation unit test actually declare exchanges.
2011-06-01 16:38:39 +01:00
Simon MacMullen
4cd0c697e1
Add a (currently stupid) test to ensure we serialise the add / remove bindings calls properly.
2011-05-31 13:51:12 +01:00
Simon MacMullen
faff573a89
This is not great, but necessary to run the tests on something other than an Optiplex. Still faster than many other test suites...
2011-05-27 11:57:55 +01:00
Simon MacMullen
f6ae916866
Update now that things have been merged to default
2011-05-17 14:44:00 +01:00
Simon MacMullen
87e333be56
Build system changes.
2011-04-12 12:18:42 +01:00
Simon MacMullen
a288f25ee1
updating use of amqp_client exit reasons
2011-03-29 17:41:43 +01:00
Simon MacMullen
ad8428d9fc
This makes tracking down bugs rather easier.
2011-03-23 12:26:14 +00:00
Simon MacMullen
1081f99586
Split up smart_unbind_test and find a way to test that unbinds get sent upstream.
2011-03-23 11:43:43 +00:00
Simon MacMullen
8f5bf686b8
A bit more general and hopefully clearer.
2011-03-23 11:33:24 +00:00
Simon MacMullen
8cb922f1c2
Refactor tests a bit.
2011-03-23 11:11:26 +00:00
Simon MacMullen
11c8fa7b9a
The previous commit was buggy because we never added bindings. Add more test to catch that, fix it, and optimise add_binding as well.
2011-03-22 16:35:25 +00:00
Simon MacMullen
3cd4b78949
Rename rabbit_federation_exchange_upstream to rabbit_federation_link.
2011-03-21 11:41:57 +00:00
Simon MacMullen
56bc814d8c
Remove URIs from configuration.
2011-03-03 14:13:05 +00:00
Simon MacMullen
693b9b800e
Reset bindings on connect.
2011-03-02 13:13:30 +00:00
Simon MacMullen
49e035243d
Fix various bugs:
...
Make supervision more correct
Make shutdown work
Fix durability in tests
2011-03-01 11:01:42 +00:00
Simon MacMullen
c3031441b1
Split up such that we have one process per (upstream, downstream) combination. This mostly works, but there's something weird with the supervision hierarchy keeping the Erlang VM alive when rabbit_federation_exchange_upstream is not temporary.
2011-02-28 18:10:01 +00:00
Simon MacMullen
86d41ae23e
Create the exchange process at exchange recovery. This means moving the processes / supervisor under the rabbit application, which means making them be able to run in a dumb state when the amqp_client is not yet available, which means splitting code out into a bunch of modules, etc etc.
2011-02-23 16:47:50 +00:00
Simon MacMullen
1cdaeef21f
Use rabbitmqctl wait
2011-02-22 17:02:15 +00:00
Simon MacMullen
6a9a6e896e
Don't allow binding, unbinding or publishing loops, by the simple expedient of only allowing things to cross one hop.
2011-02-22 16:29:42 +00:00
Simon MacMullen
5f0cd4d884
Add forwarding information in a header.
2011-02-18 16:27:12 +00:00
Simon MacMullen
40b80e9f8a
Only transmit unbinds upstream if it's the last with the same {Source, Key, Args}.
2011-02-18 13:40:10 +00:00
Simon MacMullen
cdb9c1e20d
In multiple_downstreams_test messages can arrive in any order. Deal with that and stop being racy.
2011-02-18 12:51:51 +00:00
Simon MacMullen
45f9aad9f1
Conserve vertical space.
2011-02-18 12:46:31 +00:00
Simon MacMullen
2efd415f87
Delete upstream queues when exchange is deleted. Remove childspec from supervisor when exchange is stopped.
2011-02-18 11:59:20 +00:00
Simon MacMullen
6e4d1f6d81
Validate args
2011-02-17 18:14:06 +00:00
Simon MacMullen
a3bcddc176
Delete and recreate upstream queue when creating transient exchange
2011-02-17 17:08:08 +00:00
Simon MacMullen
6c9e11df7c
Turns out e2e just works, but let's prove that (and note that we're not completely efficient here, we send all msgs that get routed to the exchanges bound to the federation exchange, regardless of whether they get routed anywhere after that).
2011-02-17 12:49:26 +00:00
Simon MacMullen
5e573553ee
Handle the upstream broker going down.
2011-02-15 18:25:21 +00:00
Simon MacMullen
c1cf725a5d
Grab the port number from URLs, add a test across two brokers.
2011-02-15 14:30:42 +00:00
Simon MacMullen
690eb40534
Revert "readable name" for the time being as it's not unique enough. And add the test that let me find that.
2011-02-15 12:28:35 +00:00
Simon MacMullen
011c19dfe1
Separate out the config based exchange tests entirely.
2011-02-15 12:15:23 +00:00
Simon MacMullen
537f7b9c69
Multiple upstreams.
2011-02-11 14:44:37 +00:00
Simon MacMullen
3b2c67075e
Refactor tests, test configuration, allow more than one federation exchange per broker(!)
2011-02-11 13:33:32 +00:00
Simon MacMullen
e8bd411781
The simplest possible test.
2011-02-11 12:06:27 +00:00