Move server_set_status and server_clear_status to monitor

The operation goes through monitor code so should be in the according file.
This commit is contained in:
Esa Korhonen
2019-04-26 15:08:31 +03:00
parent b0d8535ead
commit a3bb61486d
8 changed files with 71 additions and 72 deletions

View File

@ -474,3 +474,39 @@ json_t* MonitorManager::monitor_relations_to_server(const SERVER* server, const
return rel;
}
bool MonitorManager::set_server_status(SERVER* srv, int bit, string* errmsg_out)
{
mxb_assert(Monitor::is_admin_thread());
bool written = false;
Monitor* mon = MonitorManager::server_is_monitored(srv);
if (mon)
{
written = mon->set_server_status(srv, bit, errmsg_out);
}
else
{
/* Set the bit directly */
srv->set_status(bit);
written = true;
}
return written;
}
bool MonitorManager::clear_server_status(SERVER* srv, int bit, string* errmsg_out)
{
mxb_assert(Monitor::is_admin_thread());
bool written = false;
Monitor* mon = MonitorManager::server_is_monitored(srv);
if (mon)
{
written = mon->clear_server_status(srv, bit, errmsg_out);
}
else
{
/* Clear bit directly */
srv->clear_status(bit);
written = true;
}
return written;
}