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

Commit 57d8aff

Browse files
committed
Request target node data only in /api/nodes/<node>
[#161218046]
1 parent 6b8e307 commit 57d8aff

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

src/rabbit_mgmt_wm_node.erl

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,8 @@ is_authorized(ReqData, Context) ->
5050

5151
node0(ReqData) ->
5252
Node = list_to_atom(binary_to_list(rabbit_mgmt_util:id(node, ReqData))),
53-
case [N || N <- rabbit_mgmt_wm_nodes:all_nodes(ReqData),
54-
proplists:get_value(name, N) == Node] of
55-
[] -> not_found;
56-
[Data] -> augment(ReqData, Node, Data)
57-
end.
53+
[Data] = node_data(Node, ReqData),
54+
augment(ReqData, Node, Data).
5855

5956
augment(ReqData, Node, Data) ->
6057
lists:foldl(fun (Key, DataN) -> augment(Key, ReqData, Node, DataN) end,
@@ -69,3 +66,18 @@ augment(Key, ReqData, Node, Data) ->
6966
[{Key, Res} | Data];
7067
_ -> Data
7168
end.
69+
70+
node_data(Node, ReqData) ->
71+
S = rabbit_mnesia:status(),
72+
Nodes = proplists:get_value(nodes, S),
73+
Running = proplists:get_value(running_nodes, S),
74+
Type = find_type(Node, Nodes),
75+
rabbit_mgmt_db:augment_nodes(
76+
[[{name, Node}, {running, lists:member(Node, Running)}, {type, Type}]],
77+
rabbit_mgmt_util:range_ceil(ReqData)).
78+
79+
find_type(Node, [{Type, Nodes} | Rest]) ->
80+
case lists:member(Node, Nodes) of
81+
true -> Type;
82+
false -> find_type(Node, Rest)
83+
end.

0 commit comments

Comments
 (0)