|
@@ -26,39 +26,7 @@
|
|
|
, update_config/1
|
|
, update_config/1
|
|
|
]).
|
|
]).
|
|
|
|
|
|
|
|
--export([structs/0, fields/1]).
|
|
|
|
|
-
|
|
|
|
|
-%%======================================================================================
|
|
|
|
|
-%% Hocon Schema Definitions
|
|
|
|
|
-
|
|
|
|
|
--define(BRIDGE_FIELDS(T),
|
|
|
|
|
- [{name, hoconsc:t(typerefl:binary())},
|
|
|
|
|
- {type, hoconsc:t(typerefl:atom(T))},
|
|
|
|
|
- {config, hoconsc:t(hoconsc:ref(list_to_atom("emqx_connector_"++atom_to_list(T)), ""))}]).
|
|
|
|
|
-
|
|
|
|
|
--define(TYPES, [mysql, pgsql, mongo, redis, ldap]).
|
|
|
|
|
--define(BRIDGES, [hoconsc:ref(?MODULE, T) || T <- ?TYPES]).
|
|
|
|
|
-
|
|
|
|
|
-structs() -> ["emqx_data_bridge"].
|
|
|
|
|
-
|
|
|
|
|
-fields("emqx_data_bridge") ->
|
|
|
|
|
- [{bridges, #{type => hoconsc:array(hoconsc:union(?BRIDGES)),
|
|
|
|
|
- default => []}}];
|
|
|
|
|
-
|
|
|
|
|
-fields(mysql) -> ?BRIDGE_FIELDS(mysql);
|
|
|
|
|
-fields(pgsql) -> ?BRIDGE_FIELDS(pgsql);
|
|
|
|
|
-fields(mongo) -> ?BRIDGE_FIELDS(mongo);
|
|
|
|
|
-fields(redis) -> ?BRIDGE_FIELDS(redis);
|
|
|
|
|
-fields(ldap) -> ?BRIDGE_FIELDS(ldap).
|
|
|
|
|
-
|
|
|
|
|
-%%======================================================================================
|
|
|
|
|
-
|
|
|
|
|
load_bridges() ->
|
|
load_bridges() ->
|
|
|
- % ConfFile = filename:join([emqx:get_env(plugins_etc_dir), ?MODULE]) ++ ".conf",
|
|
|
|
|
- % {ok, RawConfig} = hocon:load(ConfFile, #{format => richmap}),
|
|
|
|
|
- % #{emqx_data_bridge := #{bridges := Bridges}} =
|
|
|
|
|
- % hocon_schema:check(emqx_data_bridge_schema, RawConfig,
|
|
|
|
|
- % #{atom_key => true, return_plain => true}),
|
|
|
|
|
Bridges = emqx_config:get([emqx_data_bridge, bridges], []),
|
|
Bridges = emqx_config:get([emqx_data_bridge, bridges], []),
|
|
|
emqx_data_bridge_monitor:ensure_all_started(Bridges).
|
|
emqx_data_bridge_monitor:ensure_all_started(Bridges).
|
|
|
|
|
|