diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2015-12-09 08:04:29 -0800 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2015-12-09 08:04:29 -0800 |
| commit | 99c68002bfd87e5ee1a08dee0c777832f39f95af (patch) | |
| tree | bed97fff8666cc204ea6698ad664a16c3c92fa10 /src | |
| parent | 81834de912bce65f5a3cd9a77b9e137a8cef0570 (diff) | |
| parent | 497ad281afc4af593e5bfacf53100e3da6cb1c76 (diff) | |
| download | rabbitmq-server-git-99c68002bfd87e5ee1a08dee0c777832f39f95af.tar.gz | |
Merge branch 'master' into rabbitmq-server-479
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_control_main.erl | 26 | ||||
| -rw-r--r-- | src/rabbit_resource_monitor_misc.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_upgrade.erl | 9 |
3 files changed, 35 insertions, 6 deletions
diff --git a/src/rabbit_control_main.erl b/src/rabbit_control_main.erl index 91a079da93..c064e82ac6 100644 --- a/src/rabbit_control_main.erl +++ b/src/rabbit_control_main.erl @@ -88,6 +88,7 @@ {trace_on, [?VHOST_DEF]}, {trace_off, [?VHOST_DEF]}, set_vm_memory_high_watermark, + set_disk_free_limit, help ]). @@ -426,6 +427,27 @@ action(set_vm_memory_high_watermark, Node, ["absolute", Arg], _Opts, Inform) -> {error_string, "Unable to parse absolute memory limit value ~p", [Arg]} end; +action(set_disk_free_limit, Node, [Arg], _Opts, Inform) -> + case rabbit_resource_monitor_misc:parse_information_unit(Arg) of + {ok, Limit} -> + Inform("Setting disk free limit on ~p to ~p bytes", [Node, Limit]), + rpc_call(Node, rabbit_disk_monitor, set_disk_free_limit, [Limit]); + {error, parse_error} -> + {error_string, "Unable to parse disk free limit value ~p", [Arg]} + end; + +action(set_disk_free_limit, Node, ["mem_relative", Arg], _Opts, Inform) -> + Frac = list_to_float(case string:chr(Arg, $.) of + 0 -> Arg ++ ".0"; + _ -> Arg + end), + Inform("Setting disk free limit on ~p to ~p of total RAM", [Node, Frac]), + rpc_call(Node, + rabbit_disk_monitor, + set_disk_free_limit, + [{mem_relative, Frac}]); + + action(set_permissions, Node, [Username, CPerm, WPerm, RPerm], Opts, Inform) -> VHost = proplists:get_value(?VHOST_OPT, Opts), Inform("Setting permissions for user \"~s\" in vhost \"~s\"", @@ -667,10 +689,10 @@ read_pid_file(PidFile, Wait) -> become(BecomeNode) -> error_logger:tty(false), - ok = net_kernel:stop(), case net_adm:ping(BecomeNode) of pong -> exit({node_running, BecomeNode}); - pang -> io:format(" * Impersonating node: ~s...", [BecomeNode]), + pang -> ok = net_kernel:stop(), + io:format(" * Impersonating node: ~s...", [BecomeNode]), {ok, _} = rabbit_cli:start_distribution(BecomeNode), io:format(" done~n", []), Dir = mnesia:system_info(directory), diff --git a/src/rabbit_resource_monitor_misc.erl b/src/rabbit_resource_monitor_misc.erl index 88f3bd1121..f90b8ce310 100644 --- a/src/rabbit_resource_monitor_misc.erl +++ b/src/rabbit_resource_monitor_misc.erl @@ -30,10 +30,12 @@ parse_information_unit(Value) when is_integer(Value) -> {ok, Value}; parse_information_unit(Value) when is_list(Value) -> case re:run(Value, "^(?<VAL>[0-9]+)(?<UNIT>kB|KB|MB|GB|kb|mb|gb|Kb|Mb|Gb|kiB|KiB|MiB|GiB|kib|mib|gib|KIB|MIB|GIB|k|K|m|M|g|G)?$", - [{capture, all_names, list}]) of + [{capture, all_but_first, list}]) of {match, [[], _]} -> {ok, list_to_integer(Value)}; - {match, [Unit, Num]} -> + {match, [Num]} -> + {ok, list_to_integer(Num)}; + {match, [Num, Unit]} -> Multiplier = case Unit of KiB when KiB =:= "k"; KiB =:= "kiB"; KiB =:= "K"; KiB =:= "KIB"; KiB =:= "kib" -> 1024; MiB when MiB =:= "m"; MiB =:= "MiB"; MiB =:= "M"; MiB =:= "MIB"; MiB =:= "mib" -> 1024*1024; diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl index daf39b8acc..0a85ef3e7d 100644 --- a/src/rabbit_upgrade.erl +++ b/src/rabbit_upgrade.erl @@ -100,7 +100,12 @@ ensure_backup_taken() -> false -> ok = take_backup(); _ -> ok end; - true -> throw({error, previous_upgrade_failed}) + true -> + error("Found lock file at ~s. + Either previous upgrade is in progress or has failed. + Database backup path: ~s", + [lock_filename(), backup_dir()]), + throw({error, previous_upgrade_failed}) end. take_backup() -> @@ -108,7 +113,7 @@ take_backup() -> case rabbit_mnesia:copy_db(BackupDir) of ok -> info("upgrades: Mnesia dir backed up to ~p~n", [BackupDir]); - {error, E} -> throw({could_not_back_up_mnesia_dir, E}) + {error, E} -> throw({could_not_back_up_mnesia_dir, E, BackupDir}) end. ensure_backup_removed() -> |
