diff options
| -rw-r--r-- | src/rabbit_msg_store_vhost_sup.erl | 9 | ||||
| -rw-r--r-- | src/rabbit_queue_index.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_vhost.erl | 8 | ||||
| -rw-r--r-- | test/per_vhost_msg_store_SUITE.erl | 2 |
4 files changed, 11 insertions, 10 deletions
diff --git a/src/rabbit_msg_store_vhost_sup.erl b/src/rabbit_msg_store_vhost_sup.erl index d9211d21a3..6b4988b06d 100644 --- a/src/rabbit_msg_store_vhost_sup.erl +++ b/src/rabbit_msg_store_vhost_sup.erl @@ -6,7 +6,7 @@ client_init/5, successfully_recovered_state/2]). %% Internal --export([start_vhost/4]). +-export([start_store_for_vhost/4]). start_link(Name, ClientRefs, StartupFunState) -> supervisor2:start_link({local, Name}, ?MODULE, @@ -15,7 +15,7 @@ start_link(Name, ClientRefs, StartupFunState) -> init([Name, ClientRefs, StartupFunState]) -> ets:new(Name, [named_table, public]), {ok, {{simple_one_for_one, 1, 1}, - [{rabbit_msg_store_vhost, {rabbit_msg_store_vhost_sup, start_vhost, + [{rabbit_msg_store_vhost, {rabbit_msg_store_vhost_sup, start_store_for_vhost, [Name, ClientRefs, StartupFunState]}, transient, infinity, supervisor, [rabbit_msg_store]}]}}. @@ -23,11 +23,12 @@ init([Name, ClientRefs, StartupFunState]) -> add_vhost(Name, VHost) -> supervisor2:start_child(Name, [VHost]). -start_vhost(Name, ClientRefs, StartupFunState, VHost) -> +start_store_for_vhost(Name, ClientRefs, StartupFunState, VHost) -> case vhost_store_pid(Name, VHost) of no_pid -> VHostDir = vhost_store_dir(VHost), ok = rabbit_file:ensure_dir(VHostDir), + rabbit_log:info("Making sure message store directory '~s' for vhost '~s' exists~n", [VHostDir, VHost]), case rabbit_msg_store:start_link(Name, VHostDir, ClientRefs, StartupFunState) of {ok, Pid} -> ets:insert(Name, {VHost, Pid}), @@ -83,5 +84,5 @@ successfully_recovered_state(Name, VHost) -> vhost_store_dir(VHost) -> Dir = rabbit_mnesia:dir(), - EncodedName = list_to_binary(rabbit_vhost:vhost_name_to_dir_name(VHost)), + EncodedName = list_to_binary(rabbit_vhost:dir(VHost)), binary_to_list(filename:join([Dir, EncodedName])). diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index 8bd44cb1ed..d19694403c 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -517,7 +517,7 @@ blank_state_dir(Dir) -> queue_dir(#resource{ virtual_host = VHost } = QueueName) -> %% Queue directory is {node_database_dir}/{vhost}/queues/{queue} - filename:join([queues_base_dir(), rabbit_vhost:vhost_name_to_dir_name(VHost), + filename:join([queues_base_dir(), rabbit_vhost:dir(VHost), "queues", queue_name_to_dir_name(QueueName)]). blank_state_dir_funs(Dir, OnSyncFun, OnSyncMsgFun) -> diff --git a/src/rabbit_vhost.erl b/src/rabbit_vhost.erl index e6df4e9364..26fdaa0db8 100644 --- a/src/rabbit_vhost.erl +++ b/src/rabbit_vhost.erl @@ -23,7 +23,7 @@ -export([add/1, delete/1, exists/1, list/0, with/2, assert/1, update/2, set_limits/2, limits_of/1]). -export([info/1, info/2, info_all/0, info_all/1, info_all/2, info_all/3]). --export([vhost_name_to_dir_name/1]). +-export([dir/1]). -export([purge_messages/1]). -spec add(rabbit_types:vhost()) -> 'ok'. @@ -97,8 +97,8 @@ delete(VHostPath) -> ok. purge_messages(VHostPath) -> - VhostDir = filename:join(rabbit_mnesia:dir(), vhost_name_to_dir_name(VHostPath)), - rabbit_log:info("Deleting vhost directory '~s'~n", [VhostDir]), + VhostDir = filename:join(rabbit_mnesia:dir(), dir(VHostPath)), + rabbit_log:info("Deleting vhost message store directory at '~s'~n", [VhostDir]), %% Message store is stopped to close file handles rabbit_variable_queue:stop_vhost_msg_store(VHostPath), ok = rabbit_file:recursive_delete([VhostDir]), @@ -198,6 +198,6 @@ info_all(Items, Ref, AggregatorPid) -> rabbit_control_misc:emitting_map( AggregatorPid, Ref, fun(VHost) -> info(VHost, Items) end, list()). -vhost_name_to_dir_name(Vhost) -> +dir(Vhost) -> <<Num:128>> = erlang:md5(term_to_binary(Vhost)), rabbit_misc:format("~.36B", [Num]). diff --git a/test/per_vhost_msg_store_SUITE.erl b/test/per_vhost_msg_store_SUITE.erl index 4a890ce3ea..2a13440564 100644 --- a/test/per_vhost_msg_store_SUITE.erl +++ b/test/per_vhost_msg_store_SUITE.erl @@ -252,4 +252,4 @@ open_channel(Vhost, Config) -> {ok, Conn} = amqp_connection:start( #amqp_params_direct{node = Node, virtual_host = Vhost}), {ok, Chan} = amqp_connection:open_channel(Conn), - Chan.
\ No newline at end of file + Chan. |
