fix(exhook): fix the server config format
This commit is contained in:
parent
31d4f72d16
commit
183a65d263
|
@ -3,12 +3,14 @@
|
|||
##====================================================================
|
||||
|
||||
exhook: {
|
||||
server.default: {
|
||||
url: "http://127.0.0.1:9000"
|
||||
#ssl: {
|
||||
# cacertfile: "{{ platform_etc_dir }}/certs/cacert.pem"
|
||||
# certfile: "{{ platform_etc_dir }}/certs/cert.pem"
|
||||
# keyfile: "{{ platform_etc_dir }}/certs/key.pem"
|
||||
#}
|
||||
}
|
||||
servers: [
|
||||
# { name: "default"
|
||||
# url: "http://127.0.0.1:9000"
|
||||
# #ssl: {
|
||||
# # cacertfile: "{{ platform_etc_dir }}/certs/cacert.pem"
|
||||
# # certfile: "{{ platform_etc_dir }}/certs/cert.pem"
|
||||
# # keyfile: "{{ platform_etc_dir }}/certs/key.pem"
|
||||
# #}
|
||||
# }
|
||||
]
|
||||
}
|
||||
|
|
|
@ -65,10 +65,14 @@ stop(_State) ->
|
|||
%%--------------------------------------------------------------------
|
||||
|
||||
load_all_servers() ->
|
||||
_ = maps:map(fun(Name, Options) ->
|
||||
load_server(Name, Options)
|
||||
end, emqx_config:get([exhook, server])),
|
||||
ok.
|
||||
try
|
||||
lists:foreach(fun(#{name := Name} = Options) ->
|
||||
load_server(Name, maps:remove(name, Options))
|
||||
end, emqx_config:get([exhook, servers]))
|
||||
catch
|
||||
_Class : _Reason ->
|
||||
ok
|
||||
end, ok.
|
||||
|
||||
unload_all_servers() ->
|
||||
emqx_exhook:disable_all().
|
||||
|
|
|
@ -30,7 +30,7 @@ cli(["server", "list"]) ->
|
|||
cli(["server", "enable", Name0]) ->
|
||||
if_enabled(fun() ->
|
||||
Name = list_to_atom(Name0),
|
||||
case maps:get(Name, emqx_config:get([exhook, server]), undefined) of
|
||||
case find_server_options(Name) of
|
||||
undefined ->
|
||||
emqx_ctl:print("not_found~n");
|
||||
Opts ->
|
||||
|
@ -59,6 +59,14 @@ print(ok) ->
|
|||
print({error, Reason}) ->
|
||||
emqx_ctl:print("~p~n", [Reason]).
|
||||
|
||||
find_server_options(Name) ->
|
||||
Ls = emqx_config:get([exhook, servers]),
|
||||
case [ E || E = #{name := N} <- Ls, N =:= Name] of
|
||||
[] -> undefined;
|
||||
[Options] ->
|
||||
maps:remove(name, Options)
|
||||
end.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Internal funcs
|
||||
%%--------------------------------------------------------------------
|
||||
|
|
|
@ -29,13 +29,11 @@
|
|||
-export([structs/0, fields/1]).
|
||||
-export([t/1, t/3, t/4, ref/1]).
|
||||
|
||||
structs() -> [server].
|
||||
structs() -> [servers].
|
||||
|
||||
fields(server) ->
|
||||
[{"$name", t(ref(server_structs))}];
|
||||
|
||||
fields(server_structs) ->
|
||||
[ {url, t(string(), "emqx_exhook.url", "")}
|
||||
fields(servers) ->
|
||||
[ {name, string()}
|
||||
, {url, string()}
|
||||
, {ssl, t(ref(ssl_conf_group))}
|
||||
];
|
||||
|
||||
|
|
|
@ -23,7 +23,13 @@
|
|||
-include_lib("common_test/include/ct.hrl").
|
||||
|
||||
-define(CONF_DEFAULT, <<"
|
||||
exhook: { server.default: { url: \"http://127.0.0.1:9000\" } }
|
||||
exhook: {
|
||||
servers: [
|
||||
{ name: \"default\"
|
||||
url: \"http://127.0.0.1:9000\"
|
||||
}
|
||||
]
|
||||
}
|
||||
">>).
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
@ -49,8 +55,8 @@ end_per_suite(_Cfg) ->
|
|||
t_noserver_nohook(_) ->
|
||||
emqx_exhook:disable(default),
|
||||
?assertEqual([], loaded_exhook_hookpoints()),
|
||||
Opts = emqx_config:get([exhook, server, default]),
|
||||
ok = emqx_exhook:enable(default, Opts),
|
||||
[#{name := Name} = Opts] = emqx_config:get([exhook, servers]),
|
||||
ok = emqx_exhook:enable(Name, Opts),
|
||||
?assertNotEqual([], loaded_exhook_hookpoints()).
|
||||
|
||||
t_cli_list(_) ->
|
||||
|
|
|
@ -31,7 +31,13 @@
|
|||
]).
|
||||
|
||||
-define(CONF_DEFAULT, <<"
|
||||
exhook: { server.default: { url: \"http://127.0.0.1:9000\" } }
|
||||
exhook: {
|
||||
servers: [
|
||||
{ name: \"default\"
|
||||
url: \"http://127.0.0.1:9000\"
|
||||
}
|
||||
]
|
||||
}
|
||||
">>).
|
||||
|
||||
-define(ALL(Vars, Types, Exprs),
|
||||
|
|
|
@ -267,7 +267,7 @@ relx_apps(ReleaseType) ->
|
|||
, emqx_authn
|
||||
, emqx_authz
|
||||
, emqx_gateway
|
||||
, {emqx_exhook, load}
|
||||
, emqx_exhook
|
||||
, emqx_data_bridge
|
||||
, emqx_rule_engine
|
||||
, emqx_rule_actions
|
||||
|
|
Loading…
Reference in New Issue