fix: the API prompt garbled characters for updating the configuration

This commit is contained in:
zhongwencool 2024-01-03 11:13:57 +08:00
parent b33f46f82a
commit 00e8a36dbe
5 changed files with 18 additions and 5 deletions

View File

@ -35,7 +35,7 @@
-define(CLUSTER_CALL, cluster_call). -define(CLUSTER_CALL, cluster_call).
-define(CONF, conf). -define(CONF, conf).
-define(AUDIT_MOD, audit). -define(AUDIT_MOD, audit).
-define(UPDATE_READONLY_KEYS_PROHIBITED, "update_readonly_keys_prohibited"). -define(UPDATE_READONLY_KEYS_PROHIBITED, <<"update_readonly_keys_prohibited">>).
-dialyzer({no_match, [load/0]}). -dialyzer({no_match, [load/0]}).

View File

@ -165,7 +165,7 @@ t_load_readonly(Config) ->
ConfBin0 = hocon_pp:do(Base1#{KeyBin => Conf}, #{}), ConfBin0 = hocon_pp:do(Base1#{KeyBin => Conf}, #{}),
ConfFile0 = prepare_conf_file(?FUNCTION_NAME, ConfBin0, Config), ConfFile0 = prepare_conf_file(?FUNCTION_NAME, ConfBin0, Config),
?assertEqual( ?assertEqual(
{error, "update_readonly_keys_prohibited"}, {error, <<"update_readonly_keys_prohibited">>},
emqx_conf_cli:conf(["load", ConfFile0]) emqx_conf_cli:conf(["load", ConfFile0])
), ),
%% reload etc/emqx.conf changed readonly keys %% reload etc/emqx.conf changed readonly keys

View File

@ -331,7 +331,7 @@ t_configs_key(_Config) ->
Log Log
), ),
Log1 = emqx_utils_maps:deep_put([<<"log">>, <<"console">>, <<"level">>], Log, <<"error">>), Log1 = emqx_utils_maps:deep_put([<<"log">>, <<"console">>, <<"level">>], Log, <<"error">>),
?assertEqual([], update_configs_with_binary(iolist_to_binary(hocon_pp:do(Log1, #{})))), ?assertEqual(<<>>, update_configs_with_binary(iolist_to_binary(hocon_pp:do(Log1, #{})))),
?assertEqual(<<"error">>, read_conf([<<"log">>, <<"console">>, <<"level">>])), ?assertEqual(<<"error">>, read_conf([<<"log">>, <<"console">>, <<"level">>])),
BadLog = emqx_utils_maps:deep_put([<<"log">>, <<"console">>, <<"level">>], Log, <<"erro1r">>), BadLog = emqx_utils_maps:deep_put([<<"log">>, <<"console">>, <<"level">>], Log, <<"erro1r">>),
{error, Error} = update_configs_with_binary(iolist_to_binary(hocon_pp:do(BadLog, #{}))), {error, Error} = update_configs_with_binary(iolist_to_binary(hocon_pp:do(BadLog, #{}))),
@ -345,6 +345,17 @@ t_configs_key(_Config) ->
} }
}, },
?assertEqual(ExpectError, emqx_utils_json:decode(Error, [return_maps])), ?assertEqual(ExpectError, emqx_utils_json:decode(Error, [return_maps])),
ReadOnlyConf = #{
<<"cluster">> =>
#{
<<"autoclean">> => <<"23h">>,
<<"autoheal">> => true,
<<"discovery_strategy">> => <<"manual">>
}
},
ReadOnlyBin = iolist_to_binary(hocon_pp:do(ReadOnlyConf, #{})),
{error, ReadOnlyError} = update_configs_with_binary(ReadOnlyBin),
?assertEqual(<<"update_readonly_keys_prohibited">>, ReadOnlyError),
ok. ok.
t_get_configs_in_different_accept(_Config) -> t_get_configs_in_different_accept(_Config) ->
@ -394,7 +405,7 @@ t_create_webhook_v1_bridges_api(Config) ->
WebHookFile = filename:join(?config(data_dir, Config), "webhook_v1.conf"), WebHookFile = filename:join(?config(data_dir, Config), "webhook_v1.conf"),
?assertMatch({ok, _}, hocon:files([WebHookFile])), ?assertMatch({ok, _}, hocon:files([WebHookFile])),
{ok, WebHookBin} = file:read_file(WebHookFile), {ok, WebHookBin} = file:read_file(WebHookFile),
?assertEqual([], update_configs_with_binary(WebHookBin)), ?assertEqual(<<>>, update_configs_with_binary(WebHookBin)),
Actions = Actions =
#{ #{
<<"http">> => <<"http">> =>
@ -531,7 +542,7 @@ update_configs_with_binary(Bin) ->
Path = emqx_mgmt_api_test_util:api_path(["configs"]), Path = emqx_mgmt_api_test_util:api_path(["configs"]),
Auth = emqx_mgmt_api_test_util:auth_header_(), Auth = emqx_mgmt_api_test_util:auth_header_(),
Headers = [{"accept", "text/plain"}, Auth], Headers = [{"accept", "text/plain"}, Auth],
case httpc:request(put, {Path, Headers, "text/plain", Bin}, [], []) of case httpc:request(put, {Path, Headers, "text/plain", Bin}, [], [{body_format, binary}]) of
{ok, {{"HTTP/1.1", Code, _}, _Headers, Body}} when {ok, {{"HTTP/1.1", Code, _}, _Headers, Body}} when
Code >= 200 andalso Code =< 299 Code >= 200 andalso Code =< 299
-> ->

View File

@ -0,0 +1 @@
Modified the /file_transfer API to return the file transfer configuration in raw format rather than converting time units like "1h" to seconds, providing callers with the original configured values for consistency with other getter APIs

View File

@ -0,0 +1 @@
Fixed issue where the response message from the /configs API would be garbled when attempting to update a read-only configuration value