From a4701d6efda672290508ccf31d00e0d27b9f83c1 Mon Sep 17 00:00:00 2001 From: Simon MacMullen Date: Mon, 8 Nov 2010 13:50:57 +0000 Subject: [PATCH] Cope slightly if the statistics database is down. --- .../priv/www/js/tmpl/overview.ejs | 10 ++++--- .../priv/www/js/tmpl/queue.ejs | 2 +- .../priv/www/js/tmpl/queues.ejs | 2 +- .../src/rabbit_mgmt_db.erl | 28 +++++++++++++------ 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs index 1796039d86..6406ac2d78 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs @@ -40,10 +40,12 @@ <% if (nodes_interesting) { %> -

- You are connected to: <%= overview.node %>.
- Statistics database on: <%= overview.statistics_db_node %>. -

+

You are connected to: <%= overview.node %>.

+<% if (overview.statistics_db_node == 'not_running') { %> +

Statistics database node could not be contacted. Message rates and queue lengths will not be shown.

+<% } else { %> +

Statistics database on: <%= overview.statistics_db_node %>. +<% } %> <% } %> diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/queue.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/queue.ejs index 95ec5586d6..5a36a9f33e 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/queue.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/queue.ejs @@ -25,7 +25,7 @@ <%= fmt_boolean(queue.durable) %> <%= fmt_boolean(queue.auto_delete) %> - <% if (queue.owner_pid != 'none') { %> + <% if (queue.owner_pid_details != undefined) { %> <%= link_conn(queue.owner_pid_details.name) %> <% } %> diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/queues.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/queues.ejs index 27abe28fc4..4009e651f0 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/queues.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/queues.ejs @@ -43,7 +43,7 @@ <%= queue.node %> <% } %> - <% if (queue.owner_pid != 'none') { %> + <% if (queue.owner_pid_details != undefined) { %> <%= link_conn(queue.owner_pid_details.name) %> <% } %> diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl index 1eabc15eea..d87ac218ce 100644 --- a/deps/rabbitmq_management/src/rabbit_mgmt_db.erl +++ b/deps/rabbitmq_management/src/rabbit_mgmt_db.erl @@ -92,31 +92,41 @@ start_link() -> end. get_queues(Qs) -> - gen_server:call({global, ?MODULE}, {get_queues, Qs, list}, infinity). + safe_call({get_queues, Qs, list}, Qs). get_queue(Q) -> - gen_server:call({global, ?MODULE}, {get_queues, [Q], detail}, infinity). + safe_call({get_queues, [Q], detail}, [Q]). get_exchanges(Xs) -> - gen_server:call({global, ?MODULE}, {get_exchanges, Xs, list}, infinity). + safe_call({get_exchanges, Xs, list}, Xs). get_exchange(X) -> - gen_server:call({global, ?MODULE}, {get_exchanges, [X], detail}, infinity). + safe_call({get_exchanges, [X], detail}, [X]). get_connections() -> - gen_server:call({global, ?MODULE}, get_connections, infinity). + safe_call(get_connections). get_connection(Name) -> - gen_server:call({global, ?MODULE}, {get_connection, Name}, infinity). + safe_call({get_connection, Name}). get_channels() -> - gen_server:call({global, ?MODULE}, get_channels, infinity). + safe_call(get_channels). get_channel(Name) -> - gen_server:call({global, ?MODULE}, {get_channel, Name}, infinity). + safe_call({get_channel, Name}). get_overview() -> - gen_server:call({global, ?MODULE}, get_overview, infinity). + safe_call(get_overview). + +safe_call(Term) -> + safe_call(Term, []). + +safe_call(Term, Item) -> + try + gen_server:call({global, ?MODULE}, Term, infinity) + catch exit:{noproc, _} -> + Item + end. %%----------------------------------------------------------------------------