diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl index 06f98b1408a3..050e2b463f54 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl @@ -48,40 +48,18 @@ to_json(ReqData, Context) -> end. all_definitions(ReqData, Context) -> - Xs = [X || X <- rabbit_mgmt_wm_exchanges:basic(ReqData), - export_exchange(X)], - Qs = [Q || Q <- rabbit_mgmt_wm_queues:basic(ReqData), - export_queue(Q)], - QNames = [{pget(name, Q), pget(vhost, Q)} || Q <- Qs], - Bs = [B || B <- rabbit_mgmt_wm_bindings:basic(ReqData), - export_binding(B, QNames)], - Vsn = rabbit:base_product_version(), - ProductName = rabbit:product_name(), - ProductVersion = rabbit:product_version(), rabbit_mgmt_util:reply( - [{rabbit_version, rabbit_data_coercion:to_binary(Vsn)}, - {rabbitmq_version, rabbit_data_coercion:to_binary(Vsn)}, - {product_name, rabbit_data_coercion:to_binary(ProductName)}, - {product_version, rabbit_data_coercion:to_binary(ProductVersion)}] ++ - filter( - [{users, rabbit_mgmt_wm_users:users(all)}, - {vhosts, rabbit_mgmt_wm_vhosts:basic()}, - {permissions, rabbit_mgmt_wm_permissions:permissions()}, - {topic_permissions, rabbit_mgmt_wm_topic_permissions:topic_permissions()}, - {parameters, rabbit_mgmt_wm_parameters:basic(ReqData)}, - {global_parameters, rabbit_mgmt_wm_global_parameters:basic()}, - {policies, rabbit_mgmt_wm_policies:basic(ReqData)}, - {queues, Qs}, - {exchanges, Xs}, - {bindings, Bs}]), - case rabbit_mgmt_util:qs_val(<<"download">>, ReqData) of - undefined -> ReqData; - Filename -> rabbit_mgmt_util:set_resp_header( - <<"Content-Disposition">>, - "attachment; filename=" ++ - binary_to_list(Filename), ReqData) - end, - Context). + rabbit_definitions:all_definitions(), + case rabbit_mgmt_util:qs_val(<<"download">>, ReqData) of + undefined -> + ReqData; + Filename -> + rabbit_mgmt_util:set_resp_header(<<"Content-Disposition">>, + "attachment; filename=" + ++ binary_to_list(Filename), + ReqData) + end, + Context). accept_json(ReqData0, Context) -> case rabbit_mgmt_util:read_complete_body(ReqData0) of diff --git a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl index e285dfe06b9f..20ec12ce4f3b 100644 --- a/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl +++ b/deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl @@ -1786,7 +1786,7 @@ definitions_test(Config) -> #{vhost => vhost, component => <<"test">>, name => <<"good">>, - value => <<"ignore">>}), + value => #{a => <<"b">>}}), defs(Config, global_parameters, "/global-parameters/good", put, #{name => <<"good">>, value => #{a => <<"b">>}}), @@ -1878,6 +1878,22 @@ defs_default_queue_type_vhost(Config, QueueType) -> %% Create a test vhost http_put(Config, "/vhosts/test-vhost", #{default_queue_type => QueueType}, {group, '2xx'}), + + Args = #{name => <<"test-vhost">>, + metadata => #{description => <<>>, + default_queue_type => QueueType, + tags => []}, + limits => []}, + + %% Get the definitions + Definitions = http_get(Config, "/definitions", ?OK), + + %% Check if vhost definition is correct + true = lists:any(fun(I) -> test_item(Args, I) end, maps:get(vhosts, Definitions)), + + %% Post the definitions back + http_post(Config, "/definitions", Definitions, {group, '2xx'}), + PermArgs = [{configure, <<".*">>}, {write, <<".*">>}, {read, <<".*">>}], http_put(Config, "/permissions/test-vhost/guest", PermArgs, {group, '2xx'}),