diff options
| -rwxr-xr-x | scripts/rabbitmq-server | 1 | ||||
| -rw-r--r-- | scripts/rabbitmq-service.bat | 3 | ||||
| -rw-r--r-- | src/rabbit.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_config.erl | 39 |
4 files changed, 37 insertions, 10 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 8eca8b6967..d5a5948f48 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -72,7 +72,6 @@ RABBITMQ_DIST_PORT=$RABBITMQ_DIST_PORT \ -conf_gen_script "`dirname $0`/cuttlefish" \ -extra "${RABBITMQ_NODENAME}" -exit 89 PRELAUNCH_RESULT=$? if [ ${PRELAUNCH_RESULT} = 2 ] ; then # dist port is mentioned in config, so do not set it diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat index a80cb3aa6d..600b175df3 100644 --- a/scripts/rabbitmq-service.bat +++ b/scripts/rabbitmq-service.bat @@ -140,7 +140,8 @@ if exist "!RABBITMQ_CONFIG_FILE!.config" ( ) else if exist "!RABBITMQ_CONFIG_FILE!.conf" (
set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" -conf_gen_script "%~dp0/cuttlefish"
) else (
- set RABBITMQ_CONFIG_ARG=
+ rem Always use generated config arguments, because file existance can change beetween restarts
+ set RABBITMQ_CONFIG_ARG=-conf "!RABBITMQ_CONFIG_FILE!" -conf_dir "!RABBITMQ_GENERATED_CONFIG_DIR!" -conf_gen_script "%~dp0/cuttlefish"
)
set RABBITMQ_LISTEN_ARG=
diff --git a/src/rabbit.erl b/src/rabbit.erl index f2f08ff495..2715b80eb5 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -272,9 +272,7 @@ start() -> boot() -> start_it(fun() -> - case rabbit_config:prepare_config() of - {ok, ConfigFile} -> - rabbit_config:update_app_config(ConfigFile); + case rabbit_config:prepare_and_use_config() of {error, Reason} -> log_boot_error_and_exit( generate_config_file, diff --git a/src/rabbit_config.erl b/src/rabbit_config.erl index fae8d65842..7025805f99 100644 --- a/src/rabbit_config.erl +++ b/src/rabbit_config.erl @@ -1,11 +1,40 @@ -module(rabbit_config). --export([generate_config_file/3, prepare_config/0, prepare_config/1, update_app_config/1]). +-export([ + generate_config_file/3, + prepare_and_use_config/0, + prepare_config/1, + update_app_config/1]). -prepare_config() -> +prepare_and_use_config() -> + case config_exist() of + true -> + % Use .config file + ok; + false -> + case prepare_config(get_confs()) of + ok -> + % Nothing to generate from + ok; + {ok, GeneratedConfigFile} -> + % Generated config file + update_app_config(GeneratedConfigFile); + {error, Err} -> + % Error generating config + {error, Err} + end + end. + +config_exist() -> + case init:get_argument(config) of + {ok, Config} -> rabbit_file:is_file(Config ++ ".config"); + _ -> false + end. + +get_confs() -> case init:get_argument(conf) of - {ok, Configs} -> prepare_config(Configs); - _ -> ok + {ok, Configs} -> Configs; + _ -> [] end. prepare_config(Configs) -> @@ -44,7 +73,7 @@ generate_config_file(ConfFiles, ConfDir, ConfScript) -> _ -> [OutFile] = rabbit_file:wildcard("rabbitmq.*.config", GeneratedDir), ResultFile = filename:join([GeneratedDir, "rabbitmq.config"]), - Ren = rabbit_file:rename(filename:join([GeneratedDir, OutFile]), + rabbit_file:rename(filename:join([GeneratedDir, OutFile]), ResultFile), {ok, ResultFile} end. |
