fix(backup): add compatible for more lower version
This commit is contained in:
parent
109b2f4e90
commit
3f2204fb5c
|
@ -243,7 +243,19 @@ import_resources_and_rules(Resources, Rules, _FromVersion) ->
|
||||||
-else.
|
-else.
|
||||||
import_resources_and_rules(Resources, Rules, FromVersion)
|
import_resources_and_rules(Resources, Rules, FromVersion)
|
||||||
when FromVersion =:= "4.0" orelse FromVersion =:= "4.1" orelse FromVersion =:= "4.2" ->
|
when FromVersion =:= "4.0" orelse FromVersion =:= "4.1" orelse FromVersion =:= "4.2" ->
|
||||||
Configs = lists:foldl(fun(#{<<"id">> := ID,
|
Configs = lists:foldl(fun compatible_version/2 , [], Resources),
|
||||||
|
lists:foreach(fun(#{<<"actions">> := Actions} = Rule) ->
|
||||||
|
NActions = apply_new_config(Actions, Configs),
|
||||||
|
import_rule(Rule#{<<"actions">> := NActions})
|
||||||
|
end, Rules);
|
||||||
|
|
||||||
|
import_resources_and_rules(Resources, Rules, _FromVersion) ->
|
||||||
|
import_resources(Resources),
|
||||||
|
import_rules(Rules).
|
||||||
|
|
||||||
|
|
||||||
|
%% 4.2.5 +
|
||||||
|
compatible_version(#{<<"id">> := ID,
|
||||||
<<"type">> := <<"web_hook">>,
|
<<"type">> := <<"web_hook">>,
|
||||||
<<"config">> := #{<<"connect_timeout">> := ConnectTimeout,
|
<<"config">> := #{<<"connect_timeout">> := ConnectTimeout,
|
||||||
<<"content_type">> := ContentType,
|
<<"content_type">> := ContentType,
|
||||||
|
@ -255,31 +267,51 @@ import_resources_and_rules(Resources, Rules, FromVersion)
|
||||||
CovertFun = fun(Int) ->
|
CovertFun = fun(Int) ->
|
||||||
list_to_binary(integer_to_list(Int) ++ "s")
|
list_to_binary(integer_to_list(Int) ++ "s")
|
||||||
end,
|
end,
|
||||||
NConfig = #{<<"connect_timeout">> => CovertFun(ConnectTimeout),
|
Cfg = make_new_config(#{<<"method">> => Method,
|
||||||
<<"method">> => Method,
|
|
||||||
<<"pool_size">> => PoolSize,
|
<<"pool_size">> => PoolSize,
|
||||||
|
<<"connect_timeout">> => CovertFun(ConnectTimeout),
|
||||||
<<"request_timeout">> => CovertFun(RequestTimeout),
|
<<"request_timeout">> => CovertFun(RequestTimeout),
|
||||||
|
<<"url">> => URL}),
|
||||||
|
{ok, _Resource} = import_resource(Resource#{<<"config">> := Cfg}),
|
||||||
|
NHeaders = maps:put(<<"content-type">>, ContentType, Headers),
|
||||||
|
[{ID, #{headers => NHeaders, method => Method}} | Acc];
|
||||||
|
% 4.2.0
|
||||||
|
compatible_version(#{<<"id">> := ID,
|
||||||
|
<<"type">> := <<"web_hook">>,
|
||||||
|
<<"config">> := #{<<"headers">> := Headers,
|
||||||
|
<<"method">> := Method,%% 4.2.0 Different here
|
||||||
|
<<"url">> := URL}} = Resource, Acc) ->
|
||||||
|
Cfg = make_new_config(#{<<"method">> => Method,
|
||||||
|
<<"url">> => URL}),
|
||||||
|
{ok, _Resource} = import_resource(Resource#{<<"config">> := Cfg}),
|
||||||
|
NHeaders = maps:put(<<"content-type">>, <<"application/json">> , Headers),
|
||||||
|
[{ID, #{headers => NHeaders, method => Method}} | Acc];
|
||||||
|
% 4.2.3
|
||||||
|
compatible_version(#{<<"id">> := ID,
|
||||||
|
<<"type">> := <<"web_hook">>,
|
||||||
|
<<"config">> := #{<<"headers">> := Headers,
|
||||||
|
<<"content_type">> := ContentType,%% 4.2.3 Different here
|
||||||
|
<<"method">> := Method,
|
||||||
|
<<"url">> := URL}} = Resource, Acc) ->
|
||||||
|
Cfg = make_new_config(#{<<"method">> => Method,
|
||||||
|
<<"url">> => URL}),
|
||||||
|
{ok, _Resource} = import_resource(Resource#{<<"config">> := Cfg}),
|
||||||
|
NHeaders = maps:put(<<"content-type">>, ContentType, Headers),
|
||||||
|
[{ID, #{headers => NHeaders, method => Method}} | Acc];
|
||||||
|
% normal version
|
||||||
|
compatible_version(Resource, Acc) ->
|
||||||
|
{ok, _Resource} = import_resource(Resource),
|
||||||
|
Acc.
|
||||||
|
|
||||||
|
make_new_config(Cfg) ->
|
||||||
|
Config = #{<<"pool_size">> => 8,
|
||||||
|
<<"connect_timeout">> => <<"3s">>,
|
||||||
|
<<"request_timeout">> => <<"3s">>,
|
||||||
<<"cacertfile">> => <<>>,
|
<<"cacertfile">> => <<>>,
|
||||||
<<"certfile">> => <<>>,
|
<<"certfile">> => <<>>,
|
||||||
<<"keyfile">> => <<>>,
|
<<"keyfile">> => <<>>,
|
||||||
<<"verify">> => true,
|
<<"verify">> => true},
|
||||||
<<"url">> => URL},
|
maps:merge(Cfg, Config).
|
||||||
NResource = Resource#{<<"config">> := NConfig},
|
|
||||||
{ok, _Resource} = import_resource(NResource),
|
|
||||||
NHeaders = maps:put(<<"content-type">>, ContentType, Headers),
|
|
||||||
[{ID, #{headers => NHeaders, method => Method}} | Acc];
|
|
||||||
(Resource, Acc) ->
|
|
||||||
{ok, _Resource} = import_resource(Resource),
|
|
||||||
Acc
|
|
||||||
end, [], Resources),
|
|
||||||
lists:foreach(fun(#{<<"actions">> := Actions} = Rule) ->
|
|
||||||
NActions = apply_new_config(Actions, Configs),
|
|
||||||
import_rule(Rule#{<<"actions">> := NActions})
|
|
||||||
end, Rules);
|
|
||||||
|
|
||||||
import_resources_and_rules(Resources, Rules, _FromVersion) ->
|
|
||||||
import_resources(Resources),
|
|
||||||
import_rules(Rules).
|
|
||||||
|
|
||||||
apply_new_config(Actions, Configs) ->
|
apply_new_config(Actions, Configs) ->
|
||||||
apply_new_config(Actions, Configs, []).
|
apply_new_config(Actions, Configs, []).
|
||||||
|
|
Loading…
Reference in New Issue