From 956484601ba0730c2d3c1f10caf40d95a995a627 Mon Sep 17 00:00:00 2001 From: Muhammad Usama Date: Thu, 1 Feb 2018 19:55:16 +0500 Subject: [PATCH] Throw a warning message when failover consensus settings on watchdog nodes differs. --- src/watchdog/watchdog.c | 4 ++++ src/watchdog/wd_json_data.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/watchdog/watchdog.c b/src/watchdog/watchdog.c index 52bb2cf52..462db92c3 100644 --- a/src/watchdog/watchdog.c +++ b/src/watchdog/watchdog.c @@ -6381,6 +6381,10 @@ static void verify_pool_configurations(WatchdogNode* wdNode, POOL_CONFIG* config WD_VERIFY_RECEIVED_CONFIG_PARAMETER_VAL_BOOL(config, wdNode, memory_cache_enabled); WD_VERIFY_RECEIVED_CONFIG_PARAMETER_VAL_BOOL(config, wdNode, clear_memqcache_on_escalation); + WD_VERIFY_RECEIVED_CONFIG_PARAMETER_VAL_BOOL(config, wdNode, failover_when_quorum_exists); + WD_VERIFY_RECEIVED_CONFIG_PARAMETER_VAL_BOOL(config, wdNode, failover_require_consensus); + WD_VERIFY_RECEIVED_CONFIG_PARAMETER_VAL_BOOL(config, wdNode, allow_multiple_failover_requests_from_node); + if (config->backend_desc->num_backends != pool_config->backend_desc->num_backends) { ereport(WARNING, diff --git a/src/watchdog/wd_json_data.c b/src/watchdog/wd_json_data.c index 5511471f2..58465c496 100644 --- a/src/watchdog/wd_json_data.c +++ b/src/watchdog/wd_json_data.c @@ -107,6 +107,12 @@ POOL_CONFIG* get_pool_config_from_json(char* json_data, int data_len) if (json_get_int_value_for_key(root, "master_slave_sub_mode", (int*)&config->master_slave_sub_mode)) goto ERROR_EXIT; + if (json_get_bool_value_for_key(root, "failover_when_quorum_exists", &config->failover_when_quorum_exists)) + goto ERROR_EXIT; + if (json_get_bool_value_for_key(root, "failover_require_consensus", &config->failover_require_consensus)) + goto ERROR_EXIT; + if (json_get_bool_value_for_key(root, "allow_multiple_failover_requests_from_node", &config->allow_multiple_failover_requests_from_node)) + goto ERROR_EXIT; /* backend_desc array */ value = json_get_value_for_key(root,"backend_desc"); @@ -196,6 +202,10 @@ char* get_pool_config_json(void) jw_put_int(jNode, "wd_priority", pool_config->wd_priority); jw_put_int(jNode, "master_slave_sub_mode", pool_config->master_slave_sub_mode); + jw_put_bool(jNode, "failover_when_quorum_exists", pool_config->failover_when_quorum_exists); + jw_put_bool(jNode, "failover_require_consensus", pool_config->failover_require_consensus); + jw_put_bool(jNode, "allow_multiple_failover_requests_from_node", pool_config->allow_multiple_failover_requests_from_node); + /* Array of backends */ jw_start_array(jNode, "backend_desc"); for (i=0; i < pool_config->backend_desc->num_backends; i++) -- 2.39.5