fix: the file cluster-override.conf is emptied if hocon_pp:do/2 failed
This commit is contained in:
parent
3674ab2e6e
commit
71f642518a
|
@ -511,11 +511,13 @@ get_root_names() ->
|
||||||
-spec save_configs(app_envs(), config(), raw_config(), raw_config(), update_opts()) ->
|
-spec save_configs(app_envs(), config(), raw_config(), raw_config(), update_opts()) ->
|
||||||
ok | {error, term()}.
|
ok | {error, term()}.
|
||||||
save_configs(_AppEnvs, Conf, RawConf, OverrideConf, Opts) ->
|
save_configs(_AppEnvs, Conf, RawConf, OverrideConf, Opts) ->
|
||||||
|
%% We first try to save to override.conf, because saving to files is more error prone
|
||||||
|
%% than saving into memory.
|
||||||
|
save_to_override_conf(OverrideConf, Opts),
|
||||||
%% We may need also support hot config update for the apps that use application envs.
|
%% We may need also support hot config update for the apps that use application envs.
|
||||||
%% If that is the case uncomment the following line to update the configs to app env
|
%% If that is the case uncomment the following line to update the configs to app env
|
||||||
%save_to_app_env(AppEnvs),
|
%save_to_app_env(_AppEnvs),
|
||||||
save_to_config_map(Conf, RawConf),
|
save_to_config_map(Conf, RawConf).
|
||||||
save_to_override_conf(OverrideConf, Opts).
|
|
||||||
|
|
||||||
-spec save_to_app_env([tuple()]) -> ok.
|
-spec save_to_app_env([tuple()]) -> ok.
|
||||||
save_to_app_env(AppEnvs) ->
|
save_to_app_env(AppEnvs) ->
|
||||||
|
|
|
@ -452,8 +452,9 @@ merge_to_old_config(UpdateReq, _RawConf) ->
|
||||||
%% local-override.conf priority is higher than cluster-override.conf
|
%% local-override.conf priority is higher than cluster-override.conf
|
||||||
%% If we want cluster to take effect, we must remove the local.
|
%% If we want cluster to take effect, we must remove the local.
|
||||||
remove_from_local_if_cluster_change(BinKeyPath, #{override_to := cluster} = Opts) ->
|
remove_from_local_if_cluster_change(BinKeyPath, #{override_to := cluster} = Opts) ->
|
||||||
Local = remove_from_override_config(BinKeyPath, Opts#{override_to => local}),
|
Opts1 = Opts#{override_to => local},
|
||||||
_ = emqx_config:save_to_override_conf(Local, Opts),
|
Local = remove_from_override_config(BinKeyPath, Opts1),
|
||||||
|
_ = emqx_config:save_to_override_conf(Local, Opts1),
|
||||||
ok;
|
ok;
|
||||||
remove_from_local_if_cluster_change(_BinKeyPath, _Opts) ->
|
remove_from_local_if_cluster_change(_BinKeyPath, _Opts) ->
|
||||||
ok.
|
ok.
|
||||||
|
|
Loading…
Reference in New Issue