fix: convert ssl certfiles for dry-run creating bridges
This commit is contained in:
parent
c4787900cf
commit
e18c2a6de2
|
@ -343,20 +343,18 @@ recreate(Type, Name, Conf) ->
|
|||
).
|
||||
|
||||
create_dry_run(Type, Conf) ->
|
||||
Conf0 = Conf#{
|
||||
<<"egress">> =>
|
||||
#{
|
||||
<<"remote_topic">> => <<"t">>,
|
||||
<<"remote_qos">> => 0,
|
||||
<<"retain">> => true,
|
||||
<<"payload">> => <<"val">>
|
||||
},
|
||||
<<"ingress">> =>
|
||||
#{<<"remote_topic">> => <<"t">>}
|
||||
},
|
||||
Conf0 = fill_dry_run_conf(Conf),
|
||||
case emqx_resource:check_config(emqx_bridge:resource_type(Type), Conf0) of
|
||||
{ok, Conf1} ->
|
||||
emqx_resource:create_dry_run_local(emqx_bridge:resource_type(Type), Conf1);
|
||||
TmpPath = iolist_to_binary(["bridges-create-dry-run:", emqx_misc:gen_id(8)]),
|
||||
try emqx_connector_ssl:convert_certs(TmpPath, Conf1) of
|
||||
{error, Reason} ->
|
||||
{error, Reason};
|
||||
{ok, ConfNew} ->
|
||||
emqx_resource:create_dry_run_local(emqx_bridge:resource_type(Type), ConfNew)
|
||||
after
|
||||
emqx_connector_ssl:clear_certs(TmpPath, Conf1)
|
||||
end;
|
||||
{error, _} = Error ->
|
||||
Error
|
||||
end.
|
||||
|
@ -557,6 +555,19 @@ get_basic_usage_info() ->
|
|||
InitialAcc
|
||||
end.
|
||||
|
||||
fill_dry_run_conf(Conf) ->
|
||||
Conf#{
|
||||
<<"egress">> =>
|
||||
#{
|
||||
<<"remote_topic">> => <<"t">>,
|
||||
<<"remote_qos">> => 0,
|
||||
<<"retain">> => true,
|
||||
<<"payload">> => <<"val">>
|
||||
},
|
||||
<<"ingress">> =>
|
||||
#{<<"remote_topic">> => <<"t">>}
|
||||
}.
|
||||
|
||||
bin(Bin) when is_binary(Bin) -> Bin;
|
||||
bin(Str) when is_list(Str) -> list_to_binary(Str);
|
||||
bin(Atom) when is_atom(Atom) -> atom_to_binary(Atom, utf8).
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
]).
|
||||
|
||||
convert_certs(RltvDir, NewConfig) ->
|
||||
NewSSL = drop_invalid_certs(maps:get(<<"ssl">>, NewConfig, undefined)),
|
||||
NewSSL = drop_invalid_certs(map_get_oneof([<<"ssl">>, ssl], NewConfig, undefined)),
|
||||
case emqx_tls_lib:ensure_ssl_files(RltvDir, NewSSL) of
|
||||
{ok, NewSSL1} ->
|
||||
{ok, new_ssl_config(NewConfig, NewSSL1)};
|
||||
|
@ -35,7 +35,10 @@ clear_certs(RltvDir, Config) ->
|
|||
ok = emqx_tls_lib:delete_ssl_files(RltvDir, undefined, OldSSL).
|
||||
|
||||
new_ssl_config(Config, undefined) -> Config;
|
||||
new_ssl_config(Config, SSL) -> Config#{<<"ssl">> => SSL}.
|
||||
new_ssl_config(Config, #{<<"enable">> := _} = SSL) ->
|
||||
Config#{<<"ssl">> => SSL};
|
||||
new_ssl_config(Config, #{enable := _} = SSL) ->
|
||||
Config#{ssl => SSL}.
|
||||
|
||||
drop_invalid_certs(undefined) -> undefined;
|
||||
drop_invalid_certs(SSL) -> emqx_tls_lib:drop_invalid_certs(SSL).
|
||||
|
|
Loading…
Reference in New Issue