Просмотр исходного кода

chore: reasonable naming for datalayers action and connector

JianBo He 1 год назад
Родитель
Сommit
79c36a53d9

+ 2 - 2
apps/emqx_bridge/src/schema/emqx_bridge_enterprise.erl

@@ -52,7 +52,7 @@ api_schemas(Method) ->
         api_ref(emqx_bridge_kinesis, <<"kinesis_producer">>, Method ++ "_producer"),
         api_ref(emqx_bridge_greptimedb, <<"greptimedb">>, Method ++ "_grpc_v1"),
         api_ref(emqx_bridge_azure_event_hub, <<"azure_event_hub_producer">>, Method ++ "_producer"),
-        api_ref(emqx_bridge_datalayers, <<"datalayers">>, Method ++ "_api_v1")
+        api_ref(emqx_bridge_datalayers, <<"datalayers">>, Method ++ "_api")
     ].
 
 schema_modules() ->
@@ -441,7 +441,7 @@ datalayers_structs() ->
     [
         {datalayers,
             mk(
-                hoconsc:map(name, ref(emqx_bridge_datalayers, datalayers_api_v1)),
+                hoconsc:map(name, ref(emqx_bridge_datalayers, datalayers_api)),
                 #{
                     desc => <<"Datalayers Bridge Config">>,
                     required => false

+ 17 - 21
apps/emqx_bridge_datalayers/src/emqx_bridge_datalayers.erl

@@ -48,9 +48,9 @@ write_syntax_type() ->
 conn_bridge_examples(Method) ->
     [
         #{
-            <<"datalayers_api_v1">> => #{
+            <<"datalayers">> => #{
                 summary => <<"Datalayers Bridge">>,
-                value => values("datalayers_api_v1", Method)
+                value => values("datalayers", Method)
             }
         }
     ].
@@ -81,7 +81,7 @@ connector_examples(Method) ->
             <<"datalayers">> => #{
                 summary => <<"Datalayers Connector">>,
                 value => emqx_connector_schema:connector_values(
-                    Method, datalayers, connector_values(datalayers_api_v1)
+                    Method, datalayers, connector_values(datalayers)
                 )
             }
         }
@@ -90,9 +90,8 @@ connector_examples(Method) ->
 connector_values(Type) ->
     maps:merge(basic_connector_values(), #{parameters => connector_values_v(Type)}).
 
-connector_values_v(datalayers_api_v1) ->
+connector_values_v(datalayers) ->
     #{
-        datalayers_type => datalayers_api_v1,
         database => <<"example_database">>,
         username => <<"example_username">>,
         password => <<"******">>
@@ -107,10 +106,10 @@ basic_connector_values() ->
 
 values(Protocol, get) ->
     values(Protocol, post);
-values("datalayers_api_v1", post) ->
+values("datalayers", post) ->
     SupportUint = <<>>,
-    TypeOpts = connector_values_v(datalayers_api_v1),
-    values(common, "datalayers_api_v1", SupportUint, TypeOpts);
+    TypeOpts = connector_values_v(datalayers),
+    values(common, "datalayers", SupportUint, TypeOpts);
 values(Protocol, put) ->
     values(Protocol, post).
 
@@ -144,12 +143,12 @@ fields("config_connector") ->
     emqx_connector_schema:common_fields() ++
         emqx_bridge_datalayers_connector:fields("connector") ++
         emqx_connector_schema:resource_opts_ref(?MODULE, connector_resource_opts);
-fields("post_api_v1") ->
-    method_fields(post, datalayers_api_v1);
-fields("put_api_v1") ->
-    method_fields(put, datalayers_api_v1);
-fields("get_api_v1") ->
-    method_fields(get, datalayers_api_v1);
+fields("post_api") ->
+    method_fields(post, datalayers);
+fields("put_api") ->
+    method_fields(put, datalayers);
+fields("get_api") ->
+    method_fields(get, datalayers);
 fields(action) ->
     {datalayers,
         mk(
@@ -184,11 +183,8 @@ fields(Field) when
     Field == "put_bridge_v2"
 ->
     emqx_bridge_v2_schema:api_fields(Field, ?ACTION_TYPE, fields(datalayers_action));
-fields(Type) when
-    Type == datalayers_api_v1
-->
-    datalayers_bridge_common_fields() ++
-        connector_fields(Type).
+fields(datalayers_api) ->
+    datalayers_bridge_common_fields() ++ connector_fields(datalayers).
 
 method_fields(post, ConnectorType) ->
     datalayers_bridge_common_fields() ++
@@ -224,8 +220,8 @@ desc("config") ->
     ?DESC("desc_config");
 desc(Method) when Method =:= "get"; Method =:= "put"; Method =:= "post" ->
     ["Configuration for Datalayers using `", string:to_upper(Method), "` method."];
-desc(datalayers_api_v1) ->
-    ?DESC(emqx_bridge_datalayers_connector, "datalayers_api_v1");
+desc(datalayers_api) ->
+    ?DESC(emqx_bridge_datalayers_connector, "datalayers");
 desc(datalayers_action) ->
     ?DESC(datalayers_action);
 desc(action_parameters) ->

+ 19 - 38
apps/emqx_bridge_datalayers/src/emqx_bridge_datalayers_connector.erl

@@ -69,7 +69,7 @@
         (STATUS_CODE < 200 orelse STATUS_CODE >= 300))
 ).
 
-%% -------------------------------------------------------------------------------------------------
+%%--------------------------------------------------------------------
 %% resource callback
 
 resource_type() -> datalayers.
@@ -227,8 +227,7 @@ transform_bridge_v1_config_to_connector_config(BridgeV1Config) ->
     ConnConfig0 = maps:without([write_syntax, precision], BridgeV1Config),
     ConnConfig1 =
         case emqx_utils_maps:indent(parameters, IndentKeys, ConnConfig0) of
-            #{parameters := #{database := _} = Params} = Conf ->
-                Conf#{parameters => Params#{datalayers_type => datalayers_api_v1}}
+            #{parameters := #{database := _}} = Conf -> Conf
         end,
     emqx_utils_maps:update_if_present(
         resource_opts,
@@ -236,7 +235,7 @@ transform_bridge_v1_config_to_connector_config(BridgeV1Config) ->
         ConnConfig1
     ).
 
-%% -------------------------------------------------------------------------------------------------
+%%--------------------------------------------------------------------
 %% schema
 
 namespace() -> connector_datalayers.
@@ -251,28 +250,25 @@ roots() ->
 fields("connector") ->
     [
         server_field(),
-        parameter_field()
+        {parameters,
+            mk(
+                ref(?MODULE, "datalayers_parameters"),
+                #{required => true, desc => ?DESC("datalayers_parameters")}
+            )}
     ] ++ emqx_connector_schema_lib:ssl_fields();
-fields("connector_datalayers_api_v1") ->
-    [datalayers_type_field(datalayers_api_v1) | datalayers_api_v1_fields()];
+fields("datalayers_parameters") ->
+    datalayers_parameters_fields();
 %% ============ begin: schema for old bridge configs ============
 
-fields(datalayers_api_v1) ->
-    fields(common) ++ datalayers_api_v1_fields();
+fields(datalayers) ->
+    fields(common) ++ datalayers_parameters_fields();
 fields(common) ->
     [
         server_field(),
         precision_field()
     ] ++ emqx_connector_schema_lib:ssl_fields().
-%% ============ end: schema for old bridge configs ============
 
-datalayers_type_field(Type) ->
-    {datalayers_type, #{
-        required => true,
-        type => Type,
-        default => Type,
-        desc => ?DESC(atom_to_list(Type))
-    }}.
+%% ============ end: schema for old bridge configs ============
 
 server_field() ->
     {server, server()}.
@@ -287,17 +283,7 @@ precision_field() ->
             required => false, default => ms, desc => ?DESC("precision")
         })}.
 
-parameter_field() ->
-    {parameters,
-        mk(
-            hoconsc:union([
-                ref(?MODULE, "connector_" ++ T)
-             || T <- ["datalayers_api_v1"]
-            ]),
-            #{required => true, desc => ?DESC("datalayers_parameters")}
-        )}.
-
-datalayers_api_v1_fields() ->
+datalayers_parameters_fields() ->
     [
         {database, mk(binary(), #{required => true, desc => ?DESC("database")})},
         {username, mk(binary(), #{desc => ?DESC("username")})},
@@ -307,7 +293,7 @@ datalayers_api_v1_fields() ->
 server() ->
     Meta = #{
         required => false,
-        default => <<"127.0.0.1:8086">>,
+        default => <<"127.0.0.1:8361">>,
         desc => ?DESC("server"),
         converter => fun convert_server/2
     },
@@ -319,12 +305,10 @@ desc(parameters) ->
     ?DESC("dayalayers_parameters");
 desc("datalayers_parameters") ->
     ?DESC("datalayers_parameters");
-desc(datalayers_api_v1) ->
-    ?DESC("datalayers_api_v1");
+desc(datalayers_api) ->
+    ?DESC("datalayers_api");
 desc("connector") ->
-    ?DESC("connector");
-desc("connector_datalayers_api_v1") ->
-    ?DESC("datalayers_api_v1").
+    ?DESC("connector").
 
 %% -------------------------------------------------------------------------------------------------
 %% internal functions
@@ -431,10 +415,7 @@ client_config(
         {pool, InstId}
     ] ++ protocol_config(Config).
 
-%% api v1 config
-protocol_config(#{
-    parameters := #{datalayers_type := datalayers_api_v1, database := DB} = Params, ssl := SSL
-}) ->
+protocol_config(#{parameters := #{database := DB} = Params, ssl := SSL}) ->
     [
         {protocol, http},
         {version, v1},

+ 11 - 11
apps/emqx_bridge_datalayers/test/emqx_bridge_datalayers_SUITE.erl

@@ -16,29 +16,29 @@
 
 all() ->
     [
-        %{group, with_batch},
+        {group, with_batch},
         {group, without_batch}
     ].
 
 groups() ->
     TCs = emqx_common_test_helpers:all(?MODULE),
     [
-        %{with_batch, [
-        %    {group, sync_query},
-        %    {group, async_query}
-        %]},
+        {with_batch, [
+            {group, sync_query},
+            {group, async_query}
+        ]},
         {without_batch, [
-            {group, sync_query}
-            %{group, async_query}
+            {group, sync_query},
+            {group, async_query}
         ]},
         {sync_query, [
             {group, apiv1_tcp},
             {group, apiv1_tls}
         ]},
-        %{async_query, [
-        %    {group, apiv1_tcp},
-        %    {group, apiv1_tls}
-        %]},
+        {async_query, [
+            {group, apiv1_tcp},
+            {group, apiv1_tls}
+        ]},
         {apiv1_tcp, TCs},
         {apiv1_tls, TCs}
     ].

+ 0 - 1
apps/emqx_bridge_datalayers/test/emqx_bridge_datalayers_connector_SUITE.erl

@@ -236,7 +236,6 @@ datalayers_connector_config(Host, Port, SslEnabled, Verify) ->
     Server = list_to_binary(io_lib:format("~s:~b", [Host, Port])),
     ConnectorConf = #{
         <<"parameters">> => #{
-            <<"datalayers_type">> => <<"datalayers_api_v1">>,
             <<"database">> => <<"mqtt">>,
             <<"username">> => <<"admin">>,
             <<"password">> => <<"public">>

+ 47 - 0
rel/i18n/emqx_bridge_datalayers_connector.hocon

@@ -0,0 +1,47 @@
+emqx_bridge_datalayers_connector {
+
+database.desc:
+"""Datalayers database."""
+
+database.label:
+"""Database"""
+
+datalayers_api.desc:
+"""Datalayers protocol."""
+
+datalayers_api.label:
+"""HTTP API Protocol"""
+
+password.desc:
+"""Datalayers password."""
+
+password.label:
+"""Password"""
+
+precision.desc:
+"""Datalayer time precision."""
+
+precision.label:
+"""Time Precision"""
+
+server.desc:
+"""The IPv4 or IPv6 address or the hostname to connect to.<br/>
+A host entry has the following form: `Host[:Port]`.<br/>
+The Datalayers default port 8361 is used if `[:Port]` is not specified."""
+
+server.label:
+"""Server Host"""
+
+username.desc:
+"""Datalayers username."""
+
+username.label:
+"""Username"""
+
+datalayers_parameters.label:
+"""Datalayers Specific Parameters"""
+
+datalayers_parameters.desc:
+"""Set of parameters specific for the given type of this Datalayer connector."""
+
+}