mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-25 07:41:36 +02:00
MINOR: stats: use the admin flags for soft enable/disable/stop/start on the web page
Instead of changing the weight to zero or enforcing maintenance mode, we now make use of the new MAINT/DRAIN flags which are correctly propagated.
This commit is contained in:
parent
bfc7b7acd8
commit
fae3a7eacd
@ -4241,30 +4241,32 @@ static int stats_process_http_post(struct stream_interface *si)
|
|||||||
else if ((sv = findserver(px, value)) != NULL) {
|
else if ((sv = findserver(px, value)) != NULL) {
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case ST_ADM_ACTION_DISABLE:
|
case ST_ADM_ACTION_DISABLE:
|
||||||
if ((px->state != PR_STSTOPPED) && !(sv->admin & SRV_ADMF_FMAINT)) {
|
if (!(sv->admin & SRV_ADMF_FMAINT)) {
|
||||||
altered_servers++;
|
altered_servers++;
|
||||||
total_servers++;
|
total_servers++;
|
||||||
srv_adm_set_maint(sv);
|
srv_set_admin_flag(sv, SRV_ADMF_FMAINT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_ADM_ACTION_ENABLE:
|
case ST_ADM_ACTION_ENABLE:
|
||||||
if ((px->state != PR_STSTOPPED) && (sv->admin & SRV_ADMF_FMAINT)) {
|
if (sv->admin & SRV_ADMF_FMAINT) {
|
||||||
altered_servers++;
|
altered_servers++;
|
||||||
total_servers++;
|
total_servers++;
|
||||||
srv_adm_set_ready(sv);
|
srv_clr_admin_flag(sv, SRV_ADMF_FMAINT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_ADM_ACTION_STOP:
|
case ST_ADM_ACTION_STOP:
|
||||||
|
if (!(sv->admin & SRV_ADMF_FDRAIN)) {
|
||||||
|
srv_set_admin_flag(sv, SRV_ADMF_FDRAIN);
|
||||||
|
altered_servers++;
|
||||||
|
total_servers++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case ST_ADM_ACTION_START:
|
case ST_ADM_ACTION_START:
|
||||||
if (action == ST_ADM_ACTION_START)
|
if (sv->admin & SRV_ADMF_FDRAIN) {
|
||||||
sv->uweight = sv->iweight;
|
srv_clr_admin_flag(sv, SRV_ADMF_FDRAIN);
|
||||||
else
|
altered_servers++;
|
||||||
sv->uweight = 0;
|
total_servers++;
|
||||||
|
}
|
||||||
server_recalc_eweight(sv);
|
|
||||||
|
|
||||||
altered_servers++;
|
|
||||||
total_servers++;
|
|
||||||
break;
|
break;
|
||||||
case ST_ADM_ACTION_SHUTDOWN:
|
case ST_ADM_ACTION_SHUTDOWN:
|
||||||
if (px->state != PR_STSTOPPED) {
|
if (px->state != PR_STSTOPPED) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user