Hi again,
Le Mardi 2 Février 2010 21:07:04, Cyril Bonté a écrit :
> OK, you'll find a small update (smaller than I firstly thought) in attachment.
please forget the previous one and find this new one that correctly hide all
DOWN and MAINT servers.
Thanks ;)
--
Cyril Bonté
diff -Naur haproxy-ss-20100201/src/dumpstats.c haproxy-ss-20100201-maintain/src/dumpstats.c
--- haproxy-ss-20100201/src/dumpstats.c 2010-01-31 23:33:18.000000000 +0100
+++ haproxy-ss-20100201-maintain/src/dumpstats.c 2010-02-02 22:50:31.000000000 +0100
@@ -1697,7 +1697,7 @@
else
sv_state = 0; /* DOWN */
- if ((sv_state == 0) && (s->data_ctx.stats.flags & STAT_HIDE_DOWN)) {
+ if (((sv_state == 0) || (sv->state & SRV_MAINTAIN)) && (s->data_ctx.stats.flags & STAT_HIDE_DOWN)) {
/* do not report servers which are DOWN */
s->data_ctx.stats.sv = sv->next;
continue;
@@ -1708,7 +1708,7 @@
"UP %d/%d ↓", "UP",
"NOLB %d/%d ↓", "NOLB",
"<i>no check</i>" };
- if (sv->state & SRV_MAINTAIN) {
+ if ((sv->state & SRV_MAINTAIN) || (svs->state & SRV_MAINTAIN)) {
chunk_printf(&msg,
/* name */
"<tr class=\"maintain\"><td class=ac"
@@ -1808,12 +1808,15 @@
}
else if (svs->state & SRV_CHECKED) {
chunk_printf(&msg, "%s ",
- human_time(now.tv_sec - sv->last_change, 1));
+ human_time(now.tv_sec - svs->last_change, 1));
chunk_printf(&msg,
srv_hlt_st[sv_state],
(svs->state & SRV_RUNNING) ? (svs->health - svs->rise + 1) : (svs->health),
(svs->state & SRV_RUNNING) ? (svs->fall) : (svs->rise));
+ if (svs != sv && svs->state & SRV_MAINTAIN) {
+ chunk_printf(&msg, "/MAINT");
+ }
}
if (sv->state & SRV_CHECKED) {
@@ -1885,10 +1888,10 @@
"<td class=ac>-</td></tr>\n");
}
} else {
- static char *srv_hlt_st[7] = { "DOWN,", "DOWN %d/%d,",
- "UP %d/%d,", "UP,",
- "NOLB %d/%d,", "NOLB,",
- "no check," };
+ static char *srv_hlt_st[7] = { "DOWN", "DOWN %d/%d",
+ "UP %d/%d", "UP",
+ "NOLB %d/%d", "NOLB",
+ "no check" };
chunk_printf(&msg,
/* pxid, name */
"%s,%s,"
@@ -1915,17 +1918,20 @@
/* status */
if (sv->state & SRV_MAINTAIN) {
- chunk_printf(&msg, "MAINT,");
+ chunk_printf(&msg, "MAINT");
} else {
chunk_printf(&msg,
srv_hlt_st[sv_state],
(svs->state & SRV_RUNNING) ? (svs->health - svs->rise + 1) : (svs->health),
(svs->state & SRV_RUNNING) ? (svs->fall) : (svs->rise));
+ if (svs != sv && svs->state & SRV_MAINTAIN) {
+ chunk_printf(&msg, "/MAINT");
+ }
}
chunk_printf(&msg,
/* weight, active, backup */
- "%d,%d,%d,"
+ ",%d,%d,%d,"
"",
(sv->eweight * px->lbprm.wmult + px->lbprm.wdiv - 1) / px->lbprm.wdiv,
(sv->state & SRV_BACKUP) ? 0 : 1,