fix(mqtt_bridge): fix schema

This commit is contained in:
Thales Macedo Garitezi 2023-12-19 17:44:19 -03:00
parent 139da6d720
commit 7befe898d0
2 changed files with 20 additions and 22 deletions

View File

@ -76,14 +76,6 @@ fields("config_connector") ->
} }
)}, )},
{description, emqx_schema:description_schema()}, {description, emqx_schema:description_schema()},
{resource_opts,
mk(
hoconsc:ref(creation_opts),
#{
required => false,
desc => ?DESC(emqx_resource_schema, "creation_opts")
}
)},
{pool_size, fun egress_pool_size/1} {pool_size, fun egress_pool_size/1}
% {ingress, % {ingress,
% mk( % mk(
@ -95,8 +87,9 @@ fields("config_connector") ->
% desc => ?DESC("ingress_desc") % desc => ?DESC("ingress_desc")
% } % }
% )} % )}
] ++ fields("server_configs"); ] ++ emqx_connector_schema:resource_opts_ref(?MODULE, resource_opts) ++
fields(creation_opts) -> fields("server_configs");
fields(resource_opts) ->
emqx_connector_schema:resource_opts_fields(); emqx_connector_schema:resource_opts_fields();
fields("server_configs") -> fields("server_configs") ->
[ [

View File

@ -52,13 +52,8 @@ make_connector_config_from_bridge_v1_config(Config) ->
|| {FieldName, _} <- ConnectorConfigSchema || {FieldName, _} <- ConnectorConfigSchema
], ],
ConnectorConfigMap = maps:with(ConnectorTopFields, Config), ConnectorConfigMap = maps:with(ConnectorTopFields, Config),
ResourceOptsSchema = emqx_bridge_mqtt_connector_schema:fields(creation_opts),
ResourceOptsTopFields = [
erlang:atom_to_binary(FieldName, utf8)
|| {FieldName, _} <- ResourceOptsSchema
],
ResourceOptsMap = maps:get(<<"resource_opts">>, ConnectorConfigMap, #{}), ResourceOptsMap = maps:get(<<"resource_opts">>, ConnectorConfigMap, #{}),
ResourceOptsMap2 = maps:with(ResourceOptsTopFields, ResourceOptsMap), ResourceOptsMap2 = emqx_connector_schema:project_to_connector_resource_opts(ResourceOptsMap),
ConnectorConfigMap2 = maps:put(<<"resource_opts">>, ResourceOptsMap2, ConnectorConfigMap), ConnectorConfigMap2 = maps:put(<<"resource_opts">>, ResourceOptsMap2, ConnectorConfigMap),
IngressMap0 = maps:get(<<"ingress">>, Config, #{}), IngressMap0 = maps:get(<<"ingress">>, Config, #{}),
EgressMap = maps:get(<<"egress">>, Config, #{}), EgressMap = maps:get(<<"egress">>, Config, #{}),
@ -190,7 +185,13 @@ connector_action_config_to_bridge_v1_config(
Params = maps:get(<<"parameters">>, ActionConfig, #{}), Params = maps:get(<<"parameters">>, ActionConfig, #{}),
ResourceOptsConnector = maps:get(<<"resource_opts">>, ConnectorConfig, #{}), ResourceOptsConnector = maps:get(<<"resource_opts">>, ConnectorConfig, #{}),
ResourceOptsAction = maps:get(<<"resource_opts">>, ActionConfig, #{}), ResourceOptsAction = maps:get(<<"resource_opts">>, ActionConfig, #{}),
ResourceOpts = maps:merge(ResourceOptsConnector, ResourceOptsAction), ResourceOpts0 = maps:merge(ResourceOptsConnector, ResourceOptsAction),
V1ResourceOptsFields =
lists:map(
fun({Field, _}) -> atom_to_binary(Field) end,
emqx_bridge_mqtt_schema:fields("creation_opts")
),
ResourceOpts = maps:with(V1ResourceOptsFields, ResourceOpts0),
%% Check the direction of the action %% Check the direction of the action
Direction = Direction =
case maps:get(<<"remote">>, Params) of case maps:get(<<"remote">>, Params) of
@ -212,11 +213,15 @@ connector_action_config_to_bridge_v1_config(
#{<<"egress">> => Parms3}; #{<<"egress">> => Parms3};
{<<"publisher">>, LocalT} -> {<<"publisher">>, LocalT} ->
#{ #{
<<"egress">> => Parms3, <<"egress">> =>
maps:merge(
Parms3, #{
<<"local">> => <<"local">> =>
#{ #{
<<"topic">> => LocalT <<"topic">> => LocalT
} }
}
)
}; };
{<<"subscriber">>, _} -> {<<"subscriber">>, _} ->
#{<<"ingress">> => Parms3} #{<<"ingress">> => Parms3}