فهرست منبع

refactor: move `/mqtt/sys_topics` to generic `/configs/sys_topics`

Stefan Strigler 3 سال پیش
والد
کامیت
6b22a074f0

+ 0 - 1
apps/emqx_management/src/emqx_mgmt_api_configs.erl

@@ -62,7 +62,6 @@
         <<"event_message">>,
         <<"prometheus">>,
         <<"telemetry">>,
-        <<"sys_topics">>,
         <<"listeners">>
     ] ++ global_zone_roots()
 ).

+ 0 - 94
apps/emqx_management/src/emqx_mgmt_api_sys.erl

@@ -1,94 +0,0 @@
-%%--------------------------------------------------------------------
-%% Copyright (c) 2020-2022 EMQ Technologies Co., Ltd. All Rights Reserved.
-%%
-%% Licensed under the Apache License, Version 2.0 (the "License");
-%% you may not use this file except in compliance with the License.
-%% You may obtain a copy of the License at
-%%
-%%     http://www.apache.org/licenses/LICENSE-2.0
-%%
-%% Unless required by applicable law or agreed to in writing, software
-%% distributed under the License is distributed on an "AS IS" BASIS,
-%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-%% See the License for the specific language governing permissions and
-%% limitations under the License.
-%%--------------------------------------------------------------------
-
--module(emqx_mgmt_api_sys).
-
--behaviour(minirest_api).
-
--include_lib("emqx/include/emqx.hrl").
--include_lib("typerefl/include/types.hrl").
-
-%% API
--export([
-    api_spec/0,
-    paths/0,
-    schema/1,
-    namespace/0
-]).
-
--export([sys/2]).
-
--define(TAGS, [<<"System Topics">>]).
-
-namespace() -> "sys".
-
-api_spec() ->
-    emqx_dashboard_swagger:spec(?MODULE, #{check_schema => true}).
-
-paths() ->
-    ["/mqtt/sys_topics"].
-
-sys(get, _Params) ->
-    {200, emqx_conf:get_raw([sys_topics], #{})};
-sys(put, #{body := Body}) ->
-    {ok, _} = emqx_conf:update([sys_topics], Body, #{override_to => cluster}),
-    {200, emqx_conf:get_raw([sys_topics], #{})}.
-
-%%--------------------------------------------------------------------
-%% Swagger defines
-%%--------------------------------------------------------------------
-
-schema("/mqtt/sys_topics") ->
-    #{
-        'operationId' => sys,
-        get =>
-            #{
-                tags => ?TAGS,
-                description => <<"Get System Topics config">>,
-                responses =>
-                    #{
-                        200 => schema_sys_topics()
-                    }
-            },
-        put =>
-            #{
-                tags => ?TAGS,
-                description => <<"Update System Topics config">>,
-                'requestBody' => schema_sys_topics(),
-                responses =>
-                    #{
-                        200 => schema_sys_topics()
-                    }
-            }
-    }.
-
-schema_sys_topics() ->
-    emqx_dashboard_swagger:schema_with_example(
-        hoconsc:ref(emqx_schema, "sys_topics"), example_sys_topics()
-    ).
-
-example_sys_topics() ->
-    #{
-        <<"sys_event_messages">> =>
-            #{
-                <<"client_connected">> => true,
-                <<"client_disconnected">> => true,
-                <<"client_subscribed">> => false,
-                <<"client_unsubscribed">> => false
-            },
-        <<"sys_heartbeat_interval">> => <<"30s">>,
-        <<"sys_msg_interval">> => <<"1m">>
-    }.

+ 0 - 71
apps/emqx_management/test/emqx_mgmt_api_sys_SUITE.erl

@@ -1,71 +0,0 @@
-%%--------------------------------------------------------------------
-%% Copyright (c) 2020-2022 EMQ Technologies Co., Ltd. All Rights Reserved.
-%%
-%% Licensed under the Apache License, Version 2.0 (the "License");
-%% you may not use this file except in compliance with the License.
-%% You may obtain a copy of the License at
-%%
-%%     http://www.apache.org/licenses/LICENSE-2.0
-%%
-%% Unless required by applicable law or agreed to in writing, software
-%% distributed under the License is distributed on an "AS IS" BASIS,
-%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-%% See the License for the specific language governing permissions and
-%% limitations under the License.
-%%--------------------------------------------------------------------
--module(emqx_mgmt_api_sys_SUITE).
-
--compile(export_all).
--compile(nowarn_export_all).
-
--include_lib("eunit/include/eunit.hrl").
-
-all() ->
-    emqx_common_test_helpers:all(?MODULE).
-
-init_per_suite(Config) ->
-    emqx_mgmt_api_test_util:init_suite([emqx_conf]),
-    Config.
-
-end_per_suite(_) ->
-    emqx_mgmt_api_test_util:end_suite([emqx_conf]).
-
-t_get_put(_) ->
-    {ok, Default} = get_sys_topics_config(),
-    ?assertEqual(
-        #{
-            <<"sys_event_messages">> =>
-                #{
-                    <<"client_connected">> => true,
-                    <<"client_disconnected">> => true,
-                    <<"client_subscribed">> => false,
-                    <<"client_unsubscribed">> => false
-                },
-            <<"sys_heartbeat_interval">> => <<"30s">>,
-            <<"sys_msg_interval">> => <<"1m">>
-        },
-        Default
-    ),
-
-    NConfig = Default#{
-        <<"sys_msg_interval">> => <<"4m">>,
-        <<"sys_event_messages">> => #{<<"client_subscribed">> => false}
-    },
-    {ok, ConfigResp} = put_sys_topics_config(NConfig),
-    ?assertEqual(NConfig, ConfigResp),
-    {ok, Default} = put_sys_topics_config(Default).
-
-get_sys_topics_config() ->
-    Path = emqx_mgmt_api_test_util:api_path(["mqtt", "sys_topics"]),
-    case emqx_mgmt_api_test_util:request_api(get, Path) of
-        {ok, Conf0} -> {ok, emqx_json:decode(Conf0, [return_maps])};
-        Error -> Error
-    end.
-
-put_sys_topics_config(Config) ->
-    AuthHeader = emqx_mgmt_api_test_util:auth_header_(),
-    Path = emqx_mgmt_api_test_util:api_path(["mqtt", "sys_topics"]),
-    case emqx_mgmt_api_test_util:request_api(put, Path, "", AuthHeader, Config) of
-        {ok, Conf0} -> {ok, emqx_json:decode(Conf0, [return_maps])};
-        Error -> Error
-    end.

+ 3 - 1
changes/v5.0.13-en.md

@@ -1,4 +1,4 @@
-# v5.0.12
+# v5.0.13
 
 ## Enhancements
 
@@ -6,4 +6,6 @@
 
 - Avoid creating temporary zip files when syncing data directory during cluster startup [#9429](https://github.com/emqx/emqx/pull/9429).
 
+- Refactor: move `/mqtt/sys_topics` to generic `/configs/sys_topics` [#9511](https://github.com/emqx/emqx/pull/9511).
+
 ## Bug fixes

+ 3 - 1
changes/v5.0.13-zh.md

@@ -1,4 +1,4 @@
-# v5.0.12
+# v5.0.13
 
 ## 增强
 
@@ -6,4 +6,6 @@
 
 - EMQX 集群启动时同步 data 目录不需要在磁盘上产生临时的zip文件 [#9429](https://github.com/emqx/emqx/pull/9429)。
 
+- 重构:删除 `/mqtt/sys_topics` 接口,用户可以使用通用的 `/configs/sys_topics` 接口来更新该配置 [#9511](https://github.com/emqx/emqx/pull/9511)。
+
 ## 修复