summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2017-04-25 16:33:01 +0100
committerDiana Corbacho <diana@rabbitmq.com>2017-04-25 16:33:01 +0100
commit43fe62ef15465ad01c73dd7f591c7659b5d2d307 (patch)
tree8853e502e11f042d7a83fb24c34bccaadaf67414
parentf3346e82c401e31ab3ff72fa82d1a7c2b7095b03 (diff)
downloadrabbitmq-server-git-43fe62ef15465ad01c73dd7f591c7659b5d2d307.tar.gz
Support integers in memory relative free disk space limits
rabbitmq-server#1194 [#144271963]
-rw-r--r--src/rabbit_disk_monitor.erl2
-rw-r--r--test/unit_inbroker_parallel_SUITE.erl21
2 files changed, 17 insertions, 6 deletions
diff --git a/src/rabbit_disk_monitor.erl b/src/rabbit_disk_monitor.erl
index 629228a1be..6ead3f9105 100644
--- a/src/rabbit_disk_monitor.erl
+++ b/src/rabbit_disk_monitor.erl
@@ -237,7 +237,7 @@ parse_free_win32(CommandResult) ->
list_to_integer(lists:reverse(Free)).
interpret_limit({mem_relative, Relative})
- when is_float(Relative) ->
+ when is_number(Relative) ->
round(Relative * vm_memory_monitor:get_total_memory());
interpret_limit(Absolute) ->
case rabbit_resource_monitor_misc:parse_information_unit(Absolute) of
diff --git a/test/unit_inbroker_parallel_SUITE.erl b/test/unit_inbroker_parallel_SUITE.erl
index 3867459cdc..2ee6411893 100644
--- a/test/unit_inbroker_parallel_SUITE.erl
+++ b/test/unit_inbroker_parallel_SUITE.erl
@@ -1521,15 +1521,26 @@ set_disk_free_limit_command1(_Config) ->
ok = control_action(set_disk_free_limit,
["2000kiB"]),
2048000 = rabbit_disk_monitor:get_disk_free_limit(),
+
+ %% Use an integer
ok = control_action(set_disk_free_limit,
- ["mem_relative", "1.1"]),
- ExpectedLimit = 1.1 * vm_memory_monitor:get_total_memory(),
- % Total memory is unstable, so checking order
- true = ExpectedLimit/rabbit_disk_monitor:get_disk_free_limit() < 1.2,
- true = ExpectedLimit/rabbit_disk_monitor:get_disk_free_limit() > 0.98,
+ ["mem_relative", "1"]),
+ check_limit(1),
+
+ %% Use a float
+ ok = control_action(set_disk_free_limit,
+ ["mem_relative", "1.5"]),
+ check_limit(1.5),
+
ok = control_action(set_disk_free_limit, ["50MB"]),
passed.
+check_limit(Limit) ->
+ ExpectedLimit = Limit * vm_memory_monitor:get_total_memory(),
+ % Total memory is unstable, so checking order
+ true = ExpectedLimit/rabbit_disk_monitor:get_disk_free_limit() < 1.2,
+ true = ExpectedLimit/rabbit_disk_monitor:get_disk_free_limit() > 0.98.
+
%% ---------------------------------------------------------------------------
%% rabbitmqctl helpers.
%% ---------------------------------------------------------------------------