refactor(resource): rename the emqx_resource:update/4 to recreate/4
This commit is contained in:
parent
75f528e08d
commit
304c5613ac
|
@ -392,7 +392,7 @@ gen_id(Type) ->
|
||||||
|
|
||||||
create_resource(#{type := DB,
|
create_resource(#{type := DB,
|
||||||
annotations := #{id := ResourceID}} = Source) ->
|
annotations := #{id := ResourceID}} = Source) ->
|
||||||
case emqx_resource:update(ResourceID, connector_module(DB), Source, []) of
|
case emqx_resource:recreate(ResourceID, connector_module(DB), Source, []) of
|
||||||
{ok, _} -> ResourceID;
|
{ok, _} -> ResourceID;
|
||||||
{error, Reason} -> {error, Reason}
|
{error, Reason} -> {error, Reason}
|
||||||
end;
|
end;
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
-export([ check_config/2
|
-export([ check_config/2
|
||||||
, check_and_create/3
|
, check_and_create/3
|
||||||
, check_and_create_local/3
|
, check_and_create_local/3
|
||||||
, check_and_update/4
|
, check_and_recreate/4
|
||||||
, check_and_update_local/4
|
, check_and_recreate_local/4
|
||||||
, resource_type_from_str/1
|
, resource_type_from_str/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
@ -50,10 +50,10 @@
|
||||||
%% todo: replicate operations
|
%% todo: replicate operations
|
||||||
-export([ create/3 %% store the config and start the instance
|
-export([ create/3 %% store the config and start the instance
|
||||||
, create_local/3
|
, create_local/3
|
||||||
, create_dry_run/3 %% run start/2, health_check/2 and stop/1 sequentially
|
, create_dry_run/2 %% run start/2, health_check/2 and stop/1 sequentially
|
||||||
, create_dry_run_local/3
|
, create_dry_run_local/2
|
||||||
, update/4 %% update the config, stop the old instance and start the new one
|
, recreate/4 %% this will do create_dry_run, stop the old instance and start a new one
|
||||||
, update_local/4
|
, recreate_local/4
|
||||||
, remove/1 %% remove the config and stop the instance
|
, remove/1 %% remove the config and stop the instance
|
||||||
, remove_local/1
|
, remove_local/1
|
||||||
]).
|
]).
|
||||||
|
@ -164,25 +164,26 @@ create(InstId, ResourceType, Config) ->
|
||||||
create_local(InstId, ResourceType, Config) ->
|
create_local(InstId, ResourceType, Config) ->
|
||||||
call_instance(InstId, {create, InstId, ResourceType, Config}).
|
call_instance(InstId, {create, InstId, ResourceType, Config}).
|
||||||
|
|
||||||
-spec create_dry_run(instance_id(), resource_type(), resource_config()) ->
|
-spec create_dry_run(resource_type(), resource_config()) ->
|
||||||
ok | {error, Reason :: term()}.
|
ok | {error, Reason :: term()}.
|
||||||
create_dry_run(InstId, ResourceType, Config) ->
|
create_dry_run(ResourceType, Config) ->
|
||||||
cluster_call(create_dry_run_local, [InstId, ResourceType, Config]).
|
cluster_call(create_dry_run_local, [ResourceType, Config]).
|
||||||
|
|
||||||
-spec create_dry_run_local(instance_id(), resource_type(), resource_config()) ->
|
-spec create_dry_run_local(resource_type(), resource_config()) ->
|
||||||
ok | {error, Reason :: term()}.
|
ok | {error, Reason :: term()}.
|
||||||
create_dry_run_local(InstId, ResourceType, Config) ->
|
create_dry_run_local(ResourceType, Config) ->
|
||||||
|
InstId = emqx_plugin_libs_id:gen(16),
|
||||||
call_instance(InstId, {create_dry_run, InstId, ResourceType, Config}).
|
call_instance(InstId, {create_dry_run, InstId, ResourceType, Config}).
|
||||||
|
|
||||||
-spec update(instance_id(), resource_type(), resource_config(), term()) ->
|
-spec recreate(instance_id(), resource_type(), resource_config(), term()) ->
|
||||||
{ok, resource_data()} | {error, Reason :: term()}.
|
{ok, resource_data()} | {error, Reason :: term()}.
|
||||||
update(InstId, ResourceType, Config, Params) ->
|
recreate(InstId, ResourceType, Config, Params) ->
|
||||||
cluster_call(update_local, [InstId, ResourceType, Config, Params]).
|
cluster_call(recreate_local, [InstId, ResourceType, Config, Params]).
|
||||||
|
|
||||||
-spec update_local(instance_id(), resource_type(), resource_config(), term()) ->
|
-spec recreate_local(instance_id(), resource_type(), resource_config(), term()) ->
|
||||||
{ok, resource_data()} | {error, Reason :: term()}.
|
{ok, resource_data()} | {error, Reason :: term()}.
|
||||||
update_local(InstId, ResourceType, Config, Params) ->
|
recreate_local(InstId, ResourceType, Config, Params) ->
|
||||||
call_instance(InstId, {update, InstId, ResourceType, Config, Params}).
|
call_instance(InstId, {recreate, InstId, ResourceType, Config, Params}).
|
||||||
|
|
||||||
-spec remove(instance_id()) -> ok | {error, Reason :: term()}.
|
-spec remove(instance_id()) -> ok | {error, Reason :: term()}.
|
||||||
remove(InstId) ->
|
remove(InstId) ->
|
||||||
|
@ -296,17 +297,17 @@ check_and_create_local(InstId, ResourceType, RawConfig) ->
|
||||||
check_and_do(ResourceType, RawConfig,
|
check_and_do(ResourceType, RawConfig,
|
||||||
fun(InstConf) -> create_local(InstId, ResourceType, InstConf) end).
|
fun(InstConf) -> create_local(InstId, ResourceType, InstConf) end).
|
||||||
|
|
||||||
-spec check_and_update(instance_id(), resource_type(), raw_resource_config(), term()) ->
|
-spec check_and_recreate(instance_id(), resource_type(), raw_resource_config(), term()) ->
|
||||||
{ok, resource_data()} | {error, term()}.
|
{ok, resource_data()} | {error, term()}.
|
||||||
check_and_update(InstId, ResourceType, RawConfig, Params) ->
|
check_and_recreate(InstId, ResourceType, RawConfig, Params) ->
|
||||||
check_and_do(ResourceType, RawConfig,
|
check_and_do(ResourceType, RawConfig,
|
||||||
fun(InstConf) -> update(InstId, ResourceType, InstConf, Params) end).
|
fun(InstConf) -> recreate(InstId, ResourceType, InstConf, Params) end).
|
||||||
|
|
||||||
-spec check_and_update_local(instance_id(), resource_type(), raw_resource_config(), term()) ->
|
-spec check_and_recreate_local(instance_id(), resource_type(), raw_resource_config(), term()) ->
|
||||||
{ok, resource_data()} | {error, term()}.
|
{ok, resource_data()} | {error, term()}.
|
||||||
check_and_update_local(InstId, ResourceType, RawConfig, Params) ->
|
check_and_recreate_local(InstId, ResourceType, RawConfig, Params) ->
|
||||||
check_and_do(ResourceType, RawConfig,
|
check_and_do(ResourceType, RawConfig,
|
||||||
fun(InstConf) -> update_local(InstId, ResourceType, InstConf, Params) end).
|
fun(InstConf) -> recreate_local(InstId, ResourceType, InstConf, Params) end).
|
||||||
|
|
||||||
check_and_do(ResourceType, RawConfig, Do) when is_function(Do) ->
|
check_and_do(ResourceType, RawConfig, Do) when is_function(Do) ->
|
||||||
case check_config(ResourceType, RawConfig) of
|
case check_config(ResourceType, RawConfig) of
|
||||||
|
|
|
@ -107,8 +107,8 @@ handle_call({create, InstId, ResourceType, Config}, _From, State) ->
|
||||||
handle_call({create_dry_run, InstId, ResourceType, Config}, _From, State) ->
|
handle_call({create_dry_run, InstId, ResourceType, Config}, _From, State) ->
|
||||||
{reply, do_create_dry_run(InstId, ResourceType, Config), State};
|
{reply, do_create_dry_run(InstId, ResourceType, Config), State};
|
||||||
|
|
||||||
handle_call({update, InstId, ResourceType, Config, Params}, _From, State) ->
|
handle_call({recreate, InstId, ResourceType, Config, Params}, _From, State) ->
|
||||||
{reply, do_update(InstId, ResourceType, Config, Params), State};
|
{reply, do_recreate(InstId, ResourceType, Config, Params), State};
|
||||||
|
|
||||||
handle_call({remove, InstId}, _From, State) ->
|
handle_call({remove, InstId}, _From, State) ->
|
||||||
{reply, do_remove(InstId), State};
|
{reply, do_remove(InstId), State};
|
||||||
|
@ -141,8 +141,8 @@ code_change(_OldVsn, State, _Extra) ->
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
|
||||||
%% suppress the race condition check, as these functions are protected in gproc workers
|
%% suppress the race condition check, as these functions are protected in gproc workers
|
||||||
-dialyzer({nowarn_function, [do_update/4, do_create/3, do_restart/1, do_stop/1, do_health_check/1]}).
|
-dialyzer({nowarn_function, [do_recreate/4, do_create/3, do_restart/1, do_stop/1, do_health_check/1]}).
|
||||||
do_update(InstId, ResourceType, NewConfig, Params) ->
|
do_recreate(InstId, ResourceType, NewConfig, Params) ->
|
||||||
case lookup(InstId) of
|
case lookup(InstId) of
|
||||||
{ok, #{mod := ResourceType, state := ResourceState, config := OldConfig}} ->
|
{ok, #{mod := ResourceType, state := ResourceState, config := OldConfig}} ->
|
||||||
Config = emqx_resource:call_config_merge(ResourceType, OldConfig,
|
Config = emqx_resource:call_config_merge(ResourceType, OldConfig,
|
||||||
|
|
Loading…
Reference in New Issue