MEDIUM: stats: Differentiate between DRAIN and DRAIN (agent)
Differentiate between DRAIN and DRAIN (agent) when reporting stats.
This is consistent with the distinction made between DOWN and DOWN (agent).
Signed-off-by: Simon Horman <horms@verge.net.au>
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 5704fe4..095371f 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -2929,6 +2929,7 @@
SRV_STATS_STATE_NOLB,
SRV_STATS_STATE_DRAIN_GOING_DOWN,
SRV_STATS_STATE_DRAIN,
+ SRV_STATS_STATE_DRAIN_AGENT,
SRV_STATS_STATE_NO_CHECK,
SRV_STATS_STATE_COUNT, /* Must be last */
@@ -2989,6 +2990,7 @@
[SRV_STATS_STATE_NOLB] = "NOLB",
[SRV_STATS_STATE_DRAIN_GOING_DOWN] = "DRAIN %d/%d ↓",
[SRV_STATS_STATE_DRAIN] = "DRAIN",
+ [SRV_STATS_STATE_DRAIN_AGENT] = "DRAIN (agent)",
[SRV_STATS_STATE_NO_CHECK] = "<i>no check</i>",
};
@@ -3243,6 +3245,7 @@
[SRV_STATS_STATE_NOLB] = "NOLB,",
[SRV_STATS_STATE_DRAIN_GOING_DOWN] = "DRAIN %d/%d,",
[SRV_STATS_STATE_DRAIN] = "DRAIN,",
+ [SRV_STATS_STATE_DRAIN_AGENT] = "DRAIN (agent)",
[SRV_STATS_STATE_NO_CHECK] = "no check,"
};
@@ -3910,7 +3913,9 @@
sv_colour = SRV_STATS_COLOUR_DRAINING;
if (sv->admin & SRV_ADMF_DRAIN) {
- if (sv_state == SRV_STATS_STATE_UP_GOING_DOWN)
+ if (svs->agent.state & CHK_ST_ENABLED)
+ sv_state = SRV_STATS_STATE_DRAIN_AGENT;
+ else if (sv_state == SRV_STATS_STATE_UP_GOING_DOWN)
sv_state = SRV_STATS_STATE_DRAIN_GOING_DOWN;
else
sv_state = SRV_STATS_STATE_DRAIN;