diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2010-10-20 18:47:15 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-10-20 18:47:15 +0100 |
commit | bf29104b18667a695e2ab76dee2588dfb93f74e1 (patch) | |
tree | 17f7591c3caa98cc93290a9e2e8f02e7cebbe6f7 | |
parent | b826cead9a368f108585ace8e9fe68132883be42 (diff) | |
download | rabbitmq-server-bf29104b18667a695e2ab76dee2588dfb93f74e1.tar.gz |
Supply the plugins_expand_dir application env var to rabbit as well as the activator, and then in rabbit_mnesia:reset, ensure we do not nuke out the expand dir.
-rwxr-xr-x | scripts/rabbitmq-server | 2 | ||||
-rw-r--r-- | scripts/rabbitmq-server.bat | 2 | ||||
-rw-r--r-- | scripts/rabbitmq-service.bat | 2 | ||||
-rw-r--r-- | src/rabbit_mnesia.erl | 9 | ||||
-rw-r--r-- | src/rabbit_plugin_activator.erl | 10 |
5 files changed, 14 insertions, 11 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 8e26663a..d8437ca8 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -123,6 +123,8 @@ exec erl \ -boot ${RABBITMQ_BOOT_FILE} \ ${RABBITMQ_CONFIG_ARG} \ +W w \ + -rabbit plugins_dir "\"$RABBITMQ_PLUGINS_DIR\"" \ + -rabbit plugins_expand_dir "\"${RABBITMQ_MNESIA_DIR}/plugins-scratch\"" \ ${RABBITMQ_SERVER_ERL_ARGS} \ ${RABBITMQ_LISTEN_ARG} \ -sasl errlog_type error \ diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat index 5bcbc6ba..26d2fd47 100644 --- a/scripts/rabbitmq-server.bat +++ b/scripts/rabbitmq-server.bat @@ -158,6 +158,8 @@ if not "!RABBITMQ_NODE_IP_ADDRESS!"=="" ( -kernel inet_default_connect_options "[{nodelay, true}]" ^
!RABBITMQ_LISTEN_ARG! ^
-kernel error_logger {file,\""!RABBITMQ_LOG_BASE!/!RABBITMQ_NODENAME!.log"\"} ^
+-rabbit plugins_dir \""!RABBITMQ_PLUGINS_DIR:\=/!"\" ^
+-rabbit plugins_expand_dir \""!RABBITMQ_MNESIA_DIR:\=/!/plugins-scratch"\" ^
!RABBITMQ_SERVER_ERL_ARGS! ^
-sasl errlog_type error ^
-sasl sasl_error_logger {file,\""!RABBITMQ_LOG_BASE!/!RABBITMQ_NODENAME!-sasl.log"\"} ^
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat index 4b3961d4..172d238c 100644 --- a/scripts/rabbitmq-service.bat +++ b/scripts/rabbitmq-service.bat @@ -225,6 +225,8 @@ set ERLANG_SERVICE_ARGUMENTS= ^ -kernel inet_default_connect_options "[{nodelay,true}]" ^
!RABBITMQ_LISTEN_ARG! ^
-kernel error_logger {file,\""!RABBITMQ_LOG_BASE!/!RABBITMQ_NODENAME!.log"\"} ^
+-rabbit plugins_dir \""!RABBITMQ_PLUGINS_DIR:\=/!"\" ^
+-rabbit plugins_expand_dir \""!RABBITMQ_MNESIA_DIR:\=/!/plugins-scratch"\" ^
!RABBITMQ_SERVER_ERL_ARGS! ^
-sasl errlog_type error ^
-sasl sasl_error_logger {file,\""!RABBITMQ_LOG_BASE!/!RABBITMQ_NODENAME!-sasl.log"\"} ^
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl index 577d206d..db0ae436 100644 --- a/src/rabbit_mnesia.erl +++ b/src/rabbit_mnesia.erl @@ -543,9 +543,12 @@ reset(Force) -> cannot_delete_schema) end, ok = delete_cluster_nodes_config(), - %% remove persisted messages and any other garbage we find - ok = rabbit_misc:recursive_delete(filelib:wildcard(dir() ++ "/*")), - ok. + %% remove persisted messages and any other garbage we find, but + %% preserve the plugins expand dir if it's in here + {ok, UnpackedPluginDir} = application:get_env(rabbit, plugins_expand_dir), + ok = rabbit_misc:recursive_delete( + filelib:wildcard(dir() ++ "/*") -- + [filename:absname(UnpackedPluginDir)]). leave_cluster([], _) -> ok; leave_cluster(Nodes, RunningNodes) -> diff --git a/src/rabbit_plugin_activator.erl b/src/rabbit_plugin_activator.erl index 88300ab4..a4dd1b56 100644 --- a/src/rabbit_plugin_activator.erl +++ b/src/rabbit_plugin_activator.erl @@ -56,8 +56,8 @@ start() -> application:load(rabbit), %% Determine our various directories - PluginDir = get_env(plugins_dir, ?DefaultPluginDir), - UnpackedPluginDir = get_env(plugins_expand_dir, ?DefaultUnpackedPluginDir), + {ok, PluginDir} = application:get_env(rabbit, plugins_dir), + {ok, UnpackedPluginDir} = application:get_env(rabbit, plugins_expand_dir), RootName = UnpackedPluginDir ++ "/rabbit", @@ -142,12 +142,6 @@ start() -> stop() -> ok. -get_env(Key, Default) -> - case application:get_env(rabbit, Key) of - {ok, V} -> V; - _ -> Default - end. - determine_version(App) -> application:load(App), {ok, Vsn} = application:get_key(App, vsn), |