From eae2478678999ca4b569365fe04deb8aebc49972 Mon Sep 17 00:00:00 2001 From: Ilya Averyanov Date: Thu, 6 Apr 2023 13:20:41 +0300 Subject: [PATCH] fix(ft): add descriptions for missing ft schema fields --- apps/emqx_s3/src/emqx_s3_schema.erl | 7 +++- .../emqx_ee_conf/src/emqx_ee_conf_schema.erl | 34 +++++++++++-------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/apps/emqx_s3/src/emqx_s3_schema.erl b/apps/emqx_s3/src/emqx_s3_schema.erl index 6db9a5886..bdd88a9e8 100644 --- a/apps/emqx_s3/src/emqx_s3_schema.erl +++ b/apps/emqx_s3/src/emqx_s3_schema.erl @@ -9,7 +9,7 @@ -import(hoconsc, [mk/2, ref/2]). --export([roots/0, fields/1, namespace/0, tags/0]). +-export([roots/0, fields/1, namespace/0, tags/0, desc/1]). -export([translate/1]). @@ -125,6 +125,11 @@ fields(transport_options) -> [headers, max_retries, request_timeout], emqx_connector_http:fields("request") ). +desc(s3) -> + "S3 connection options"; +desc(transport_options) -> + "Options for the HTTP transport layer used by the S3 client". + translate(Conf) -> Options = #{atom_key => true}, #{s3 := TranslatedConf} = hocon_tconf:check_plain( diff --git a/lib-ee/emqx_ee_conf/src/emqx_ee_conf_schema.erl b/lib-ee/emqx_ee_conf/src/emqx_ee_conf_schema.erl index 8e2800c68..907db70d9 100644 --- a/lib-ee/emqx_ee_conf/src/emqx_ee_conf_schema.erl +++ b/lib-ee/emqx_ee_conf/src/emqx_ee_conf_schema.erl @@ -6,10 +6,11 @@ -behaviour(hocon_schema). --export([namespace/0, roots/0, fields/1, translations/0, translation/1]). +-export([namespace/0, roots/0, fields/1, translations/0, translation/1, desc/1]). -define(EE_SCHEMA_MODULES, [ emqx_license_schema, + emqx_s3_schema, emqx_ft_schema ]). @@ -17,16 +18,10 @@ namespace() -> emqx_conf_schema:namespace(). roots() -> - lists:foldl( - fun(Module, Roots) -> - Roots ++ apply(Module, roots, []) - end, - emqx_conf_schema:roots(), - ?EE_SCHEMA_MODULES - ). + emqx_conf_schema:roots() ++ ee_roots(). fields(Name) -> - ee_fields(?EE_SCHEMA_MODULES, Name). + ee_delegate(fields, ?EE_SCHEMA_MODULES, Name). translations() -> emqx_conf_schema:translations(). @@ -34,16 +29,27 @@ translations() -> translation(Name) -> emqx_conf_schema:translation(Name). +desc(Name) -> + ee_delegate(desc, ?EE_SCHEMA_MODULES, Name). + %%------------------------------------------------------------------------------ %% helpers %%------------------------------------------------------------------------------ -ee_fields([EEMod | EEMods], Name) -> +ee_roots() -> + lists:flatmap( + fun(Module) -> + apply(Module, roots, []) + end, + ?EE_SCHEMA_MODULES + ). + +ee_delegate(Method, [EEMod | EEMods], Name) -> case lists:member(Name, apply(EEMod, roots, [])) of true -> - apply(EEMod, fields, [Name]); + EEMod:Method(Name); false -> - ee_fields(EEMods, Name) + ee_delegate(Method, EEMods, Name) end; -ee_fields([], Name) -> - emqx_conf_schema:fields(Name). +ee_delegate(Method, [], Name) -> + emqx_conf_schema:Method(Name).