chore: auto retry disconnected authn/authz resources

This commit is contained in:
JianBo He 2022-07-01 12:01:39 +08:00
parent b134c3562a
commit f8c90452cc
2 changed files with 24 additions and 13 deletions

View File

@ -45,9 +45,14 @@
?PH_CERT_CN_NAME ?PH_CERT_CN_NAME
]). ]).
%%------------------------------------------------------------------------------ -define(DEFAULT_RESOURCE_OPTS, #{
auto_retry_interval => 6000,
start_after_created => false
}).
%%--------------------------------------------------------------------
%% APIs %% APIs
%%------------------------------------------------------------------------------ %%--------------------------------------------------------------------
create_resource(ResourceId, Module, Config) -> create_resource(ResourceId, Module, Config) ->
Result = emqx_resource:create_local( Result = emqx_resource:create_local(
@ -55,13 +60,14 @@ create_resource(ResourceId, Module, Config) ->
?RESOURCE_GROUP, ?RESOURCE_GROUP,
Module, Module,
Config, Config,
#{start_after_created => false} ?DEFAULT_RESOURCE_OPTS
), ),
start_resource_if_enabled(Result, ResourceId, Config). start_resource_if_enabled(Result, ResourceId, Config).
update_resource(Module, Config, ResourceId) -> update_resource(Module, Config, ResourceId) ->
Opts = #{start_after_created => false}, Result = emqx_resource:recreate_local(
Result = emqx_resource:recreate_local(ResourceId, Module, Config, Opts), ResourceId, Module, Config, ?DEFAULT_RESOURCE_OPTS
),
start_resource_if_enabled(Result, ResourceId, Config). start_resource_if_enabled(Result, ResourceId, Config).
start_resource_if_enabled({ok, _} = Result, ResourceId, #{enable := true}) -> start_resource_if_enabled({ok, _} = Result, ResourceId, #{enable := true}) ->
@ -166,9 +172,9 @@ make_resource_id(Name) ->
NameBin = bin(Name), NameBin = bin(Name),
emqx_resource:generate_id(NameBin). emqx_resource:generate_id(NameBin).
%%------------------------------------------------------------------------------ %%--------------------------------------------------------------------
%% Internal functions %% Internal functions
%%------------------------------------------------------------------------------ %%--------------------------------------------------------------------
handle_var({var, Name}, undefined) -> handle_var({var, Name}, undefined) ->
error({cannot_get_variable, Name}); error({cannot_get_variable, Name});

View File

@ -34,9 +34,14 @@
render_sql_params/2 render_sql_params/2
]). ]).
%%------------------------------------------------------------------------------ -define(DEFAULT_RESOURCE_OPTS, #{
auto_retry_interval => 6000,
start_after_created => false
}).
%%--------------------------------------------------------------------
%% APIs %% APIs
%%------------------------------------------------------------------------------ %%--------------------------------------------------------------------
create_resource(Module, Config) -> create_resource(Module, Config) ->
ResourceId = make_resource_id(Module), ResourceId = make_resource_id(Module),
@ -48,7 +53,7 @@ create_resource(ResourceId, Module, Config) ->
?RESOURCE_GROUP, ?RESOURCE_GROUP,
Module, Module,
Config, Config,
#{start_after_created => false} ?DEFAULT_RESOURCE_OPTS
), ),
start_resource_if_enabled(Result, ResourceId, Config). start_resource_if_enabled(Result, ResourceId, Config).
@ -59,7 +64,7 @@ update_resource(Module, #{annotations := #{id := ResourceId}} = Config) ->
ResourceId, ResourceId,
Module, Module,
Config, Config,
#{start_after_created => false} ?DEFAULT_RESOURCE_OPTS
) )
of of
{ok, _} -> {ok, ResourceId}; {ok, _} -> {ok, ResourceId};
@ -125,9 +130,9 @@ render_sql_params(ParamList, Values) ->
#{return => rawlist, var_trans => fun handle_sql_var/2} #{return => rawlist, var_trans => fun handle_sql_var/2}
). ).
%%------------------------------------------------------------------------------ %%--------------------------------------------------------------------
%% Internal functions %% Internal functions
%%------------------------------------------------------------------------------ %%--------------------------------------------------------------------
client_vars(ClientInfo) -> client_vars(ClientInfo) ->
maps:from_list( maps:from_list(