Merge pull request #9777 from zmstone/0116-refactor-config_files-is-readonly
refactor: config_files is a readonly config
This commit is contained in:
commit
9f80eb2497
|
@ -128,6 +128,7 @@ all() ->
|
|||
|
||||
init_per_suite(Config) ->
|
||||
application:set_env(ekka, strict_mode, true),
|
||||
emqx_common_test_helpers:boot_modules(all),
|
||||
emqx_common_test_helpers:start_apps([]),
|
||||
Config.
|
||||
|
||||
|
|
|
@ -24,19 +24,23 @@
|
|||
all() -> emqx_common_test_helpers:all(?MODULE).
|
||||
|
||||
t_is_enabled(_) ->
|
||||
ok = application:set_env(emqx, boot_modules, all),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assert(emqx_boot:is_enabled(broker)),
|
||||
?assert(emqx_boot:is_enabled(listeners)),
|
||||
ok = application:set_env(emqx, boot_modules, [router]),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assertNot(emqx_boot:is_enabled(broker)),
|
||||
?assertNot(emqx_boot:is_enabled(listeners)),
|
||||
ok = application:set_env(emqx, boot_modules, [router, broker]),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assert(emqx_boot:is_enabled(broker)),
|
||||
?assertNot(emqx_boot:is_enabled(listeners)),
|
||||
ok = application:set_env(emqx, boot_modules, [router, broker, listeners]),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assert(emqx_boot:is_enabled(broker)),
|
||||
?assert(emqx_boot:is_enabled(listeners)).
|
||||
try
|
||||
ok = application:set_env(emqx, boot_modules, all),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assert(emqx_boot:is_enabled(broker)),
|
||||
?assert(emqx_boot:is_enabled(listeners)),
|
||||
ok = application:set_env(emqx, boot_modules, [router]),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assertNot(emqx_boot:is_enabled(broker)),
|
||||
?assertNot(emqx_boot:is_enabled(listeners)),
|
||||
ok = application:set_env(emqx, boot_modules, [router, broker]),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assert(emqx_boot:is_enabled(broker)),
|
||||
?assertNot(emqx_boot:is_enabled(listeners)),
|
||||
ok = application:set_env(emqx, boot_modules, [router, broker, listeners]),
|
||||
?assert(emqx_boot:is_enabled(router)),
|
||||
?assert(emqx_boot:is_enabled(broker)),
|
||||
?assert(emqx_boot:is_enabled(listeners))
|
||||
after
|
||||
application:set_env(emqx, boot_modules, all)
|
||||
end.
|
||||
|
|
|
@ -456,19 +456,6 @@ the old dir should be deleted first.<br/>
|
|||
}
|
||||
}
|
||||
|
||||
node_config_files {
|
||||
desc {
|
||||
en: """List of configuration files that are read during startup. The order is
|
||||
significant: later configuration files override the previous ones.
|
||||
"""
|
||||
zh: """启动时读取的配置文件列表。后面的配置文件项覆盖前面的文件。"""
|
||||
}
|
||||
label {
|
||||
en: "Config Files"
|
||||
zh: "配置文件"
|
||||
}
|
||||
}
|
||||
|
||||
node_global_gc_interval {
|
||||
desc {
|
||||
en: """Periodic garbage collection interval. Set to <code>disabled</code> to have it disabled."""
|
||||
|
|
|
@ -466,9 +466,9 @@ fields("node") ->
|
|||
hoconsc:array(string()),
|
||||
#{
|
||||
mapping => "emqx.config_files",
|
||||
default => undefined,
|
||||
'readOnly' => true,
|
||||
desc => ?DESC(node_config_files)
|
||||
hidden => true,
|
||||
required => false,
|
||||
'readOnly' => true
|
||||
}
|
||||
)},
|
||||
{"global_gc_interval",
|
||||
|
@ -1037,17 +1037,13 @@ metrics_enabled(disabled) -> [].
|
|||
tr_default_config_driver(Conf) ->
|
||||
conf_get("rpc.driver", Conf).
|
||||
|
||||
tr_config_files(Conf) ->
|
||||
case conf_get("emqx.config_files", Conf) of
|
||||
[_ | _] = Files ->
|
||||
Files;
|
||||
_ ->
|
||||
case os:getenv("EMQX_ETC_DIR") of
|
||||
false ->
|
||||
[filename:join([code:lib_dir(emqx), "etc", "emqx.conf"])];
|
||||
Dir ->
|
||||
[filename:join([Dir, "emqx.conf"])]
|
||||
end
|
||||
tr_config_files(_Conf) ->
|
||||
case os:getenv("EMQX_ETC_DIR") of
|
||||
false ->
|
||||
%% testing, or running emqx app as deps
|
||||
[filename:join([code:lib_dir(emqx), "etc", "emqx.conf"])];
|
||||
Dir ->
|
||||
[filename:join([Dir, "emqx.conf"])]
|
||||
end.
|
||||
|
||||
tr_cluster_override_conf_file(Conf) ->
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
Reload overriding configs after boot.
|
||||
Prior to this change, two configs were allow to change from dashboard, but will not take effect after reboot:
|
||||
* Logging (such as level)
|
||||
* Prometheus configs
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
启动后重新加载一些重载配置项。
|
||||
在此修复前,下面两个配置项允许从 Dashboard 控制台修改,但是在重启后无法生效:
|
||||
* 日志 (例如日志级别)
|
||||
* Prometheus 配置
|
Loading…
Reference in New Issue