MXS-2220 Move server_is_active inside the class

This commit is contained in:
Esa Korhonen
2019-01-04 15:27:03 +02:00
parent 764d9a4e75
commit b16ee3a94e
10 changed files with 29 additions and 28 deletions

View File

@ -193,7 +193,7 @@ RRRouterSession* RRRouter::create_session(MXS_SESSION* session)
SERVER_REF* sref; SERVER_REF* sref;
for (sref = m_service->dbref; sref != NULL; sref = sref->next) for (sref = m_service->dbref; sref != NULL; sref = sref->next)
{ {
if (SERVER_REF_IS_ACTIVE(sref) && (backends.size() < m_max_backends)) if (server_ref_is_active(sref) && (backends.size() < m_max_backends))
{ {
/* Connect to server */ /* Connect to server */
DCB* conn = dcb_connect(sref->server, session, sref->server->protocol().c_str()); DCB* conn = dcb_connect(sref->server, session, sref->server->protocol().c_str());

View File

@ -236,7 +236,7 @@ public:
*/ */
inline bool is_active() const inline bool is_active() const
{ {
return SERVER_REF_IS_ACTIVE(m_backend); return server_ref_is_active(m_backend);
} }
/** /**

View File

@ -212,6 +212,16 @@ public:
*/ */
void update_extra_port(int new_port); void update_extra_port(int new_port);
/**
* Is the server valid and active? TODO: Rename once "is_active" is moved to internal class.
*
* @return True, if server has not been removed from the runtime configuration.
*/
bool server_is_active() const
{
return is_active;
}
protected: protected:
SERVER() SERVER()
{ {
@ -241,17 +251,6 @@ private:
// Bits providing general information // Bits providing general information
#define SERVER_DISK_SPACE_EXHAUSTED (1 << 31) /**<< The disk space of the server is exhausted */ #define SERVER_DISK_SPACE_EXHAUSTED (1 << 31) /**<< The disk space of the server is exhausted */
/**
* Is the server valid and active?
*
* @param server The server
* @return True, if server has not been removed from the runtime configuration.
*/
inline bool server_is_active(const SERVER* server)
{
return server->is_active;
}
inline bool status_is_usable(uint64_t status) inline bool status_is_usable(uint64_t status)
{ {
return (status & (SERVER_RUNNING | SERVER_MAINT)) == SERVER_RUNNING; return (status & (SERVER_RUNNING | SERVER_MAINT)) == SERVER_RUNNING;

View File

@ -59,8 +59,10 @@ typedef struct server_ref_t
bool active; /**< Whether this reference is valid and in use*/ bool active; /**< Whether this reference is valid and in use*/
} SERVER_REF; } SERVER_REF;
/** Macro to check whether a SERVER_REF is active */ inline bool server_ref_is_active(const SERVER_REF* ref)
#define SERVER_REF_IS_ACTIVE(ref) (ref->active && server_is_active(ref->server)) {
return ref->active && ref->server->server_is_active();
}
#define SERVICE_MAX_RETRY_INTERVAL 3600 /*< The maximum interval between service start retries */ #define SERVICE_MAX_RETRY_INTERVAL 3600 /*< The maximum interval between service start retries */

View File

@ -499,7 +499,7 @@ void Server::dprintServer(DCB* dcb, const Server* srv)
void Server::print_to_dcb(DCB* dcb) const void Server::print_to_dcb(DCB* dcb) const
{ {
const Server* server = this; const Server* server = this;
if (!server_is_active(server)) if (!server->server_is_active())
{ {
return; return;
} }
@ -870,7 +870,7 @@ std::unique_ptr<ResultSet> serverGetList()
Guard guard(this_unit.all_servers_lock); Guard guard(this_unit.all_servers_lock);
for (Server* server : this_unit.all_servers) for (Server* server : this_unit.all_servers)
{ {
if (server_is_active(server)) if (server->server_is_active())
{ {
string stat = mxs::server_status(server); string stat = mxs::server_status(server);
set->add_row({server->name(), server->address, std::to_string(server->port), set->add_row({server->name(), server->address, std::to_string(server->port),
@ -1274,7 +1274,7 @@ json_t* server_list_to_json(const char* host)
Guard guard(this_unit.all_servers_lock); Guard guard(this_unit.all_servers_lock);
for (Server* server : this_unit.all_servers) for (Server* server : this_unit.all_servers)
{ {
if (server_is_active(server)) if (server->server_is_active())
{ {
json_array_append_new(data, server_to_json_data(server, host)); json_array_append_new(data, server_to_json_data(server, host));
} }

View File

@ -913,7 +913,7 @@ void dprintService(DCB* dcb, SERVICE* svc)
dcb_printf(dcb, "\tBackend databases:\n"); dcb_printf(dcb, "\tBackend databases:\n");
while (server) while (server)
{ {
if (SERVER_REF_IS_ACTIVE(server)) if (server_ref_is_active(server))
{ {
dcb_printf(dcb, dcb_printf(dcb,
"\t\t[%s]:%d Protocol: %s Name: %s\n", "\t\t[%s]:%d Protocol: %s Name: %s\n",
@ -974,7 +974,7 @@ void dListServices(DCB* dcb)
bool first = true; bool first = true;
while (server_ref) while (server_ref)
{ {
if (SERVER_REF_IS_ACTIVE(server_ref)) if (server_ref_is_active(server_ref))
{ {
if (first) if (first)
{ {
@ -1479,7 +1479,7 @@ bool Service::dump_config(const char* filename) const
for (SERVER_REF* db = dbref; db; db = db->next) for (SERVER_REF* db = dbref; db; db = db->next)
{ {
if (SERVER_REF_IS_ACTIVE(db)) if (server_ref_is_active(db))
{ {
dprintf(file, "%s%s", sep, db->server->name()); dprintf(file, "%s%s", sep, db->server->name());
sep = ","; sep = ",";
@ -1617,7 +1617,7 @@ static inline bool have_active_servers(const SERVICE* service)
{ {
for (SERVER_REF* ref = service->dbref; ref; ref = ref->next) for (SERVER_REF* ref = service->dbref; ref; ref = ref->next)
{ {
if (SERVER_REF_IS_ACTIVE(ref)) if (server_ref_is_active(ref))
{ {
return true; return true;
} }
@ -1707,7 +1707,7 @@ json_t* Service::json_relationships(const char* host) const
for (SERVER_REF* ref = dbref; ref; ref = ref->next) for (SERVER_REF* ref = dbref; ref; ref = ref->next)
{ {
if (SERVER_REF_IS_ACTIVE(ref)) if (server_ref_is_active(ref))
{ {
mxs_json_add_relation(servers, ref->server->name(), CN_SERVERS); mxs_json_add_relation(servers, ref->server->name(), CN_SERVERS);
} }
@ -1813,7 +1813,7 @@ json_t* service_relations_to_server(const SERVER* server, const char* host)
for (SERVER_REF* ref = service->dbref; ref; ref = ref->next) for (SERVER_REF* ref = service->dbref; ref; ref = ref->next)
{ {
if (ref->server == server && SERVER_REF_IS_ACTIVE(ref)) if (ref->server == server && server_ref_is_active(ref))
{ {
names.push_back(service->name); names.push_back(service->name);
} }

View File

@ -636,7 +636,7 @@ int gssapi_auth_load_users(Listener* listener)
for (SERVER_REF* servers = listener->service()->dbref; servers; servers = servers->next) for (SERVER_REF* servers = listener->service()->dbref; servers; servers = servers->next)
{ {
if (!SERVER_REF_IS_ACTIVE(servers) || !server_is_active(servers->server)) if (!server_ref_is_active(servers) || !servers->server->server_is_active())
{ {
continue; continue;
} }

View File

@ -1220,7 +1220,7 @@ static int get_users(Listener* listener, bool skip_local)
for (server = service->dbref; !maxscale_is_shutting_down() && server; server = server->next) for (server = service->dbref; !maxscale_is_shutting_down() && server; server = server->next)
{ {
if (!SERVER_REF_IS_ACTIVE(server) || !server_is_active(server->server) if (!server_ref_is_active(server) || !server->server->server_is_active()
|| (skip_local && server_is_mxs_service(server->server)) || (skip_local && server_is_mxs_service(server->server))
|| !server_is_running(server->server)) || !server_is_running(server->server))
{ {

View File

@ -85,7 +85,7 @@ HintRouterSession* HintRouter::newSession(MXS_SESSION* pSession)
/* Go through the server references, find master and slaves */ /* Go through the server references, find master and slaves */
for (SERVER_REF* pSref = pSession->service->dbref; pSref; pSref = pSref->next) for (SERVER_REF* pSref = pSession->service->dbref; pSref; pSref = pSref->next)
{ {
if (SERVER_REF_IS_ACTIVE(pSref)) if (server_ref_is_active(pSref))
{ {
if (server_is_master(pSref->server)) if (server_is_master(pSref->server))
{ {

View File

@ -315,7 +315,7 @@ static MXS_ROUTER_SESSION* newSession(MXS_ROUTER* instance, MXS_SESSION* session
*/ */
for (SERVER_REF* ref = inst->service->dbref; ref; ref = ref->next) for (SERVER_REF* ref = inst->service->dbref; ref; ref = ref->next)
{ {
if (!SERVER_REF_IS_ACTIVE(ref) || server_is_in_maint(ref->server)) if (!server_ref_is_active(ref) || server_is_in_maint(ref->server))
{ {
continue; continue;
} }