summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2017-08-03 22:59:35 +0300
committerGitHub <noreply@github.com>2017-08-03 22:59:35 +0300
commitf96ab7e419b17bc02ddc9c1b38bc7f861a4b52e1 (patch)
treed4fa6f9a14794da4d78725897c1a8e577e740386
parentac687666a1cc4fb0619792d44cad5f10dd869629 (diff)
parent454a26b359b050d62bb745d11e7bc3677aab29bf (diff)
downloadrabbitmq-server-git-f96ab7e419b17bc02ddc9c1b38bc7f861a4b52e1.tar.gz
Merge pull request #1318 from rabbitmq/rabbitmq-management-460
Change the `state` field in vhost info to `cluster_state`.
-rw-r--r--src/rabbit_vhost.erl19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/rabbit_vhost.erl b/src/rabbit_vhost.erl
index 05a7696052..73c05389be 100644
--- a/src/rabbit_vhost.erl
+++ b/src/rabbit_vhost.erl
@@ -77,7 +77,7 @@ recover(VHost) ->
%%----------------------------------------------------------------------------
--define(INFO_KEYS, [name, tracing, state]).
+-define(INFO_KEYS, [name, tracing, cluster_state]).
add(VHostPath, ActingUser) ->
rabbit_log:info("Adding vhost '~s'~n", [VHostPath]),
@@ -263,10 +263,19 @@ infos(Items, X) -> [{Item, i(Item, X)} || Item <- Items].
i(name, VHost) -> VHost;
i(tracing, VHost) -> rabbit_trace:enabled(VHost);
-i(state, VHost) -> case rabbit_vhost_sup_sup:is_vhost_alive(VHost) of
- true -> running;
- false -> down
- end;
+i(cluster_state, VHost) ->
+ Nodes = rabbit_nodes:all_running(),
+ lists:map(fun(Node) ->
+ State = case rabbit_misc:rpc_call(Node,
+ rabbit_vhost_sup_sup, is_vhost_alive,
+ [VHost]) of
+ {badrpc, nodedown} -> nodedown;
+ true -> running;
+ false -> stopped
+ end,
+ {Node, State}
+ end,
+ Nodes);
i(Item, _) -> throw({bad_argument, Item}).
info(VHost) -> infos(?INFO_KEYS, VHost).