BUG/MINOR: mworker-prog: don't warn about deprecated section with expose-deprecated-directives

As master parses now expose-deprecated-directives option, let's emit warning
about deprecated 'progam' section only in case, if this option wasn't set in
the 'global' section. This allows to people, who don't prefer to remove the
'program' section immediately to continue to start the process in zero-warning
mode.

Adjust the warning message accordingly and mcli_start_progs.vtc test. As
expose-deprecated-directives option is a 'global' section keyword, this section
must always precede any 'program' section, if users still continue to keep
'program' section.

This doesn't need to be backported, as related to the latest changes in
the master-worker architecture.
This commit is contained in:
Valentine Krasnobaeva 2024-11-19 10:32:28 +01:00 committed by William Lallemand
parent 39ea0df38f
commit b9536717cd
2 changed files with 11 additions and 3 deletions

View File

@ -9,6 +9,8 @@ server s1 {
} -start
haproxy h1 -W -S -conf {
global
expose-deprecated-directives
defaults
mode http
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"

View File

@ -194,9 +194,15 @@ int cfg_parse_program(const char *file, int linenum, char **args, int kwm)
goto error;
}
ha_warning("parsing [%s:%d]: The '%s' section is deprecated and will eventually be removed, please consider "
"using a process manager instead, such as sysvinit, systemd, supervisord or s6\n",
file, linenum, args[0]);
if (!deprecated_directives_allowed) {
ha_warning("parsing [%s:%d]: The 'program' section is deprecated and will be eventually removed, "
"it can be still allowed by setting 'expose-deprecated-directives' keyword in the 'global' "
"section defined before any 'program' section. Please, consider to use a process manager instead "
"of 'program' section, such as sysvinit, systemd, supervisord or s6.\n",
file, linenum);
err_code |= ERR_ALERT | ERR_ABORT;
goto error;
}
LIST_APPEND(&proc_list, &ext_child->list);