feat: warning unknown config root key
This commit is contained in:
parent
fb3c0c1fe9
commit
f45efbd12d
|
@ -18,6 +18,7 @@
|
||||||
-compile({no_auto_import, [get/0, get/1, put/2, erase/1]}).
|
-compile({no_auto_import, [get/0, get/1, put/2, erase/1]}).
|
||||||
-elvis([{elvis_style, god_modules, disable}]).
|
-elvis([{elvis_style, god_modules, disable}]).
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
|
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
|
||||||
|
|
||||||
-export([
|
-export([
|
||||||
init_load/1,
|
init_load/1,
|
||||||
|
@ -323,6 +324,7 @@ init_load(SchemaMod, Conf) when is_list(Conf) orelse is_binary(Conf) ->
|
||||||
ok = save_schema_mod_and_names(SchemaMod),
|
ok = save_schema_mod_and_names(SchemaMod),
|
||||||
HasDeprecatedFile = has_deprecated_file(),
|
HasDeprecatedFile = has_deprecated_file(),
|
||||||
RawConf0 = load_config_files(HasDeprecatedFile, Conf),
|
RawConf0 = load_config_files(HasDeprecatedFile, Conf),
|
||||||
|
warning_deprecated_root_key(RawConf0),
|
||||||
RawConf1 =
|
RawConf1 =
|
||||||
case HasDeprecatedFile of
|
case HasDeprecatedFile of
|
||||||
true ->
|
true ->
|
||||||
|
@ -748,6 +750,22 @@ bin(Bin) when is_binary(Bin) -> Bin;
|
||||||
bin(Str) when is_list(Str) -> list_to_binary(Str);
|
bin(Str) when is_list(Str) -> list_to_binary(Str);
|
||||||
bin(Atom) when is_atom(Atom) -> atom_to_binary(Atom, utf8).
|
bin(Atom) when is_atom(Atom) -> atom_to_binary(Atom, utf8).
|
||||||
|
|
||||||
|
warning_deprecated_root_key(RawConf) ->
|
||||||
|
case maps:keys(RawConf) -- get_root_names() of
|
||||||
|
[] ->
|
||||||
|
ok;
|
||||||
|
Keys ->
|
||||||
|
Unknowns = string:join([binary_to_list(K) || K <- Keys], ","),
|
||||||
|
?tp(unknown_config_keys, #{unknown_config_keys => Unknowns}),
|
||||||
|
?SLOG(
|
||||||
|
warning,
|
||||||
|
#{
|
||||||
|
msg => "config_key_not_recognized",
|
||||||
|
unknown_config_keys => Unknowns
|
||||||
|
}
|
||||||
|
)
|
||||||
|
end.
|
||||||
|
|
||||||
conf_key(?CONF, RootName) ->
|
conf_key(?CONF, RootName) ->
|
||||||
atom(RootName);
|
atom(RootName);
|
||||||
conf_key(?RAW_CONF, RootName) ->
|
conf_key(?RAW_CONF, RootName) ->
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
-compile(export_all).
|
-compile(export_all).
|
||||||
-compile(nowarn_export_all).
|
-compile(nowarn_export_all).
|
||||||
-include_lib("eunit/include/eunit.hrl").
|
-include_lib("eunit/include/eunit.hrl").
|
||||||
|
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
|
||||||
|
|
||||||
all() -> emqx_common_test_helpers:all(?MODULE).
|
all() -> emqx_common_test_helpers:all(?MODULE).
|
||||||
|
|
||||||
|
@ -77,3 +78,21 @@ t_init_load(_Config) ->
|
||||||
?assertEqual(ExpectRootNames, lists:sort(emqx_config:get_root_names())),
|
?assertEqual(ExpectRootNames, lists:sort(emqx_config:get_root_names())),
|
||||||
?assertMatch({ok, #{raw_config := 128}}, emqx:update_config([mqtt, max_topic_levels], 128)),
|
?assertMatch({ok, #{raw_config := 128}}, emqx:update_config([mqtt, max_topic_levels], 128)),
|
||||||
ok = file:delete(DeprecatedFile).
|
ok = file:delete(DeprecatedFile).
|
||||||
|
|
||||||
|
t_unknown_rook_keys(_) ->
|
||||||
|
?check_trace(
|
||||||
|
#{timetrap => 1000},
|
||||||
|
begin
|
||||||
|
ok = emqx_config:init_load(
|
||||||
|
emqx_schema, <<"test_1 {}\n test_2 {sub = 100}\n listeners {}">>
|
||||||
|
),
|
||||||
|
?block_until(#{?snk_kind := unknown_config_keys})
|
||||||
|
end,
|
||||||
|
fun(Trace) ->
|
||||||
|
?assertMatch(
|
||||||
|
[#{unknown_config_keys := "test_1,test_2"}],
|
||||||
|
?of_kind(unknown_config_keys, Trace)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
),
|
||||||
|
ok.
|
||||||
|
|
Loading…
Reference in New Issue