mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
MINOR: checks: support a neutral check result
Agent will have the ability to return a weight without indicating an up/down status. Currently this is not possible, so let's add a 5th result CHK_RES_NEUTRAL for this purpose. It has been mapped to the unused HCHK_STATUS_CHECKED which already serves as a neutral delimitor between initiated checks and those returning a result.
This commit is contained in:
parent
12634e1428
commit
23964187ae
@ -29,6 +29,7 @@
|
|||||||
*/
|
*/
|
||||||
enum chk_result {
|
enum chk_result {
|
||||||
CHK_RES_UNKNOWN = 0, /* initialized to this by default */
|
CHK_RES_UNKNOWN = 0, /* initialized to this by default */
|
||||||
|
CHK_RES_NEUTRAL, /* valid check but no status information */
|
||||||
CHK_RES_FAILED, /* check failed */
|
CHK_RES_FAILED, /* check failed */
|
||||||
CHK_RES_PASSED, /* check succeeded and server is fully up again */
|
CHK_RES_PASSED, /* check succeeded and server is fully up again */
|
||||||
CHK_RES_CONDPASS, /* check reports the server doesn't want new sessions */
|
CHK_RES_CONDPASS, /* check reports the server doesn't want new sessions */
|
||||||
|
@ -66,6 +66,8 @@ static const struct check_status check_statuses[HCHK_STATUS_SIZE] = {
|
|||||||
[HCHK_STATUS_INI] = { CHK_RES_UNKNOWN, "INI", "Initializing" },
|
[HCHK_STATUS_INI] = { CHK_RES_UNKNOWN, "INI", "Initializing" },
|
||||||
[HCHK_STATUS_START] = { /* SPECIAL STATUS*/ },
|
[HCHK_STATUS_START] = { /* SPECIAL STATUS*/ },
|
||||||
|
|
||||||
|
/* Below we have finished checks */
|
||||||
|
[HCHK_STATUS_CHECKED] = { CHK_RES_NEUTRAL, "CHECKED", "No status change" },
|
||||||
[HCHK_STATUS_HANA] = { CHK_RES_FAILED, "HANA", "Health analyze" },
|
[HCHK_STATUS_HANA] = { CHK_RES_FAILED, "HANA", "Health analyze" },
|
||||||
|
|
||||||
[HCHK_STATUS_SOCKERR] = { CHK_RES_FAILED, "SOCKERR", "Socket error" },
|
[HCHK_STATUS_SOCKERR] = { CHK_RES_FAILED, "SOCKERR", "Socket error" },
|
||||||
@ -232,6 +234,10 @@ static void set_server_check_status(struct check *check, short status, const cha
|
|||||||
tv_zero(&check->start);
|
tv_zero(&check->start);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* no change is expected if no state change occurred */
|
||||||
|
if (check->result == CHK_RES_NEUTRAL)
|
||||||
|
return;
|
||||||
|
|
||||||
report = 0;
|
report = 0;
|
||||||
|
|
||||||
switch (check->result) {
|
switch (check->result) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user