diff options
| author | Diana Corbacho <diana@rabbitmq.com> | 2017-04-25 16:33:01 +0100 |
|---|---|---|
| committer | Diana Corbacho <diana@rabbitmq.com> | 2017-04-25 16:33:01 +0100 |
| commit | 43fe62ef15465ad01c73dd7f591c7659b5d2d307 (patch) | |
| tree | 8853e502e11f042d7a83fb24c34bccaadaf67414 | |
| parent | f3346e82c401e31ab3ff72fa82d1a7c2b7095b03 (diff) | |
| download | rabbitmq-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.erl | 2 | ||||
| -rw-r--r-- | test/unit_inbroker_parallel_SUITE.erl | 21 |
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. %% --------------------------------------------------------------------------- |
