diff options
| author | Daniil Fedotov <dfedotov@pivotal.io> | 2016-02-08 12:33:43 +0000 |
|---|---|---|
| committer | Daniil Fedotov <dfedotov@pivotal.io> | 2016-02-08 12:33:43 +0000 |
| commit | d7ae42db7c3741c5a93da596ac0bd7efccd58985 (patch) | |
| tree | de5a2ae2c0909293cfd0a57f69697a788338aeae /src | |
| parent | 266f37db4b4bbf23c9559b10d7d716bfc66b6652 (diff) | |
| download | rabbitmq-server-git-d7ae42db7c3741c5a93da596ac0bd7efccd58985.tar.gz | |
Scripts to start erlang node with .conf file to generate config
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit.erl | 20 | ||||
| -rw-r--r-- | src/rabbit_config.erl | 34 | ||||
| -rw-r--r-- | src/rabbit_prelaunch.erl | 16 |
3 files changed, 52 insertions, 18 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index 23f5fa77b3..f2f08ff495 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -272,14 +272,16 @@ start() -> boot() -> start_it(fun() -> - % case rabbit_config:prepare_config() of - % ok -> ok; - % {error, Reason} -> - % log_boot_error_and_exit( - % generate_config_file, - % "~nConfig file generation failed ~p", - % [Reason]) - % end, + case rabbit_config:prepare_config() of + {ok, ConfigFile} -> + rabbit_config:update_app_config(ConfigFile); + {error, Reason} -> + log_boot_error_and_exit( + generate_config_file, + "~nConfig file generation failed ~p", + [Reason]); + ok -> ok + end, ok = ensure_application_loaded(), HipeResult = rabbit_hipe:maybe_hipe_compile(), ok = start_logger(), @@ -817,7 +819,7 @@ config_files() -> config_setting() -> case application:get_env(rabbit, windows_service_config) of {ok, File1} -> File1; - undefined -> case os:getenv("RABBITMQ_CONFIG_FILE_ACTUAL") of + undefined -> case os:getenv("RABBITMQ_CONFIG_FILE") of false -> none; File2 -> File2 end diff --git a/src/rabbit_config.erl b/src/rabbit_config.erl index 5e75223f63..2ceb11a27d 100644 --- a/src/rabbit_config.erl +++ b/src/rabbit_config.erl @@ -1,10 +1,16 @@ -module(rabbit_config). --export([generate_config_file/3, prepare_config/0]). +-export([generate_config_file/3, prepare_config/0, prepare_config/1, update_app_config/1]). prepare_config() -> - case {init:get_argument(conf), init:get_argument(conf_dir), init:get_argument(conf_gen_script)} of - {{ok, Configs}, {ok, ConfDir}, {ok, ConfScript}} -> + case init:get_argument(conf) of + {ok, Configs} -> prepare_config(Configs); + _ -> ok + end. + +prepare_config(Configs) -> + case {init:get_argument(conf_dir), init:get_argument(conf_gen_script)} of + {{ok, ConfDir}, {ok, ConfScript}} -> ConfFiles = [Config++".conf" || [Config] <- Configs, rabbit_file:is_file(Config ++ ".conf")], @@ -13,8 +19,7 @@ prepare_config() -> _ -> case generate_config_file(ConfFiles, ConfDir, ConfScript) of {ok, GeneratedConfigFile} -> - ok = application_controller:change_application_data( - [], [GeneratedConfigFile]); + {ok, GeneratedConfigFile}; {error, Reason} -> {error, Reason} end @@ -22,12 +27,25 @@ prepare_config() -> _ -> ok end. +update_app_config(ConfigFile) -> + ok = application_controller:change_application_data([], [ConfigFile]). + generate_config_file(ConfFiles, ConfDir, ConfScript) -> - rabbit_file:recursive_delete(filename:join([ConfDir, "generated"])), - Command = [ ConfScript, " -e ", ConfDir, [[" -c ", ConfFile] || ConfFile <- ConfFiles]], + SchemaFile = filename:join([filename:dirname(ConfScript), "rabbitmq.schema"]), + GeneratedDir = filename:join([ConfDir, "generated"]), + rabbit_file:recursive_delete([GeneratedDir]), + Command = lists:concat(["escript ", ConfScript, + " -f rabbitmq -i ", SchemaFile, + " -e ", ConfDir, + [[" -c ", ConfFile] || ConfFile <- ConfFiles]]), Result = rabbit_misc:os_cmd(Command), case string:str(Result, " -config ") of 0 -> {error, {generaion_error, Result}}; - _ -> {ok, filename:join([ConfDir, "generated", "rabbitmq.config"])} + _ -> + [OutFile] = rabbit_file:wildcard("rabbitmq.*.config", GeneratedDir), + ResultFile = filename:join([GeneratedDir, "rabbitmq.config"]), + Ren = rabbit_file:rename(filename:join([GeneratedDir, OutFile]), + ResultFile), + {ok, ResultFile} end.
\ No newline at end of file diff --git a/src/rabbit_prelaunch.erl b/src/rabbit_prelaunch.erl index 5ecdd75acc..9fb7e8b16c 100644 --- a/src/rabbit_prelaunch.erl +++ b/src/rabbit_prelaunch.erl @@ -83,7 +83,7 @@ dist_port_set_check() -> false -> ok; File -> - case file:consult(File ++ ".config") of + case get_config(File) of {ok, [Config]} -> Kernel = pget(kernel, Config, []), case {pget(inet_dist_listen_min, Kernel, none), @@ -98,6 +98,20 @@ dist_port_set_check() -> end end. +get_config(File) -> + case rabbit_file:is_file(File ++ ".config") of + true -> file:consult(File ++ ".config"); + false -> + case rabbit_file:is_file(File ++ ".conf") of + true -> + case rabbit_config:prepare_config([[File]]) of + {ok, ConfigFile} -> file:consult(ConfigFile); + Other -> {error, generation_error} + end; + false -> {error, enoent} + end + end. + dist_port_range_check() -> case os:getenv("RABBITMQ_DIST_PORT") of false -> ok; |
