Skip to content

Commit 733c363

Browse files
michaelklishinmergify[bot]
authored andcommitted
GET /api/definitions now returns virtual host metadata
Closes #10515. References #11454. (cherry picked from commit aa466d2)
1 parent 3bbca4b commit 733c363

File tree

3 files changed

+46
-4
lines changed

3 files changed

+46
-4
lines changed

deps/rabbitmq_management/src/rabbit_mgmt_wm_definitions.erl

+1-1
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ export_name(_Name) -> true.
254254

255255
rw_state() ->
256256
[{users, [name, password_hash, hashing_algorithm, tags, limits]},
257-
{vhosts, [name]},
257+
{vhosts, [name, description, tags, default_queue_type, metadata]},
258258
{permissions, [user, vhost, configure, write, read]},
259259
{topic_permissions, [user, vhost, exchange, write, read]},
260260
{parameters, [vhost, component, name, value]},

deps/rabbitmq_management/src/rabbit_mgmt_wm_vhosts.erl

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ augment(Basic, ReqData) ->
5757

5858
augmented(ReqData, #context{user = User}) ->
5959
case rabbit_mgmt_util:disable_stats(ReqData) of
60-
false ->
60+
false ->
6161
rabbit_mgmt_db:augment_vhosts(
6262
[rabbit_vhost:info(V) || V <- rabbit_mgmt_util:list_visible_vhosts(User)],
6363
rabbit_mgmt_util:range(ReqData));
@@ -66,4 +66,4 @@ augmented(ReqData, #context{user = User}) ->
6666
end.
6767

6868
basic() ->
69-
rabbit_vhost:info_all([name]).
69+
rabbit_vhost:info_all([name, description, tags, default_queue_type, metadata]).

deps/rabbitmq_management/test/rabbit_mgmt_http_SUITE.erl

+43-1
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ all_tests() -> [
104104
definitions_server_named_queue_test,
105105
definitions_with_charset_test,
106106
definitions_default_queue_type_test,
107+
definitions_vhost_metadata_test,
107108
long_definitions_test,
108109
long_definitions_multipart_test,
109110
aliveness_test,
@@ -439,7 +440,6 @@ auth_test(Config) ->
439440
%% NOTE: this one won't have www-authenticate in the response,
440441
%% because user/password are ok, tags are not
441442
test_auth(Config, ?NOT_AUTHORISED, [auth_header("user", "user")]),
442-
WrongAuthResponseHeaders = test_auth(Config, ?NOT_AUTHORISED, [auth_header("guest", "gust")]),
443443
%?assertEqual(true, lists:keymember("www-authenticate", 1, WrongAuthResponseHeaders)),
444444
test_auth(Config, ?OK, [auth_header("guest", "guest")]),
445445
http_delete(Config, "/users/user", {group, '2xx'}),
@@ -1800,6 +1800,48 @@ defs_default_queue_type_vhost(Config, QueueType) ->
18001800
http_delete(Config, "/vhosts/test-vhost", {group, '2xx'}),
18011801
ok.
18021802

1803+
definitions_vhost_metadata_test(Config) ->
1804+
register_parameters_and_policy_validator(Config),
1805+
1806+
VHostName = <<"test-vhost">>,
1807+
Desc = <<"Created by definitions_vhost_metadata_test">>,
1808+
DQT = <<"quorum">>,
1809+
Tags = [<<"one">>, <<"tag-two">>],
1810+
Metadata = #{
1811+
description => Desc,
1812+
default_queue_type => DQT,
1813+
tags => Tags
1814+
},
1815+
1816+
%% Create a test vhost
1817+
http_put(Config, "/vhosts/test-vhost", Metadata, {group, '2xx'}),
1818+
PermArgs = [{configure, <<".*">>}, {write, <<".*">>}, {read, <<".*">>}],
1819+
http_put(Config, "/permissions/test-vhost/guest", PermArgs, {group, '2xx'}),
1820+
1821+
%% Get the definitions
1822+
Definitions = http_get(Config, "/definitions", ?OK),
1823+
1824+
%% Check if vhost definition is correct
1825+
VHosts = maps:get(vhosts, Definitions),
1826+
{value, VH} = lists:search(fun(VH) ->
1827+
maps:get(name, VH) =:= VHostName
1828+
end, VHosts),
1829+
ct:pal("VHost: ~p", [VH]),
1830+
?assertEqual(#{
1831+
name => VHostName,
1832+
description => Desc,
1833+
default_queue_type => DQT,
1834+
tags => Tags,
1835+
metadata => Metadata
1836+
}, VH),
1837+
1838+
%% Post the definitions back
1839+
http_post(Config, "/definitions", Definitions, {group, '2xx'}),
1840+
1841+
%% Remove the test vhost
1842+
http_delete(Config, "/vhosts/test-vhost", {group, '2xx'}),
1843+
ok.
1844+
18031845
definitions_default_queue_type_test(Config) ->
18041846
defs_default_queue_type_vhost(Config, <<"classic">>),
18051847
defs_default_queue_type_vhost(Config, <<"quorum">>).

0 commit comments

Comments
 (0)