summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-10-20 18:47:15 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-10-20 18:47:15 +0100
commitbf29104b18667a695e2ab76dee2588dfb93f74e1 (patch)
tree17f7591c3caa98cc93290a9e2e8f02e7cebbe6f7
parentb826cead9a368f108585ace8e9fe68132883be42 (diff)
downloadrabbitmq-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-xscripts/rabbitmq-server2
-rw-r--r--scripts/rabbitmq-server.bat2
-rw-r--r--scripts/rabbitmq-service.bat2
-rw-r--r--src/rabbit_mnesia.erl9
-rw-r--r--src/rabbit_plugin_activator.erl10
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),