diff options
author | Michael Klishin <mklishin@pivotal.io> | 2017-03-24 22:21:03 +0300 |
---|---|---|
committer | Michael Klishin <mklishin@pivotal.io> | 2017-03-24 22:21:03 +0300 |
commit | d3934be04b83e69c46f1c2ca0db9a9671cf00511 (patch) | |
tree | 6fafa248adcbb50f80d3ee059cef9ccfa494bad4 /deps/rabbitmq_management | |
parent | 1403a92f4c3981e28fbd21d3605b2178ecb86ac0 (diff) | |
parent | a8eaf48085f1e953eeca0a66256adda0d0f80c6c (diff) | |
download | rabbitmq-server-git-d3934be04b83e69c46f1c2ca0db9a9671cf00511.tar.gz |
Merge branch 'stable'
Conflicts:
src/rabbit_mgmt_util.erl
Diffstat (limited to 'deps/rabbitmq_management')
43 files changed, 68 insertions, 46 deletions
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_util.erl b/deps/rabbitmq_management/src/rabbit_mgmt_util.erl index 14babb9ab4..bb45c9525c 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_util.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_util.erl @@ -30,7 +30,8 @@ -export([with_decode/4, not_found/3, amqp_request/4]). -export([with_channel/4, with_channel/5]). -export([props_to_method/2, props_to_method/4]). --export([all_or_one_vhost/2, http_to_amqp/5, reply/3, filter_vhost/3]). +-export([all_or_one_vhost/2, http_to_amqp/5, reply/3, responder_map/1, + filter_vhost/3]). -export([filter_conn_ch_list/3, filter_user/2, list_login_vhosts/2]). -export([with_decode/5, decode/1, decode/2, set_resp_header/3, args/1]). @@ -209,14 +210,30 @@ destination_type(ReqData) -> <<"q">> -> queue end. +%% Provides a map of content type-to-responder that are supported by +%% reply/3. The map can be used in the content_types_provided/2 callback +%% used by cowboy_rest. Responder functions must be +%% exported from the caller module and must use reply/3 +%% under the hood. +responder_map(FunctionName) -> + [ + {<<"application/json">>, FunctionName} + , {<<"application/bert">>, FunctionName} + ]. + reply(Facts, ReqData, Context) -> reply0(extract_columns(Facts, ReqData), ReqData, Context). reply0(Facts, ReqData, Context) -> ReqData1 = set_resp_header(<<"Cache-Control">>, "no-cache", ReqData), try - {rabbit_json:encode(rabbit_mgmt_format:format_nulls(Facts)), ReqData1, - Context} + case cowboy_req:meta(media_type, ReqData1) of + {{<<"application">>, <<"bert">>, _}, _} -> + {term_to_binary(Facts), ReqData1, Context}; + _ -> + {rabbit_json:encode(rabbit_mgmt_format:format_nulls(Facts)), ReqData1, + Context} + end catch exit:{json_encode, E} -> Error = iolist_to_binary( io_lib:format("JSON encode error: ~p", [E])), @@ -271,6 +288,11 @@ reply_list_or_paginate(Facts, ReqData, Context) -> sort_list(Facts, Sorts) -> sort_list(Facts, Sorts, undefined, false, undefined). +sort_list(Facts, _, [], _, _) -> + %% Do not sort when we are explicitly requsted to sort with an + %% empty sort columns list. Note that this clause won't match when + %% 'sort' parameter is not provided in a HTTP request at all. + Facts; sort_list(Facts, DefaultSorts, Sort, Reverse, Pagination) -> SortList = case Sort of undefined -> DefaultSorts; diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl index 582d906619..f03eaf5589 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_aliveness_test.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case rabbit_mgmt_util:vhost(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl index be8688e42d..9d68446f51 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_binding.erl @@ -35,7 +35,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl index 5ffe5b30ad..719cf509b7 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_bindings.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. %% The current version of Cowboy forces us to report the resource doesn't %% exist here in order to get a 201 response. It seems Cowboy confuses the diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl index a3c43f9cbe..eeef2f0b45 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channel.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> case channel(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl index 5a527a142b..80ab49e417 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> try diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl index 785e3c2ad4..985982b1c7 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_channels_vhost.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {rabbit_vhost:exists(rabbit_mgmt_util:id(vhost, ReqData)), ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl index 06c504a84c..d7b3d4293c 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_cluster_name.erl @@ -35,7 +35,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl index 9a812dddae..cf74b63ec7 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. allowed_methods(ReqData, Context) -> {[<<"HEAD">>, <<"GET">>, <<"DELETE">>, <<"OPTIONS">>], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl index dc5fd6f16c..4f59f3a365 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connection_channels.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> case rabbit_mgmt_wm_connection:conn(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl index c5d82e378a..8c68d14bea 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> try diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl index 5437023d69..358c28ad4a 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_connections_vhost.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {rabbit_vhost:exists(rabbit_mgmt_util:id(vhost, ReqData)), ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl index 9735a3cb7e..5c13f4e5a3 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_consumers.erl @@ -35,7 +35,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case rabbit_mgmt_util:vhost(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl index 81835e04fb..86e6bd219d 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl @@ -40,7 +40,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{<<"application/json">>, accept_json}, diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl index 215e9f2499..55721e3c0f 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl index a6b31fbcdf..f9004b2303 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchange_publish.erl @@ -38,7 +38,7 @@ allowed_methods(ReqData, Context) -> {[<<"POST">>, <<"OPTIONS">>], ReqData, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case rabbit_mgmt_wm_exchange:exchange(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl index 70ec59f81d..0d513d3940 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_exchanges.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case exchanges0(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl index f3202d1a2d..4e1d70ad17 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_extensions.erl @@ -33,7 +33,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> Modules = rabbit_mgmt_dispatcher:modules([]), diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl index cf53571e02..549914e35b 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameter.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl index 287ff917c9..4319c4a0c9 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_global_parameters.erl @@ -33,7 +33,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> rabbit_mgmt_util:reply_list(basic(), ReqData, Context). @@ -44,4 +44,4 @@ is_authorized(ReqData, Context) -> %%-------------------------------------------------------------------- basic() -> - rabbit_runtime_parameters:list_global().
\ No newline at end of file + rabbit_runtime_parameters:list_global(). diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl index cb47b53b3f..81c88f7627 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_healthchecks.erl @@ -32,7 +32,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case node0(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl index 17d72d743e..16b5e0be4c 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case node0(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl index 673b16234d..b134bfdf59 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory.erl @@ -33,7 +33,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {node_exists(ReqData, get_node(ReqData)), ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl index 1363de7c83..cf350c862d 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_node_memory_ets.erl @@ -33,7 +33,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {node_exists(ReqData, get_node(ReqData)), ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl index 7e13c4a65d..c2e791c018 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_nodes.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> try diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl index 01ef77f856..be2e4e0ee1 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_overview.erl @@ -35,7 +35,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context = #context{user = User = #user{tags = Tags}}) -> RatesMode = rabbit_mgmt_agent_config:get_env(rates_mode), diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl index f448645547..8ea82c18d1 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameter.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl index bf5fea5e13..2c83cfc2fa 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_parameters.erl @@ -35,7 +35,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case basic(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl index d374a16493..c6ce9557e8 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permission.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl index 49fa613575..4a8bf75d22 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> rabbit_mgmt_util:reply_list(permissions(), ["vhost", "user"], diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl index 8bce98f02d..a85ed7046e 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_user.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case rabbit_mgmt_wm_user:user(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl index b113a2d26a..515150e01b 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_permissions_vhost.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {rabbit_vhost:exists(rabbit_mgmt_wm_vhost:id(ReqData)), ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl index 1dedcf5c9d..99fbe6634d 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policies.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case basic(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl index 12ff1fdd65..30bb9eef58 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_policy.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl index 7874a42491..17a745194a 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl index 4cf91f4da3..750e9469f1 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queue_get.erl @@ -38,7 +38,7 @@ allowed_methods(ReqData, Context) -> {[<<"POST">>, <<"OPTIONS">>], ReqData, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case rabbit_mgmt_wm_queue:queue(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl index 9348266bc0..91e925eb0a 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_queues.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. resource_exists(ReqData, Context) -> {case queues0(ReqData) of diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl index a9cc7736f7..2e8e5a547c 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_user.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl index 7bff83ee9b..2ca44bbc06 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_users.erl @@ -36,7 +36,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> rabbit_mgmt_util:reply_list(users(), ReqData, Context). diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl index 28ecba1081..08efa13b8c 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhost.erl @@ -38,7 +38,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. content_types_accepted(ReqData, Context) -> {[{'*', accept_content}], ReqData, Context}. diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl index 37fd120596..eee83de7ee 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl @@ -34,7 +34,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context) -> try diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl index 876cbbb676..d074c741a4 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_whoami.erl @@ -33,7 +33,7 @@ variances(Req, Context) -> {[<<"accept-encoding">>, <<"origin">>], Req, Context}. content_types_provided(ReqData, Context) -> - {[{<<"application/json">>, to_json}], ReqData, Context}. + {rabbit_mgmt_util:responder_map(to_json), ReqData, Context}. to_json(ReqData, Context = #context{user = User}) -> rabbit_mgmt_util:reply(rabbit_mgmt_format:user(User), ReqData, Context). diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl index d45e8cb296..243bd3f325 100644 --- a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl +++ b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl @@ -2191,7 +2191,7 @@ cors_test(Config) -> io:format("CORS test HdNoCORS: ~p~n", [HdNoCORS]), false = lists:keymember("access-control-allow-origin", 1, HdNoCORS), %% The Vary header should include "Origin" regardless of CORS configuration. - {_, "accept-encoding, origin"} = lists:keyfind("vary", 1, HdNoCORS), + {_, "accept, accept-encoding, origin"} = lists:keyfind("vary", 1, HdNoCORS), %% Enable CORS. rabbit_ct_broker_helpers:rpc(Config, 0, application, set_env, [rabbitmq_management, cors_allow_origins, ["http://rabbitmq.com"]]), %% We should only receive allow-origin and allow-credentials from GET. |