Added 'disable_master_failback' monitor option

Added 'disable_master_failback' option in Galera monitor
This commit is contained in:
MassimilianoPinto
2014-10-30 19:03:07 +01:00
parent 9967a45379
commit 6f22975e6c
7 changed files with 64 additions and 14 deletions

View File

@ -38,6 +38,7 @@
* 09/09/14 Massimiliano Pinto Added localhost_match_wildcard_host parameter
* 12/09/14 Mark Riddoch Addition of checks on servers list and
* internal router suppression of messages
* 30/10/14 Massimiliano Pinto Added disable_master_failback parameter
*
* @endverbatim
*/
@ -765,6 +766,7 @@ int error_count = 0;
unsigned long interval = 0;
int replication_heartbeat = 0;
int detect_stale_master = 0;
int disable_master_failback = 0;
module = config_get_value(obj->parameters, "module");
servers = config_get_value(obj->parameters, "servers");
@ -782,6 +784,10 @@ int error_count = 0;
detect_stale_master = atoi(config_get_value(obj->parameters, "detect_stale_master"));
}
if (config_get_value(obj->parameters, "disable_master_failback")) {
disable_master_failback = atoi(config_get_value(obj->parameters, "disable_master_failback"));
}
if (module)
{
obj->element = monitor_alloc(obj->object, module);
@ -809,6 +815,10 @@ int error_count = 0;
if(detect_stale_master == 1)
monitorDetectStaleMaster(obj->element, detect_stale_master);
/* disable master failback */
if(disable_master_failback == 1)
monitorDisableMasterFailback(obj->element, disable_master_failback);
/* get the servers to monitor */
s = strtok(servers, ",");
while (s)
@ -1612,6 +1622,7 @@ static char *monitor_params[] =
"monitor_interval",
"detect_replication_lag",
"detect_stale_master",
"disable_master_failback",
NULL
};
/**

View File

@ -26,6 +26,7 @@
* 08/07/13 Mark Riddoch Initial implementation
* 23/05/14 Massimiliano Pinto Addition of monitor_interval parameter
* and monitor id
* 30/10/14 Massimiliano Pinto Addition of disable_master_failback parameter
*
* @endverbatim
*/
@ -329,3 +330,17 @@ monitorDetectStaleMaster(MONITOR *mon, int enable)
mon->module->detectStaleMaster(mon->handle, enable);
}
}
/**
* Disable Master Failback
*
* @param mon The monitor instance
* @param disable The value 1 disable the failback, 0 keeps it
*/
void
monitorDisableMasterFailback(MONITOR *mon, int disable)
{
if (mon->module->disableMasterFailback != NULL) {
mon->module->disableMasterFailback(mon->handle, disable);
}
}