summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2020-09-28 15:48:46 +0300
committerMichael Klishin <michael@clojurewerkz.org>2020-10-05 17:12:28 +0300
commit8ea09f53e6eb13203fc9c4e13a60670cdccae575 (patch)
tree1cbab62cba65ec112fef31a5de465a95c46266ca
parent1eb1ff1bf649c9fd94ea2b946fdbd75e8f5cbe07 (diff)
downloadrabbitmq-server-git-8ea09f53e6eb13203fc9c4e13a60670cdccae575.tar.gz
Introduce rabbit_alarms:get_alarms/1
-rw-r--r--src/rabbit_alarm.erl10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl
index 2532e114f4..dbf9ae56da 100644
--- a/src/rabbit_alarm.erl
+++ b/src/rabbit_alarm.erl
@@ -21,7 +21,7 @@
-behaviour(gen_event).
-export([start_link/0, start/0, stop/0, register/2, set_alarm/1,
- clear_alarm/1, get_alarms/0, on_node_up/1, on_node_down/1]).
+ clear_alarm/1, get_alarms/0, get_alarms/1, on_node_up/1, on_node_down/1]).
-export([init/1, handle_call/2, handle_event/2, handle_info/2,
terminate/2, code_change/3]).
@@ -92,9 +92,11 @@ set_alarm(Alarm) -> gen_event:notify(?SERVER, {set_alarm, Alarm}).
clear_alarm(Alarm) -> gen_event:notify(?SERVER, {clear_alarm, Alarm}).
-spec get_alarms() -> [{alarm(), []}].
-
get_alarms() -> gen_event:call(?SERVER, ?MODULE, get_alarms, infinity).
+-spec get_alarms(timeout()) -> [{alarm(), []}].
+get_alarms(Timeout) -> gen_event:call(?SERVER, ?MODULE, get_alarms, Timeout).
+
-spec on_node_up(node()) -> 'ok'.
on_node_up(Node) -> gen_event:notify(?SERVER, {node_up, Node}).
@@ -123,7 +125,7 @@ handle_call({register, Pid, AlertMFA}, State = #alarms{alarmed_nodes = AN}) ->
internal_register(Pid, AlertMFA, State)};
handle_call(get_alarms, State) ->
- {ok, get_alarms(State), State};
+ {ok, compute_alarms(State), State};
handle_call(_Request, State) ->
{ok, not_understood, State}.
@@ -302,7 +304,7 @@ is_node_alarmed(Source, Node, #alarms{alarmed_nodes = AN}) ->
false
end.
-get_alarms(#alarms{alarms = Alarms,
+compute_alarms(#alarms{alarms = Alarms,
alarmed_nodes = AN}) ->
Alarms ++ [ {{resource_limit, Source, Node}, []}
|| {Node, Sources} <- dict:to_list(AN), Source <- Sources ].