diff --git a/src/cli.c b/src/cli.c index 09e252051..50f47ae91 100644 --- a/src/cli.c +++ b/src/cli.c @@ -691,16 +691,6 @@ static int stats_sock_parse_request(struct stream_interface *si, char *line) sv->check.state |= CHK_ST_ENABLED; return 1; } - else if (strcmp(args[1], "server") == 0) { - struct server *sv; - - sv = expect_server_admin(s, si, args[2]); - if (!sv) - return 1; - - srv_adm_set_ready(sv); - return 1; - } else { /* unknown "enable" parameter */ appctx->ctx.cli.msg = "'enable' only supports 'agent', 'frontend', 'health', and 'server'.\n"; appctx->st0 = STAT_CLI_PRINT; @@ -728,16 +718,6 @@ static int stats_sock_parse_request(struct stream_interface *si, char *line) sv->check.state &= ~CHK_ST_ENABLED; return 1; } - else if (strcmp(args[1], "server") == 0) { - struct server *sv; - - sv = expect_server_admin(s, si, args[2]); - if (!sv) - return 1; - - srv_adm_set_maint(sv); - return 1; - } else { /* unknown "disable" parameter */ appctx->ctx.cli.msg = "'disable' only supports 'agent', 'frontend', 'health', and 'server'.\n"; appctx->st0 = STAT_CLI_PRINT; diff --git a/src/server.c b/src/server.c index 53db7e413..81f345ce5 100644 --- a/src/server.c +++ b/src/server.c @@ -3583,8 +3583,42 @@ static int cli_parse_set_maxconn_server(char **args, struct appctx *appctx, void return 1; } +/* parse a "disable server" command. It always returns 1. */ +static int cli_parse_disable_server(char **args, struct appctx *appctx, void *private) +{ + struct server *sv; + + if (!cli_has_level(appctx, ACCESS_LVL_ADMIN)) + return 1; + + sv = cli_find_server(appctx, args[2]); + if (!sv) + return 1; + + srv_adm_set_maint(sv); + return 1; +} + +/* parse a "enable server" command. It always returns 1. */ +static int cli_parse_enable_server(char **args, struct appctx *appctx, void *private) +{ + struct server *sv; + + if (!cli_has_level(appctx, ACCESS_LVL_ADMIN)) + return 1; + + sv = cli_find_server(appctx, args[2]); + if (!sv) + return 1; + + srv_adm_set_ready(sv); + return 1; +} + /* register cli keywords */ static struct cli_kw_list cli_kws = {{ },{ + { { "disable", "server", NULL }, "disable server : disable a server for maintenance (use 'set server' instead)", cli_parse_disable_server, NULL }, + { { "enable", "server", NULL }, "enable server : enable a disabled server (use 'set server' instead)", cli_parse_enable_server, NULL }, { { "set", "maxconn", "server", NULL }, "set maxconn server : change a server's maxconn setting", cli_parse_set_maxconn_server, NULL }, { { "set", "server", NULL }, "set server : change a server's state, weight or address", cli_parse_set_server }, { { "get", "weight", NULL }, "get weight : report a server's current weight", cli_parse_get_weight },