diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2011-07-14 16:33:50 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-07-14 16:33:50 +0100 |
commit | 31477bd0bb6918fbe11394e58d729503d552ec87 (patch) | |
tree | 094add583e14debe81804fe5a01bcb1278c88ff5 /src/rabbit_upgrade_functions.erl | |
parent | 51ca68c9e0a93e3c5fdac952cf9f8a99e14c4d55 (diff) | |
parent | 3ceca58444a08af7a5db89896aa177b48573d85d (diff) | |
download | rabbitmq-server-31477bd0bb6918fbe11394e58d729503d552ec87.tar.gz |
Merging default to bug24230
Diffstat (limited to 'src/rabbit_upgrade_functions.erl')
-rw-r--r-- | src/rabbit_upgrade_functions.erl | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/rabbit_upgrade_functions.erl b/src/rabbit_upgrade_functions.erl index 797e9fb9..9502d497 100644 --- a/src/rabbit_upgrade_functions.erl +++ b/src/rabbit_upgrade_functions.erl @@ -16,7 +16,8 @@ -module(rabbit_upgrade_functions). --include("rabbit.hrl"). +%% If you are tempted to add include("rabbit.hrl"). here, don't. Using record +%% defs here leads to pain later. -compile([export_all]). @@ -32,6 +33,7 @@ -rabbit_upgrade({user_admin_to_tags, mnesia, [user_to_internal_user]}). -rabbit_upgrade({ha_mirrors, mnesia, []}). -rabbit_upgrade({gm, mnesia, []}). +-rabbit_upgrade({exchange_scratch, mnesia, [trace_exchanges]}). -rabbit_upgrade({mirrored_supervisor, mnesia, []}). %% ------------------------------------------------------------------- @@ -50,6 +52,7 @@ -spec(user_admin_to_tags/0 :: () -> 'ok'). -spec(ha_mirrors/0 :: () -> 'ok'). -spec(gm/0 :: () -> 'ok'). +-spec(exchange_scratch/0 :: () -> 'ok'). -endif. @@ -156,6 +159,18 @@ gm() -> create(gm_group, [{record_name, gm_group}, {attributes, [name, version, members]}]). +exchange_scratch() -> + ok = exchange_scratch(rabbit_exchange), + ok = exchange_scratch(rabbit_durable_exchange). + +exchange_scratch(Table) -> + transform( + Table, + fun ({exchange, Name, Type, Dur, AutoDel, Int, Args}) -> + {exchange, Name, Type, Dur, AutoDel, Int, Args, undefined} + end, + [name, type, durable, auto_delete, internal, arguments, scratch]). + mirrored_supervisor() -> create(mirrored_sup_childspec, [{record_name, mirrored_sup_childspec}, @@ -182,11 +197,7 @@ create(Tab, TabDef) -> %% the exchange type registry or worker pool to be running by dint of %% not validating anything and assuming the exchange type does not %% require serialisation. +%% NB: this assumes the pre-exchange-scratch-space format declare_exchange(XName, Type) -> - X = #exchange{name = XName, - type = Type, - durable = true, - auto_delete = false, - internal = false, - arguments = []}, + X = {exchange, XName, Type, true, false, false, []}, ok = mnesia:dirty_write(rabbit_durable_exchange, X). |