fix: disabled resources for authz/authn started after emqx reboot
This commit is contained in:
parent
522d1773c9
commit
defacb97df
|
@ -50,22 +50,24 @@
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
|
||||||
create_resource(ResourceId, Module, Config) ->
|
create_resource(ResourceId, Module, Config) ->
|
||||||
{ok, _Data} = emqx_resource:create_local(
|
Result = emqx_resource:create_local(
|
||||||
ResourceId,
|
ResourceId,
|
||||||
?RESOURCE_GROUP,
|
?RESOURCE_GROUP,
|
||||||
Module,
|
Module,
|
||||||
Config,
|
Config,
|
||||||
#{}
|
#{start_after_created => false}
|
||||||
).
|
),
|
||||||
|
start_resource_if_enabled(Result, ResourceId, Config).
|
||||||
|
|
||||||
update_resource(Module, Config, ResourceId) ->
|
update_resource(Module, Config, ResourceId) ->
|
||||||
Opts = #{start_after_created => false},
|
Opts = #{start_after_created => false},
|
||||||
Result = emqx_resource:recreate_local(ResourceId, Module, Config, Opts),
|
Result = emqx_resource:recreate_local(ResourceId, Module, Config, Opts),
|
||||||
_ =
|
start_resource_if_enabled(Result, ResourceId, Config).
|
||||||
case Config of
|
|
||||||
#{enable := true} -> emqx_resource:start(ResourceId);
|
start_resource_if_enabled({ok, _} = Result, ResourceId, #{enable := true}) ->
|
||||||
#{enable := false} -> ok
|
_ = emqx_resource:start(ResourceId),
|
||||||
end,
|
Result;
|
||||||
|
start_resource_if_enabled(Result, _ResourceId, _Config) ->
|
||||||
Result.
|
Result.
|
||||||
|
|
||||||
check_password_from_selected_map(_Algorithm, _Selected, undefined) ->
|
check_password_from_selected_map(_Algorithm, _Selected, undefined) ->
|
||||||
|
|
|
@ -43,33 +43,35 @@ create_resource(Module, Config) ->
|
||||||
create_resource(ResourceId, Module, Config).
|
create_resource(ResourceId, Module, Config).
|
||||||
|
|
||||||
create_resource(ResourceId, Module, Config) ->
|
create_resource(ResourceId, Module, Config) ->
|
||||||
{ok, _Data} = emqx_resource:create_local(
|
Result = emqx_resource:create_local(
|
||||||
ResourceId,
|
ResourceId,
|
||||||
?RESOURCE_GROUP,
|
?RESOURCE_GROUP,
|
||||||
Module,
|
Module,
|
||||||
Config,
|
Config,
|
||||||
#{}
|
#{start_after_created => false}
|
||||||
).
|
),
|
||||||
|
start_resource_if_enabled(Result, ResourceId, Config).
|
||||||
|
|
||||||
update_resource(Module, #{annotations := #{id := ResourceId}} = Source) ->
|
update_resource(Module, #{annotations := #{id := ResourceId}} = Config) ->
|
||||||
Result =
|
Result =
|
||||||
case
|
case
|
||||||
emqx_resource:recreate_local(
|
emqx_resource:recreate_local(
|
||||||
ResourceId,
|
ResourceId,
|
||||||
Module,
|
Module,
|
||||||
Source
|
Config,
|
||||||
|
#{start_after_created => false}
|
||||||
)
|
)
|
||||||
of
|
of
|
||||||
{ok, _} -> {ok, ResourceId};
|
{ok, _} -> {ok, ResourceId};
|
||||||
{error, Reason} -> {error, Reason}
|
{error, Reason} -> {error, Reason}
|
||||||
end,
|
end,
|
||||||
case Source of
|
start_resource_if_enabled(Result, ResourceId, Config).
|
||||||
#{enable := true} ->
|
|
||||||
|
start_resource_if_enabled({ok, _} = Result, ResourceId, #{enable := true}) ->
|
||||||
|
_ = emqx_resource:start(ResourceId),
|
||||||
Result;
|
Result;
|
||||||
#{enable := false} ->
|
start_resource_if_enabled(Result, _ResourceId, _Config) ->
|
||||||
ok = emqx_resource:stop(ResourceId),
|
Result.
|
||||||
Result
|
|
||||||
end.
|
|
||||||
|
|
||||||
cleanup_resources() ->
|
cleanup_resources() ->
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
|
|
Loading…
Reference in New Issue