BUG/MINOR: server: allow 'enable health' only if check configured

Test that checks have been configured on the server before enabling via
the 'enable health' CLI. This mirrors the 'enable agent' command.

Without this, a user can use the command on the server without checks.
This leaves the server in an undefined state. Notably, the stat page
reports the server in check transition.

This condition was left on the following reorg commit.
  2c04eda8b5
  REORG: cli: move "{enable|disable} health" to server.c

This should be backported up to 1.8.
This commit is contained in:
Amaury Denoyelle 2021-09-21 10:29:09 +02:00
parent 4f065262e9
commit 0f456d5029

View File

@ -4371,6 +4371,9 @@ static int cli_parse_enable_health(char **args, char *payload, struct appctx *ap
if (!sv)
return 1;
if (!(sv->check.state & CHK_ST_CONFIGURED))
return cli_err(appctx, "Health check was not configured on this server, cannot enable.\n");
HA_SPIN_LOCK(SERVER_LOCK, &sv->lock);
sv->check.state |= CHK_ST_ENABLED;
HA_SPIN_UNLOCK(SERVER_LOCK, &sv->lock);