Merge pull request #10489 from zhongwencool/warning-config-unknown-key
feat: warning unknown config root key
This commit is contained in:
commit
d7b10fc329
|
@ -18,6 +18,7 @@
|
|||
-compile({no_auto_import, [get/0, get/1, put/2, erase/1]}).
|
||||
-elvis([{elvis_style, god_modules, disable}]).
|
||||
-include("logger.hrl").
|
||||
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
|
||||
|
||||
-export([
|
||||
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),
|
||||
HasDeprecatedFile = has_deprecated_file(),
|
||||
RawConf0 = load_config_files(HasDeprecatedFile, Conf),
|
||||
warning_deprecated_root_key(RawConf0),
|
||||
RawConf1 =
|
||||
case HasDeprecatedFile of
|
||||
true ->
|
||||
|
@ -748,6 +750,22 @@ bin(Bin) when is_binary(Bin) -> Bin;
|
|||
bin(Str) when is_list(Str) -> list_to_binary(Str);
|
||||
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) ->
|
||||
atom(RootName);
|
||||
conf_key(?RAW_CONF, RootName) ->
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
-compile(export_all).
|
||||
-compile(nowarn_export_all).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
-include_lib("snabbkaffe/include/snabbkaffe.hrl").
|
||||
|
||||
all() -> emqx_common_test_helpers:all(?MODULE).
|
||||
|
||||
|
@ -77,3 +78,21 @@ t_init_load(_Config) ->
|
|||
?assertEqual(ExpectRootNames, lists:sort(emqx_config:get_root_names())),
|
||||
?assertMatch({ok, #{raw_config := 128}}, emqx:update_config([mqtt, max_topic_levels], 128)),
|
||||
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