Browse Source

fix(ft-fs): move default config to the backend impl

Andrew Mayorov 3 years ago
parent
commit
28d87ca62d

+ 0 - 11
apps/emqx_ft/src/emqx_ft_conf.erl

@@ -22,7 +22,6 @@
 
 %% Accessors
 -export([storage/0]).
--export([segments_root/1]).
 -export([gc_interval/1]).
 -export([segments_ttl/1]).
 
@@ -49,16 +48,6 @@
 storage() ->
     emqx_config:get([file_transfer, storage], disabled).
 
--spec segments_root(_Storage) -> file:name().
-segments_root(_Storage) ->
-    Conf = assert_storage(local),
-    case emqx_map_lib:deep_find([segments, root], Conf) of
-        {ok, Root} ->
-            Root;
-        {not_found, _, _} ->
-            filename:join([emqx:data_dir(), file_transfer, segments])
-    end.
-
 -spec gc_interval(_Storage) -> milliseconds().
 gc_interval(_Storage) ->
     Conf = assert_storage(local),

+ 14 - 6
apps/emqx_ft/src/emqx_ft_storage_fs.erl

@@ -41,6 +41,7 @@
 
 % GC API
 % TODO: This is quickly becomes hairy.
+-export([get_root/1]).
 -export([get_subdir/2]).
 -export([get_subdir/3]).
 
@@ -220,7 +221,7 @@ transfers(Storage) ->
     % TODO `Continuation`
     % There might be millions of transfers on the node, we need a protocol and
     % storage schema to iterate through them effectively.
-    ClientIds = try_list_dir(get_segments_root(Storage)),
+    ClientIds = try_list_dir(get_root(Storage)),
     {ok,
         lists:foldl(
             fun(ClientId, Acc) -> transfers(Storage, ClientId, Acc) end,
@@ -229,7 +230,7 @@ transfers(Storage) ->
         )}.
 
 transfers(Storage, ClientId, AccIn) ->
-    Dirname = filename:join(get_segments_root(Storage), ClientId),
+    Dirname = filename:join(get_root(Storage), ClientId),
     case file:list_dir(Dirname) of
         {ok, FileIds} ->
             lists:foldl(
@@ -263,6 +264,16 @@ read_transferinfo(Storage, Transfer, Acc) ->
             Acc
     end.
 
+-spec get_root(storage()) ->
+    file:name().
+get_root(Storage) ->
+    case emqx_map_lib:deep_find([segments, root], Storage) of
+        {ok, Root} ->
+            Root;
+        {not_found, _, _} ->
+            filename:join([emqx:data_dir(), file_transfer, segments])
+    end.
+
 -spec get_subdir(storage(), transfer()) ->
     file:name().
 get_subdir(Storage, Transfer) ->
@@ -307,7 +318,7 @@ break_segment_filename(Filename) ->
 
 mk_filedir(Storage, {ClientId, FileId}, SubDirs) ->
     filename:join([
-        get_segments_root(Storage),
+        get_root(Storage),
         emqx_ft_fs_util:escape_filename(ClientId),
         emqx_ft_fs_util:escape_filename(FileId)
         | SubDirs
@@ -325,9 +336,6 @@ try_list_dir(Dirname) ->
         {error, _} -> []
     end.
 
-get_segments_root(Storage) ->
-    emqx_ft_conf:segments_root(Storage).
-
 -include_lib("kernel/include/file.hrl").
 
 read_file(Filepath, DecodeFun) ->

+ 1 - 1
apps/emqx_ft/src/emqx_ft_storage_fs_gc.erl

@@ -374,4 +374,4 @@ register_gcstat_error(Subject, Error, Stats = #gcstats{errors = Errors}) ->
 %%
 
 get_segments_root(Storage) ->
-    emqx_ft_conf:segments_root(Storage).
+    emqx_ft_storage_fs:get_root(Storage).