Skip to content
This repository was archived by the owner on Nov 17, 2020. It is now read-only.

Commit a64ef0f

Browse files
Coerce upstream set definition to proplists
So that it passes validation. Closes #67. [#154751618]
1 parent 846a4c2 commit a64ef0f

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/rabbit_federation_parameters.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ unregister() ->
4747
{Class, Name} <- ?RUNTIME_PARAMETERS],
4848
ok.
4949

50-
validate(_VHost, <<"federation-upstream-set">>, Name, Term, _User) ->
50+
validate(_VHost, <<"federation-upstream-set">>, Name, Term0, _User) ->
51+
Term = [rabbit_data_coercion:to_proplist(Upstream) || Upstream <- Term0],
5152
[rabbit_parameter_validation:proplist(
5253
Name,
5354
[{<<"upstream">>, fun rabbit_parameter_validation:binary/2, mandatory} |

test/unit_inbroker_SUITE.erl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
-include_lib("common_test/include/ct.hrl").
2020
-include_lib("rabbit_common/include/rabbit.hrl").
21+
-include_lib("eunit/include/eunit.hrl").
2122

2223
-include("rabbit_federation.hrl").
2324

@@ -37,7 +38,8 @@ groups() ->
3738
serialisation,
3839
scratch_space,
3940
remove_credentials,
40-
get_connection_name
41+
get_connection_name,
42+
upstream_set_validation
4143
]}
4244
].
4345

@@ -163,6 +165,21 @@ get_connection_name(_Config) ->
163165
),
164166
ok.
165167

168+
upstream_set_validation(_Config) ->
169+
?assertEqual(rabbit_federation_parameters:validate(<<"/">>, <<"federation-upstream-set">>,
170+
<<"a-name">>,
171+
[[{<<"upstream">>, <<"devtest1">>}],
172+
[{<<"upstream">>, <<"devtest2">>}]],
173+
<<"acting-user">>),
174+
[[ok], [ok]]),
175+
?assertEqual(rabbit_federation_parameters:validate(<<"/">>, <<"federation-upstream-set">>,
176+
<<"a-name">>,
177+
[#{<<"upstream">> => <<"devtest3">>},
178+
#{<<"upstream">> => <<"devtest4">>}],
179+
<<"acting-user">>),
180+
[[ok], [ok]]),
181+
ok.
182+
166183
with_exchanges(Fun) ->
167184
rabbit_exchange:declare(r(?US_NAME), fanout, false, false, false, [],
168185
<<"acting-user">>),

0 commit comments

Comments
 (0)