merge stable into master
This commit is contained in:
parent
8fb6be6b45
commit
28060d517b
|
@ -447,7 +447,7 @@ get_value(Table, Id, Tag, Type) ->
|
|||
end.
|
||||
|
||||
ets_delete_value(Table, Key) ->
|
||||
ets:delete(rabbit_mgmt_stats_tables:index(Table), Key),
|
||||
ets:delete_object(rabbit_mgmt_stats_tables:index(Table), Key),
|
||||
ets:delete(Table, Key).
|
||||
|
||||
indexes(Table, Id) ->
|
||||
|
|
|
@ -34,6 +34,9 @@ rest_init(Req, _Config) ->
|
|||
variances(Req, Context) ->
|
||||
{[<<"accept-encoding">>, <<"origin">>], Req, Context}.
|
||||
|
||||
finish_request(ReqData, Context) ->
|
||||
{ok, rabbit_mgmt_cors:set_headers(ReqData, Context), Context}.
|
||||
|
||||
allowed_methods(ReqData, Context) ->
|
||||
{[<<"POST">>, <<"OPTIONS">>], ReqData, Context}.
|
||||
|
||||
|
|
|
@ -53,7 +53,8 @@ resource_exists(ReqData, Context) ->
|
|||
end, ReqData, Context}.
|
||||
|
||||
to_json(ReqData, Context) ->
|
||||
rabbit_mgmt_util:reply(rabbit_mgmt_format:parameter(parameter(ReqData)),
|
||||
rabbit_mgmt_util:reply(rabbit_mgmt_format:parameter(
|
||||
rabbit_mgmt_wm_parameters:fix_shovel_publish_properties(parameter(ReqData))),
|
||||
ReqData, Context).
|
||||
|
||||
accept_content(ReqData, Context = #context{user = User}) ->
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
-export([init/3, rest_init/2, to_json/2, content_types_provided/2, is_authorized/2,
|
||||
resource_exists/2, basic/1]).
|
||||
-export([variances/2]).
|
||||
-export([fix_shovel_publish_properties/1]).
|
||||
|
||||
-include("rabbit_mgmt.hrl").
|
||||
-include_lib("rabbit_common/include/rabbit.hrl").
|
||||
|
@ -52,6 +53,25 @@ is_authorized(ReqData, Context) ->
|
|||
|
||||
%%--------------------------------------------------------------------
|
||||
|
||||
%% Hackish fix to make sure we return a JSON object instead of an empty list
|
||||
%% when the publish-properties value is empty. Should be removed in 3.7.0
|
||||
%% when we switch to a new JSON library.
|
||||
fix_shovel_publish_properties(P) ->
|
||||
case lists:keyfind(component, 1, P) of
|
||||
{_, <<"shovel">>} ->
|
||||
case lists:keytake(value, 1, P) of
|
||||
{value, {_, Values}, P2} ->
|
||||
case lists:keytake(<<"publish-properties">>, 1, Values) of
|
||||
{_, {_, []}, Values2} ->
|
||||
P2 ++ [{value, Values2 ++ [{<<"publish-properties">>, empty_struct}]}];
|
||||
_ ->
|
||||
P
|
||||
end;
|
||||
_ -> P
|
||||
end;
|
||||
_ -> P
|
||||
end.
|
||||
|
||||
basic(ReqData) ->
|
||||
Raw = case rabbit_mgmt_util:id(component, ReqData) of
|
||||
none -> rabbit_runtime_parameters:list();
|
||||
|
@ -65,5 +85,5 @@ basic(ReqData) ->
|
|||
end,
|
||||
case Raw of
|
||||
not_found -> not_found;
|
||||
_ -> [rabbit_mgmt_format:parameter(P) || P <- Raw]
|
||||
_ -> [rabbit_mgmt_format:parameter(fix_shovel_publish_properties(P)) || P <- Raw]
|
||||
end.
|
||||
|
|
|
@ -34,6 +34,9 @@ rest_init(Req, _Config) ->
|
|||
variances(Req, Context) ->
|
||||
{[<<"accept-encoding">>, <<"origin">>], Req, Context}.
|
||||
|
||||
finish_request(ReqData, Context) ->
|
||||
{ok, rabbit_mgmt_cors:set_headers(ReqData, Context), Context}.
|
||||
|
||||
allowed_methods(ReqData, Context) ->
|
||||
{[<<"POST">>, <<"OPTIONS">>], ReqData, Context}.
|
||||
|
||||
|
|
|
@ -29,7 +29,10 @@ gc_test() ->
|
|||
Stats = stats(Before),
|
||||
try
|
||||
rabbit_mgmt_stats:gc(cutoff(), Stats, ?ID),
|
||||
?assertEqual(After, unstats(Stats))
|
||||
?assertEqual(After, unstats(Stats)),
|
||||
Keys = get_table_keys(?TABLE),
|
||||
Indexes = get_indexes(?TABLE),
|
||||
?assertEqual(Keys, Indexes)
|
||||
after
|
||||
ets:delete_all_objects(?TABLE)
|
||||
end
|
||||
|
@ -182,3 +185,14 @@ select_messages(List) ->
|
|||
Messages ->
|
||||
Messages
|
||||
end.
|
||||
|
||||
get_table_keys(Table) ->
|
||||
%% Note: it only matches queue_msg_counts table 4-tuple
|
||||
lists:sort(
|
||||
ets:select(Table,
|
||||
[{{{'$1', '$2'}, '_', '_', '_'},
|
||||
[{'=/=', base, '$2'}, {'=/=', total, '$2'}],
|
||||
[{{'$1', '$2'}}]}])).
|
||||
|
||||
get_indexes(Table) ->
|
||||
lists:sort(ets:tab2list(rabbit_mgmt_stats_tables:index(Table))).
|
||||
|
|
Loading…
Reference in New Issue