refactor(emqx_connector_ssl): simplify implementation
This commit is contained in:
parent
6f67e3b333
commit
67cef65fdb
|
@ -30,12 +30,12 @@
|
||||||
convert_certs(RltvDir, #{<<"connector">> := Connector} = Config) when
|
convert_certs(RltvDir, #{<<"connector">> := Connector} = Config) when
|
||||||
is_map(Connector)
|
is_map(Connector)
|
||||||
->
|
->
|
||||||
SSL = map_get_oneof([<<"ssl">>, ssl], Connector, undefined),
|
SSL = maps:get(<<"ssl">>, Connector, undefined),
|
||||||
new_ssl_config(RltvDir, Config, SSL);
|
new_ssl_config(RltvDir, Config, SSL);
|
||||||
convert_certs(RltvDir, #{connector := Connector} = Config) when
|
convert_certs(RltvDir, #{connector := Connector} = Config) when
|
||||||
is_map(Connector)
|
is_map(Connector)
|
||||||
->
|
->
|
||||||
SSL = map_get_oneof([<<"ssl">>, ssl], Connector, undefined),
|
SSL = maps:get(ssl, Connector, undefined),
|
||||||
new_ssl_config(RltvDir, Config, SSL);
|
new_ssl_config(RltvDir, Config, SSL);
|
||||||
%% for bridges without `connector` field. i.e. webhook
|
%% for bridges without `connector` field. i.e. webhook
|
||||||
convert_certs(RltvDir, #{<<"ssl">> := SSL} = Config) ->
|
convert_certs(RltvDir, #{<<"ssl">> := SSL} = Config) ->
|
||||||
|
@ -52,7 +52,10 @@ clear_certs(RltvDir, Config) ->
|
||||||
clear_certs2(RltvDir, #{<<"connector">> := Connector} = _Config) when
|
clear_certs2(RltvDir, #{<<"connector">> := Connector} = _Config) when
|
||||||
is_map(Connector)
|
is_map(Connector)
|
||||||
->
|
->
|
||||||
OldSSL = map_get_oneof([<<"ssl">>, ssl], Connector, undefined),
|
%% TODO remove the 'connector' clause after dev/ee5.0 is merged back to master
|
||||||
|
%% The `connector` config layer will be removed.
|
||||||
|
%% for bridges with `connector` field. i.e. `mqtt_source` and `mqtt_sink`
|
||||||
|
OldSSL = maps:get(<<"ssl">>, Connector, undefined),
|
||||||
ok = emqx_tls_lib:delete_ssl_files(RltvDir, undefined, OldSSL);
|
ok = emqx_tls_lib:delete_ssl_files(RltvDir, undefined, OldSSL);
|
||||||
clear_certs2(RltvDir, #{<<"ssl">> := OldSSL} = _Config) ->
|
clear_certs2(RltvDir, #{<<"ssl">> := OldSSL} = _Config) ->
|
||||||
ok = emqx_tls_lib:delete_ssl_files(RltvDir, undefined, OldSSL);
|
ok = emqx_tls_lib:delete_ssl_files(RltvDir, undefined, OldSSL);
|
||||||
|
@ -66,14 +69,11 @@ try_clear_certs(RltvDir, NewConf, OldConf) ->
|
||||||
normalize_key_to_bin(OldConf)
|
normalize_key_to_bin(OldConf)
|
||||||
).
|
).
|
||||||
|
|
||||||
try_clear_certs2(RltvDir, #{<<"connector">> := NewConnector}, #{<<"connector">> := OldConnector}) when
|
try_clear_certs2(RltvDir, #{<<"connector">> := NewConnector}, #{<<"connector">> := OldConnector}) ->
|
||||||
is_map(NewConnector),
|
try_clear_certs2(RltvDir, NewConnector, OldConnector);
|
||||||
is_map(OldConnector)
|
try_clear_certs2(RltvDir, NewSSL, OldSSL) when is_map(NewSSL) andalso is_map(OldSSL) ->
|
||||||
->
|
NewSSL = maps:get(<<"ssl">>, NewSSL, undefined),
|
||||||
NewSSL = map_get_oneof([<<"ssl">>, ssl], NewConnector, undefined),
|
OldSSL = maps:get(<<"ssl">>, OldSSL, undefined),
|
||||||
OldSSL = map_get_oneof([<<"ssl">>, ssl], OldConnector, undefined),
|
|
||||||
ok = emqx_tls_lib:delete_ssl_files(RltvDir, NewSSL, OldSSL);
|
|
||||||
try_clear_certs2(RltvDir, #{<<"ssl">> := NewSSL}, #{<<"ssl">> := OldSSL}) ->
|
|
||||||
ok = emqx_tls_lib:delete_ssl_files(RltvDir, NewSSL, OldSSL);
|
ok = emqx_tls_lib:delete_ssl_files(RltvDir, NewSSL, OldSSL);
|
||||||
try_clear_certs2(RltvDir, NewConf, OldConf) ->
|
try_clear_certs2(RltvDir, NewConf, OldConf) ->
|
||||||
?SLOG(debug, #{msg => "unexpected_conf", path => RltvDir, new => NewConf, OldConf => OldConf}),
|
?SLOG(debug, #{msg => "unexpected_conf", path => RltvDir, new => NewConf, OldConf => OldConf}),
|
||||||
|
@ -98,27 +98,5 @@ new_ssl_config(#{<<"ssl">> := _} = Config, NewSSL) ->
|
||||||
new_ssl_config(Config, _NewSSL) ->
|
new_ssl_config(Config, _NewSSL) ->
|
||||||
Config.
|
Config.
|
||||||
|
|
||||||
map_get_oneof([], _Map, Default) ->
|
normalize_key_to_bin(Map) ->
|
||||||
Default;
|
emqx_map_lib:binary_key_map(Map).
|
||||||
map_get_oneof([Key | Keys], Map, Default) ->
|
|
||||||
case maps:find(Key, Map) of
|
|
||||||
error ->
|
|
||||||
map_get_oneof(Keys, Map, Default);
|
|
||||||
{ok, Value} ->
|
|
||||||
Value
|
|
||||||
end.
|
|
||||||
|
|
||||||
normalize_key_to_bin(Map) when is_map(Map) ->
|
|
||||||
maps:fold(
|
|
||||||
fun
|
|
||||||
(K, V, Acc) when is_atom(K) ->
|
|
||||||
Bin = erlang:atom_to_binary(K, utf8),
|
|
||||||
Acc#{Bin => V};
|
|
||||||
(K, V, Acc) ->
|
|
||||||
Acc#{K => V}
|
|
||||||
end,
|
|
||||||
#{},
|
|
||||||
Map
|
|
||||||
);
|
|
||||||
normalize_key_to_bin(Any) ->
|
|
||||||
Any.
|
|
||||||
|
|
Loading…
Reference in New Issue