From b1dfbf7984bf07633697526a75cef15480326fc7 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Tue, 2 May 2023 11:05:53 +0200 Subject: [PATCH] refactor: move shared macros to header file --- apps/emqx/include/emqx_schema.hrl | 22 +++++++++++++++++++ apps/emqx/src/emqx_listeners.erl | 15 ++++--------- apps/emqx/src/emqx_schema.erl | 5 +++-- .../src/emqx_mgmt_api_listeners.erl | 2 +- 4 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 apps/emqx/include/emqx_schema.hrl diff --git a/apps/emqx/include/emqx_schema.hrl b/apps/emqx/include/emqx_schema.hrl new file mode 100644 index 000000000..7f96e15a9 --- /dev/null +++ b/apps/emqx/include/emqx_schema.hrl @@ -0,0 +1,22 @@ +%%-------------------------------------------------------------------- +%% Copyright (c) 2023 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. +%%-------------------------------------------------------------------- +-ifndef(EMQX_SCHEMA_HRL). +-define(EMQX_SCHEMA_HRL, true). + +-define(TOMBSTONE, marked_for_deletion). +-define(TOMBSTONE_BIN, <<"marked_for_deletion">>). + +-endif. diff --git a/apps/emqx/src/emqx_listeners.erl b/apps/emqx/src/emqx_listeners.erl index a60168677..769e18e4d 100644 --- a/apps/emqx/src/emqx_listeners.erl +++ b/apps/emqx/src/emqx_listeners.erl @@ -20,11 +20,10 @@ -elvis([{elvis_style, dont_repeat_yourself, #{min_complexity => 10000}}]). -include("emqx_mqtt.hrl"). +-include("emqx_schema.hrl"). -include("logger.hrl"). -include_lib("snabbkaffe/include/snabbkaffe.hrl"). --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). --endif. + %% APIs -export([ list_raw/0, @@ -68,8 +67,8 @@ -define(CONF_KEY_PATH, [listeners, '?', '?']). -define(TYPES_STRING, ["tcp", "ssl", "ws", "wss", "quic"]). --define(MARK_DEL, marked_for_deletion). --define(MARK_DEL_BIN, <<"marked_for_deletion">>). +-define(MARK_DEL, ?TOMBSTONE). +-define(MARK_DEL_BIN, ?TOMBSTONE_BIN). -spec id_example() -> atom(). id_example() -> 'tcp:default'. @@ -857,9 +856,3 @@ unregister_ocsp_stapling_refresh(Type, Name) -> default_max_conn() -> %% TODO: <<"infinity">> 5_000_000. - --ifdef(TEST). -%% since it's a copy-paste. we need to ensure it's the same atom. -ensure_same_atom_test() -> - ?assertEqual(?MARK_DEL, emqx_schema:tombstone()). --endif. diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index e36da0e0a..f33dcb979 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -23,6 +23,7 @@ -dialyzer(no_fail_call). -elvis([{elvis_style, invalid_dynamic_call, disable}]). +-include("emqx_schema.hrl"). -include("emqx_authentication.hrl"). -include("emqx_access_control.hrl"). -include_lib("typerefl/include/types.hrl"). @@ -3193,7 +3194,7 @@ special_env(_Name) -> error. %% The tombstone atom. tombstone() -> - marked_for_deletion. + ?TOMBSTONE. %% Make a map type, the value of which is allowed to be 'marked_for_deletion' %% 'marked_for_delition' is a special value which means the key is deleted. @@ -3219,7 +3220,7 @@ get_tombstone_map_value_type(Schema) -> keep_default_tombstone(Map, _Opts) when is_map(Map) -> maps:filter( fun(Key, Value) -> - Key =:= <<"default">> orelse Value =/= atom_to_binary(tombstone()) + Key =:= <<"default">> orelse Value =/= ?TOMBSTONE_BIN end, Map ); diff --git a/apps/emqx_management/src/emqx_mgmt_api_listeners.erl b/apps/emqx_management/src/emqx_mgmt_api_listeners.erl index 9a338b33f..fdd555bab 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_listeners.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_listeners.erl @@ -644,7 +644,7 @@ create(Path, Conf) -> wrap(emqx_conf:update(Path, {create, Conf}, ?OPTS(cluster))). ensure_remove(Path) -> - wrap(emqx_conf:update(Path, emqx_schema:tombstone(), ?OPTS(cluster))). + wrap(emqx_conf:tombstone(Path, ?OPTS(cluster))). wrap({error, {post_config_update, emqx_listeners, Reason}}) -> {error, Reason}; wrap({error, {pre_config_update, emqx_listeners, Reason}}) -> {error, Reason};