Added depth and SERVER_SLAVE_OF_EXTERNAL_MASTER for build_mysql51_replication_tree
Now build_mysql51_replication_tree assigns depth and handles SERVER_SLAVE_OF_EXTERNAL_MASTER status
This commit is contained in:
parent
6b9a2cd0b5
commit
e6b34ea85c
@ -536,6 +536,8 @@ static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
||||
MONITOR_SERVERS* database = mon->databases;
|
||||
MONITOR_SERVERS *ptr, *rval = NULL;
|
||||
int i;
|
||||
MYSQL_MONITOR *handle = mon->handle;
|
||||
|
||||
while (database)
|
||||
{
|
||||
bool ismaster = false;
|
||||
@ -576,14 +578,16 @@ static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
||||
/* Set the Slave Role */
|
||||
if (ismaster)
|
||||
{
|
||||
MYSQL_MONITOR *handle = mon->handle;
|
||||
handle->master = database;
|
||||
|
||||
MXS_DEBUG("Master server found at %s:%d with %d slaves",
|
||||
database->server->name,
|
||||
database->server->port,
|
||||
nslaves);
|
||||
|
||||
monitor_set_pending_status(database, SERVER_MASTER);
|
||||
database->server->depth = 0; // Add Depth 0 for Master
|
||||
|
||||
if (rval == NULL || rval->server->node_id > database->server->node_id)
|
||||
{
|
||||
rval = database;
|
||||
@ -607,13 +611,17 @@ static MONITOR_SERVERS *build_mysql51_replication_tree(MONITOR *mon)
|
||||
if (ptr->server->slaves[i] == database->server->node_id)
|
||||
{
|
||||
database->server->master_id = ptr->server->node_id;
|
||||
database->server->depth = 1; // Add Depth 1 for Slave
|
||||
break;
|
||||
}
|
||||
}
|
||||
ptr = ptr->next;
|
||||
}
|
||||
if (database->server->master_id <= 0 && SERVER_IS_SLAVE(database->server))
|
||||
if (SERVER_IS_SLAVE(database->server) &&
|
||||
(database->server->master_id <= 0 ||
|
||||
database->server->master_id != handle->master->server->node_id))
|
||||
{
|
||||
monitor_clear_pending_status(database, SERVER_SLAVE);
|
||||
monitor_set_pending_status(database, SERVER_SLAVE_OF_EXTERNAL_MASTER);
|
||||
}
|
||||
database = database->next;
|
||||
|
Loading…
x
Reference in New Issue
Block a user