Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added depth and SERVER_SLAVE_OF_EXTERNAL_MASTER for build_mysql51_rep…
…lication_tree

Now build_mysql51_replication_tree assigns depth and handles
SERVER_SLAVE_OF_EXTERNAL_MASTER status
  • Loading branch information
MassimilianoPinto committed Apr 21, 2017
1 parent 6b9a2cd commit e6b34ea
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions server/modules/monitor/mysql_mon.c
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand Down

0 comments on commit e6b34ea

Please sign in to comment.