diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2016-11-11 20:08:38 +0300 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2016-11-11 21:21:20 +0300 |
| commit | eea4fc3fd423d2b5c624ecf440e7bfcbed6ff044 (patch) | |
| tree | 86afa8e98a2eba0e8828eff035e24eb48c13fa76 /src | |
| parent | cc75e5672ad23b63fb7c1f93e263b706a95d0cf6 (diff) | |
| download | rabbitmq-server-git-eea4fc3fd423d2b5c624ecf440e7bfcbed6ff044.tar.gz | |
Use a fixed size encoding fn for vhost directory names
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_msg_store_vhost_sup.erl | 10 | ||||
| -rw-r--r-- | src/rabbit_queue_index.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_vhost.erl | 9 |
3 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 5784f199ca..06034819b4 100644 --- a/src/rabbit_msg_store_vhost_sup.erl +++ b/src/rabbit_msg_store_vhost_sup.erl @@ -73,11 +73,6 @@ vhost_store_pid(Name, VHost) -> cleanup_vhost_store(Name, VHost, Pid) -> ets:delete_object(Name, {VHost, Pid}). -vhost_store_dir(VHost) -> - Dir = rabbit_mnesia:dir(), - Base64EncodedName = rabbit_vhost:dir(VHost), - binary_to_list(filename:join([Dir, Base64EncodedName])). - successfully_recovered_state(Name, VHost) -> case vhost_store_pid(Name, VHost) of no_pid -> @@ -85,3 +80,8 @@ successfully_recovered_state(Name, VHost) -> Pid when is_pid(Pid) -> rabbit_msg_store:successfully_recovered_state(Pid) end. + +vhost_store_dir(VHost) -> + Dir = rabbit_mnesia:dir(), + EncodedName = list_to_binary(rabbit_vhost:vhost_name_to_dir_name(VHost)), + binary_to_list(filename:join([Dir, EncodedName])). diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index d19694403c..8bd44cb1ed 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:dir(VHost), + filename:join([queues_base_dir(), rabbit_vhost:vhost_name_to_dir_name(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 2f323fc41b..e6df4e9364 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([dir/1]). +-export([vhost_name_to_dir_name/1]). -export([purge_messages/1]). -spec add(rabbit_types:vhost()) -> 'ok'. @@ -97,7 +97,7 @@ delete(VHostPath) -> ok. purge_messages(VHostPath) -> - VhostDir = filename:join(rabbit_mnesia:dir(), dir(VHostPath)), + VhostDir = filename:join(rabbit_mnesia:dir(), vhost_name_to_dir_name(VHostPath)), rabbit_log:info("Deleting vhost directory '~s'~n", [VhostDir]), %% Message store is stopped to close file handles rabbit_variable_queue:stop_vhost_msg_store(VHostPath), @@ -198,5 +198,6 @@ info_all(Items, Ref, AggregatorPid) -> rabbit_control_misc:emitting_map( AggregatorPid, Ref, fun(VHost) -> info(VHost, Items) end, list()). -dir(Vhost) -> - base64:encode(Vhost).
\ No newline at end of file +vhost_name_to_dir_name(Vhost) -> + <<Num:128>> = erlang:md5(term_to_binary(Vhost)), + rabbit_misc:format("~.36B", [Num]). |
