Skip to content

Commit b85eec2

Browse files
Merge branch 'masaki-furuta-toggle_disk_monitor'
(cherry picked from commit 6e54d77)
1 parent a8602b8 commit b85eec2

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/rabbit_disk_monitor.erl

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
-export([get_disk_free_limit/0, set_disk_free_limit/1,
4040
get_min_check_interval/0, set_min_check_interval/1,
4141
get_max_check_interval/0, set_max_check_interval/1,
42-
get_disk_free/0]).
42+
get_disk_free/0, set_enabled/1]).
4343

4444
-define(SERVER, ?MODULE).
4545
-define(DEFAULT_MIN_DISK_CHECK_INTERVAL, 100).
@@ -110,6 +110,10 @@ set_max_check_interval(Interval) ->
110110
get_disk_free() ->
111111
gen_server:call(?MODULE, get_disk_free, infinity).
112112

113+
-spec set_enabled(string()) -> 'ok'.
114+
set_enabled(Enabled) ->
115+
gen_server:call(?MODULE, {set_enabled, Enabled}, infinity).
116+
113117
%%----------------------------------------------------------------------------
114118
%% gen_server callbacks
115119
%%----------------------------------------------------------------------------
@@ -157,6 +161,15 @@ handle_call({set_max_check_interval, MaxInterval}, _From, State) ->
157161
handle_call(get_disk_free, _From, State = #state { actual = Actual }) ->
158162
{reply, Actual, State};
159163

164+
handle_call({set_enabled, _Enabled = true}, _From, State) ->
165+
start_timer(set_disk_limits(State, State#state.limit)),
166+
rabbit_log:info("Free disk space monitor was enabled"),
167+
{reply, ok, State#state{enabled = true}};
168+
handle_call({set_enabled, _Enabled = false}, _From, State) ->
169+
erlang:cancel_timer(State#state.timer),
170+
rabbit_log:info("Free disk space monitor was manually disabled"),
171+
{reply, ok, State#state{enabled = false}};
172+
160173
handle_call(_Request, _From, State) ->
161174
{noreply, State}.
162175

@@ -236,14 +249,14 @@ parse_free_win32(CommandResult) ->
236249
[{capture, all_but_first, list}]),
237250
list_to_integer(lists:reverse(Free)).
238251

239-
interpret_limit({mem_relative, Relative})
252+
interpret_limit({mem_relative, Relative})
240253
when is_number(Relative) ->
241254
round(Relative * vm_memory_monitor:get_total_memory());
242-
interpret_limit(Absolute) ->
255+
interpret_limit(Absolute) ->
243256
case rabbit_resource_monitor_misc:parse_information_unit(Absolute) of
244257
{ok, ParsedAbsolute} -> ParsedAbsolute;
245258
{error, parse_error} ->
246-
rabbit_log:error("Unable to parse disk_free_limit value ~p",
259+
rabbit_log:error("Unable to parse disk_free_limit value ~p",
247260
[Absolute]),
248261
?DEFAULT_DISK_FREE_LIMIT
249262
end.

0 commit comments

Comments
 (0)