MXS-2271 Move free monitor functions into classes

Functions are divided to MonitorManager, Monitor, or the monitored
server.
This commit is contained in:
Esa Korhonen
2019-03-06 14:41:06 +02:00
parent 40f24aaaee
commit a8949b2560
13 changed files with 138 additions and 148 deletions

View File

@ -57,7 +57,7 @@ bool AuroraMonitor::has_sufficient_permissions()
*/
void AuroraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
{
monitor_clear_pending_status(monitored_server, SERVER_MASTER | SERVER_SLAVE);
monitored_server->clear_pending_status(SERVER_MASTER | SERVER_SLAVE);
MYSQL_RES* result;
@ -78,12 +78,12 @@ void AuroraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
status = SERVER_MASTER;
}
monitor_set_pending_status(monitored_server, status);
monitored_server->set_pending_status(status);
mysql_free_result(result);
}
else
{
mon_report_query_error(monitored_server);
monitored_server->mon_report_query_error();
}
}

View File

@ -566,7 +566,7 @@ void ClustrixMonitor::update_server_statuses()
for (auto ms : m_servers)
{
monitor_stash_current_status(ms);
ms->stash_current_status();
auto it = find_if(m_nodes.begin(), m_nodes.end(),
[ms](const std::pair<int,ClustrixNode>& element) -> bool {
@ -580,16 +580,16 @@ void ClustrixMonitor::update_server_statuses()
if (info.is_running())
{
monitor_set_pending_status(ms, SERVER_RUNNING);
ms->set_pending_status(SERVER_RUNNING);
}
else
{
monitor_clear_pending_status(ms, SERVER_RUNNING);
ms->clear_pending_status(SERVER_RUNNING);
}
}
else
{
monitor_clear_pending_status(ms, SERVER_RUNNING);
ms->clear_pending_status(SERVER_RUNNING);
}
}
}

View File

@ -47,7 +47,7 @@ static std::string do_query(MXS_MONITORED_SERVER* srv, const char* query)
}
else
{
mon_report_query_error(srv);
srv->mon_report_query_error();
}
return rval;
@ -95,7 +95,7 @@ bool CsMonitor::has_sufficient_permissions()
void CsMonitor::update_server_status(MXS_MONITORED_SERVER* srv)
{
monitor_clear_pending_status(srv, SERVER_MASTER | SERVER_SLAVE | SERVER_RUNNING);
srv->clear_pending_status(SERVER_MASTER | SERVER_SLAVE | SERVER_RUNNING);
int status = 0;
if (do_query(srv, alive_query) == "1")
@ -114,7 +114,7 @@ void CsMonitor::update_server_status(MXS_MONITORED_SERVER* srv)
}
}
monitor_set_pending_status(srv, status);
srv->set_pending_status(status);
}
bool CsMonitor::configure(const MXS_CONFIG_PARAMETER* pParams)

View File

@ -224,7 +224,7 @@ void GaleraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
}
else
{
mon_report_query_error(monitored_server);
monitored_server->mon_report_query_error();
}
}
@ -264,8 +264,8 @@ void GaleraMonitor::post_tick()
if (ptr != m_master)
{
/* set the Slave role and clear master stickiness */
monitor_clear_pending_status(ptr, repl_bits);
monitor_set_pending_status(ptr, SERVER_SLAVE);
ptr->clear_pending_status(repl_bits);
ptr->set_pending_status(SERVER_SLAVE);
}
else
{
@ -273,14 +273,14 @@ void GaleraMonitor::post_tick()
&& m_master->server->node_id != candidate_master->server->node_id)
{
/* set master role and master stickiness */
monitor_clear_pending_status(ptr, repl_bits);
monitor_set_pending_status(ptr, SERVER_MASTER | SERVER_MASTER_STICKINESS);
ptr->clear_pending_status(repl_bits);
ptr->set_pending_status(SERVER_MASTER | SERVER_MASTER_STICKINESS);
}
else
{
/* set master role and clear master stickiness */
monitor_clear_pending_status(ptr, repl_bits);
monitor_set_pending_status(ptr, SERVER_MASTER);
ptr->clear_pending_status(repl_bits);
ptr->set_pending_status(SERVER_MASTER);
}
}
@ -288,8 +288,8 @@ void GaleraMonitor::post_tick()
}
else
{
monitor_clear_pending_status(ptr, repl_bits);
monitor_set_pending_status(ptr, 0);
ptr->clear_pending_status(repl_bits);
ptr->set_pending_status(0);
}
}
@ -348,7 +348,7 @@ static bool using_xtrabackup(MXS_MONITORED_SERVER* database, const char* server_
}
else
{
mon_report_query_error(database);
database->mon_report_query_error();
}
return rval;
@ -569,7 +569,7 @@ void GaleraMonitor::update_sst_donor_nodes(int is_cluster)
}
else
{
mon_report_query_error(ptr);
ptr->mon_report_query_error();
}
}
@ -587,7 +587,7 @@ void GaleraMonitor::update_sst_donor_nodes(int is_cluster)
MXS_MONITORED_SERVER* ptr = node_list[k];
if (mxs_mysql_query(ptr->con, donor_list) != 0)
{
mon_report_query_error(ptr);
ptr->mon_report_query_error();
}
}
@ -713,11 +713,11 @@ void GaleraMonitor::set_galera_cluster()
{
if (it->second.joined)
{
monitor_set_pending_status(it->first, SERVER_JOINED);
it->first->set_pending_status(SERVER_JOINED);
}
else
{
monitor_clear_pending_status(it->first, SERVER_JOINED);
it->first->clear_pending_status(SERVER_JOINED);
}
}
}

View File

@ -74,7 +74,7 @@ static bool is_master(MXS_MONITORED_SERVER* server)
}
else
{
mon_report_query_error(server);
server->mon_report_query_error();
}
return rval;
@ -101,7 +101,7 @@ static bool is_slave(MXS_MONITORED_SERVER* server)
}
else
{
mon_report_query_error(server);
server->mon_report_query_error();
}
return rval;
@ -111,18 +111,18 @@ void GRMon::update_server_status(MXS_MONITORED_SERVER* monitored_server)
{
if (is_master(monitored_server))
{
monitor_set_pending_status(monitored_server, SERVER_MASTER);
monitor_clear_pending_status(monitored_server, SERVER_SLAVE);
monitored_server->set_pending_status(SERVER_MASTER);
monitored_server->clear_pending_status(SERVER_SLAVE);
}
else if (is_slave(monitored_server))
{
monitor_set_pending_status(monitored_server, SERVER_SLAVE);
monitor_clear_pending_status(monitored_server, SERVER_MASTER);
monitored_server->set_pending_status(SERVER_SLAVE);
monitored_server->clear_pending_status(SERVER_MASTER);
}
else
{
monitor_clear_pending_status(monitored_server, SERVER_SLAVE);
monitor_clear_pending_status(monitored_server, SERVER_MASTER);
monitored_server->clear_pending_status(SERVER_SLAVE);
monitored_server->clear_pending_status(SERVER_MASTER);
}
}

View File

@ -406,7 +406,7 @@ void MariaDBMonitor::update_server(MariaDBServer* server)
* iteration. */
if (server->had_status(SERVER_RUNNING) || server->had_status(SERVER_MAINT))
{
mon_log_connect_error(mon_srv, conn_status);
mon_srv->log_connect_error(conn_status);
}
}
@ -657,7 +657,7 @@ void MariaDBMonitor::update_external_master()
void MariaDBMonitor::log_master_changes()
{
MXS_MONITORED_SERVER* root_master = m_master ? m_master->m_server_base : NULL;
if (root_master && mon_status_changed(root_master)
if (root_master && root_master->status_changed()
&& !(root_master->pending_status & SERVER_WAS_MASTER))
{
if ((root_master->pending_status & SERVER_MASTER) && m_master->is_running())

View File

@ -991,12 +991,12 @@ void MariaDBServer::check_permissions()
void MariaDBServer::clear_status(uint64_t bits)
{
monitor_clear_pending_status(m_server_base, bits);
m_server_base->clear_pending_status(bits);
}
void MariaDBServer::set_status(uint64_t bits)
{
monitor_set_pending_status(m_server_base, bits);
m_server_base->set_pending_status(bits);
}
/**

View File

@ -76,7 +76,7 @@ void NDBCMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
}
else
{
mon_report_query_error(monitored_server);
monitored_server->mon_report_query_error();
}
/* Check the the SQL node id in the MySQL cluster */
@ -108,16 +108,16 @@ void NDBCMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
}
else
{
mon_report_query_error(monitored_server);
monitored_server->mon_report_query_error();
}
if (isjoined)
{
monitor_set_pending_status(monitored_server, SERVER_NDB);
monitored_server->set_pending_status(SERVER_NDB);
}
else
{
monitor_clear_pending_status(monitored_server, SERVER_NDB);
monitored_server->clear_pending_status(SERVER_NDB);
}
}