MXS-1834 Compile all monitors as C++
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
add_subdirectory(galeramon)
|
|
||||||
add_subdirectory(mmmon)
|
|
||||||
add_subdirectory(mariadbmon)
|
|
||||||
add_subdirectory(ndbclustermon)
|
|
||||||
add_subdirectory(auroramon)
|
add_subdirectory(auroramon)
|
||||||
|
add_subdirectory(galeramon)
|
||||||
add_subdirectory(grmon)
|
add_subdirectory(grmon)
|
||||||
|
add_subdirectory(mariadbmon)
|
||||||
|
add_subdirectory(mmmon)
|
||||||
|
add_subdirectory(ndbclustermon)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
add_library(auroramon SHARED auroramon.c)
|
add_library(auroramon SHARED auroramon.cc)
|
||||||
target_link_libraries(auroramon maxscale-common)
|
target_link_libraries(auroramon maxscale-common)
|
||||||
add_dependencies(auroramon pcre2)
|
add_dependencies(auroramon pcre2)
|
||||||
set_target_properties(auroramon PROPERTIES VERSION "1.0.0")
|
set_target_properties(auroramon PROPERTIES VERSION "1.0.0")
|
||||||
|
@ -48,7 +48,8 @@ void update_server_status(MXS_MONITOR *monitor, MXS_MONITORED_SERVER *database)
|
|||||||
{
|
{
|
||||||
if (!SERVER_IN_MAINT(database->server))
|
if (!SERVER_IN_MAINT(database->server))
|
||||||
{
|
{
|
||||||
SERVER temp_server = {.status = database->server->status};
|
SERVER temp_server = {};
|
||||||
|
temp_server.status = database->server->status;
|
||||||
server_clear_status_nolock(&temp_server, SERVER_RUNNING | SERVER_MASTER | SERVER_SLAVE | SERVER_AUTH_ERROR);
|
server_clear_status_nolock(&temp_server, SERVER_RUNNING | SERVER_MASTER | SERVER_SLAVE | SERVER_AUTH_ERROR);
|
||||||
database->mon_prev_status = database->server->status;
|
database->mon_prev_status = database->server->status;
|
||||||
|
|
||||||
@ -148,7 +149,7 @@ monitorMain(void *arg)
|
|||||||
release_monitor_servers(monitor);
|
release_monitor_servers(monitor);
|
||||||
|
|
||||||
/** Sleep until the next monitoring interval */
|
/** Sleep until the next monitoring interval */
|
||||||
int ms = 0;
|
unsigned int ms = 0;
|
||||||
while (ms < monitor->interval && !handle->shutdown)
|
while (ms < monitor->interval && !handle->shutdown)
|
||||||
{
|
{
|
||||||
if (monitor->server_pending_changes)
|
if (monitor->server_pending_changes)
|
||||||
@ -188,7 +189,7 @@ static void auroramon_free(AURORA_MONITOR *handle)
|
|||||||
static void *
|
static void *
|
||||||
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
||||||
{
|
{
|
||||||
AURORA_MONITOR *handle = mon->handle;
|
AURORA_MONITOR *handle = static_cast<AURORA_MONITOR*>(mon->handle);
|
||||||
|
|
||||||
if (handle)
|
if (handle)
|
||||||
{
|
{
|
||||||
@ -264,6 +265,8 @@ static json_t* diagnostics_json(const MXS_MONITOR *mon)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
/**
|
/**
|
||||||
* The module entry point routine. It is this routine that must populate the
|
* The module entry point routine. It is this routine that must populate the
|
||||||
* structure that is referred to as the "module object", this is a structure
|
* structure that is referred to as the "module object", this is a structure
|
||||||
@ -314,3 +317,5 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
|
|
||||||
return &info;
|
return &info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
add_library(galeramon SHARED galeramon.c)
|
add_library(galeramon SHARED galeramon.cc)
|
||||||
target_link_libraries(galeramon maxscale-common)
|
target_link_libraries(galeramon maxscale-common)
|
||||||
add_dependencies(galeramon pcre2)
|
add_dependencies(galeramon pcre2)
|
||||||
set_target_properties(galeramon PROPERTIES VERSION "2.0.0")
|
set_target_properties(galeramon PROPERTIES VERSION "2.0.0")
|
||||||
|
@ -48,6 +48,8 @@ static void set_galera_cluster(MXS_MONITOR *);
|
|||||||
static bool detect_cluster_size(const GALERA_MONITOR *, const int, const char *, const int);
|
static bool detect_cluster_size(const GALERA_MONITOR *, const int, const char *, const int);
|
||||||
static void set_cluster_members(MXS_MONITOR *);
|
static void set_cluster_members(MXS_MONITOR *);
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
/**
|
/**
|
||||||
* The module entry point routine. It is this routine that
|
* The module entry point routine. It is this routine that
|
||||||
* must populate the structure that is referred to as the
|
* must populate the structure that is referred to as the
|
||||||
@ -108,6 +110,8 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
return &info;
|
return &info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start the instance of the monitor, returning a handle on the monitor.
|
* Start the instance of the monitor, returning a handle on the monitor.
|
||||||
*
|
*
|
||||||
@ -118,7 +122,7 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
static void *
|
static void *
|
||||||
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
||||||
{
|
{
|
||||||
GALERA_MONITOR *handle = mon->handle;
|
GALERA_MONITOR *handle = static_cast<GALERA_MONITOR*>(mon->handle);
|
||||||
if (handle != NULL)
|
if (handle != NULL)
|
||||||
{
|
{
|
||||||
handle->shutdown = 0;
|
handle->shutdown = 0;
|
||||||
@ -352,11 +356,12 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITORED_SERVER *database)
|
|||||||
server_string = database->server->version_string;
|
server_string = database->server->version_string;
|
||||||
|
|
||||||
/* Check if the the Galera FSM shows this node is joined to the cluster */
|
/* Check if the the Galera FSM shows this node is joined to the cluster */
|
||||||
char *cluster_member = "SHOW STATUS WHERE Variable_name IN"
|
const char *cluster_member =
|
||||||
" ('wsrep_cluster_state_uuid',"
|
"SHOW STATUS WHERE Variable_name IN"
|
||||||
" 'wsrep_cluster_size',"
|
" ('wsrep_cluster_state_uuid',"
|
||||||
" 'wsrep_local_index',"
|
" 'wsrep_cluster_size',"
|
||||||
" 'wsrep_local_state')";
|
" 'wsrep_local_index',"
|
||||||
|
" 'wsrep_local_state')";
|
||||||
|
|
||||||
if (mxs_mysql_query(database->con, cluster_member) == 0
|
if (mxs_mysql_query(database->con, cluster_member) == 0
|
||||||
&& (result = mysql_store_result(database->con)) != NULL)
|
&& (result = mysql_store_result(database->con)) != NULL)
|
||||||
@ -449,7 +454,8 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITORED_SERVER *database)
|
|||||||
|
|
||||||
/* Galera Cluster vars fetch */
|
/* Galera Cluster vars fetch */
|
||||||
HASHTABLE *table = handle->galera_nodes_info;
|
HASHTABLE *table = handle->galera_nodes_info;
|
||||||
GALERA_NODE_INFO *node = hashtable_fetch(table, database->server->name);
|
GALERA_NODE_INFO *node =
|
||||||
|
static_cast<GALERA_NODE_INFO*>(hashtable_fetch(table, database->server->name));
|
||||||
if (node)
|
if (node)
|
||||||
{
|
{
|
||||||
MXS_DEBUG("Node %s is present in galera_nodes_info, updtating info",
|
MXS_DEBUG("Node %s is present in galera_nodes_info, updtating info",
|
||||||
@ -683,7 +689,7 @@ static MXS_MONITORED_SERVER *get_candidate_master(MXS_MONITOR* mon)
|
|||||||
{
|
{
|
||||||
MXS_MONITORED_SERVER *moitor_servers = mon->monitored_servers;
|
MXS_MONITORED_SERVER *moitor_servers = mon->monitored_servers;
|
||||||
MXS_MONITORED_SERVER *candidate_master = NULL;
|
MXS_MONITORED_SERVER *candidate_master = NULL;
|
||||||
GALERA_MONITOR* handle = mon->handle;
|
GALERA_MONITOR* handle = static_cast<GALERA_MONITOR*>(mon->handle);
|
||||||
long min_id = -1;
|
long min_id = -1;
|
||||||
int minval = INT_MAX;
|
int minval = INT_MAX;
|
||||||
int currval;
|
int currval;
|
||||||
@ -807,7 +813,7 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster)
|
|||||||
MXS_MONITORED_SERVER *ptr;
|
MXS_MONITORED_SERVER *ptr;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
GALERA_MONITOR *handle = mon->handle;
|
GALERA_MONITOR *handle = static_cast<GALERA_MONITOR*>(mon->handle);
|
||||||
bool ignore_priority = true;
|
bool ignore_priority = true;
|
||||||
|
|
||||||
if (is_cluster == 1)
|
if (is_cluster == 1)
|
||||||
@ -820,9 +826,9 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster)
|
|||||||
MXS_MONITORED_SERVER *node_list[is_cluster - 1];
|
MXS_MONITORED_SERVER *node_list[is_cluster - 1];
|
||||||
/* Donor list size = DONOR_LIST_SET_VAR + n_hosts * max_host_len + n_hosts + 1 */
|
/* Donor list size = DONOR_LIST_SET_VAR + n_hosts * max_host_len + n_hosts + 1 */
|
||||||
|
|
||||||
char *donor_list = MXS_CALLOC(1, strlen(DONOR_LIST_SET_VAR) +
|
char *donor_list = static_cast<char*>(MXS_CALLOC(1, strlen(DONOR_LIST_SET_VAR) +
|
||||||
is_cluster * DONOR_NODE_NAME_MAX_LEN +
|
is_cluster * DONOR_NODE_NAME_MAX_LEN +
|
||||||
is_cluster + 1);
|
is_cluster + 1));
|
||||||
|
|
||||||
if (donor_list == NULL)
|
if (donor_list == NULL)
|
||||||
{
|
{
|
||||||
@ -871,7 +877,7 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster)
|
|||||||
sort_order ? compare_node_priority : compare_node_index);
|
sort_order ? compare_node_priority : compare_node_index);
|
||||||
|
|
||||||
/* Select nodename from each server and append it to node_list */
|
/* Select nodename from each server and append it to node_list */
|
||||||
for (int k = 0; k < found_slaves; k++)
|
for (unsigned int k = 0; k < found_slaves; k++)
|
||||||
{
|
{
|
||||||
MXS_MONITORED_SERVER *ptr = node_list[k];
|
MXS_MONITORED_SERVER *ptr = node_list[k];
|
||||||
|
|
||||||
@ -917,7 +923,7 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster)
|
|||||||
donor_list);
|
donor_list);
|
||||||
|
|
||||||
/* Set now rep_sst_donor in each slave node */
|
/* Set now rep_sst_donor in each slave node */
|
||||||
for (int k = 0; k < found_slaves; k++)
|
for (unsigned int k = 0; k < found_slaves; k++)
|
||||||
{
|
{
|
||||||
MXS_MONITORED_SERVER *ptr = node_list[k];
|
MXS_MONITORED_SERVER *ptr = node_list[k];
|
||||||
/* Set the Galera SST donor node list */
|
/* Set the Galera SST donor node list */
|
||||||
@ -1092,7 +1098,7 @@ static GALERA_NODE_INFO *nodeval_dup(const GALERA_NODE_INFO *in)
|
|||||||
rval->node = in->node;
|
rval->node = in->node;
|
||||||
rval->joined = in->joined;
|
rval->joined = in->joined;
|
||||||
|
|
||||||
return (void *) rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1119,7 +1125,7 @@ static void nodeval_free(GALERA_NODE_INFO *in)
|
|||||||
*/
|
*/
|
||||||
static void set_galera_cluster(MXS_MONITOR *mon)
|
static void set_galera_cluster(MXS_MONITOR *mon)
|
||||||
{
|
{
|
||||||
GALERA_MONITOR *handle = mon->handle;
|
GALERA_MONITOR *handle = static_cast<GALERA_MONITOR*>(mon->handle);
|
||||||
int ret = false;
|
int ret = false;
|
||||||
int n_nodes = 0;
|
int n_nodes = 0;
|
||||||
HASHITERATOR *iterator;
|
HASHITERATOR *iterator;
|
||||||
@ -1133,10 +1139,10 @@ static void set_galera_cluster(MXS_MONITOR *mon)
|
|||||||
if ((iterator = hashtable_iterator(table)) != NULL)
|
if ((iterator = hashtable_iterator(table)) != NULL)
|
||||||
{
|
{
|
||||||
/* Get the Key */
|
/* Get the Key */
|
||||||
while ((key = hashtable_next(iterator)) != NULL)
|
while ((key = static_cast<char*>(hashtable_next(iterator))) != NULL)
|
||||||
{
|
{
|
||||||
/* fetch the Value for the Key */
|
/* fetch the Value for the Key */
|
||||||
value = hashtable_fetch(table, key);
|
value = static_cast<GALERA_NODE_INFO*>(hashtable_fetch(table, key));
|
||||||
if (value)
|
if (value)
|
||||||
{
|
{
|
||||||
if (!SERVER_IN_MAINT(value->node) &&
|
if (!SERVER_IN_MAINT(value->node) &&
|
||||||
@ -1206,7 +1212,7 @@ static void set_galera_cluster(MXS_MONITOR *mon)
|
|||||||
*/
|
*/
|
||||||
static void set_cluster_members(MXS_MONITOR *mon)
|
static void set_cluster_members(MXS_MONITOR *mon)
|
||||||
{
|
{
|
||||||
GALERA_MONITOR *handle = mon->handle;
|
GALERA_MONITOR *handle = static_cast<GALERA_MONITOR*>(mon->handle);
|
||||||
GALERA_NODE_INFO *value;
|
GALERA_NODE_INFO *value;
|
||||||
MXS_MONITORED_SERVER *ptr;
|
MXS_MONITORED_SERVER *ptr;
|
||||||
char *c_uuid = handle->cluster_info.c_uuid;
|
char *c_uuid = handle->cluster_info.c_uuid;
|
||||||
@ -1216,7 +1222,8 @@ static void set_cluster_members(MXS_MONITOR *mon)
|
|||||||
while (ptr)
|
while (ptr)
|
||||||
{
|
{
|
||||||
/* Fetch cluster info for this server, if any */
|
/* Fetch cluster info for this server, if any */
|
||||||
value = hashtable_fetch(handle->galera_nodes_info, ptr->server->name);
|
value = static_cast<GALERA_NODE_INFO*>(hashtable_fetch(handle->galera_nodes_info,
|
||||||
|
ptr->server->name));
|
||||||
|
|
||||||
if (value && handle->cluster_info.c_uuid)
|
if (value && handle->cluster_info.c_uuid)
|
||||||
{
|
{
|
||||||
@ -1291,7 +1298,7 @@ static bool detect_cluster_size(const GALERA_MONITOR *handle,
|
|||||||
}
|
}
|
||||||
else if (n_nodes == 1)
|
else if (n_nodes == 1)
|
||||||
{
|
{
|
||||||
char *msg = "Galera cluster with 1 node only";
|
const char *msg = "Galera cluster with 1 node only";
|
||||||
|
|
||||||
/* If 1 node only:
|
/* If 1 node only:
|
||||||
* ifc_uuid is not set, return value will be true.
|
* ifc_uuid is not set, return value will be true.
|
@ -1,4 +1,4 @@
|
|||||||
add_library(mmmon SHARED mmmon.c)
|
add_library(mmmon SHARED mmmon.cc)
|
||||||
target_link_libraries(mmmon maxscale-common)
|
target_link_libraries(mmmon maxscale-common)
|
||||||
add_dependencies(mmmon pcre2)
|
add_dependencies(mmmon pcre2)
|
||||||
set_target_properties(mmmon PROPERTIES VERSION "1.1.1")
|
set_target_properties(mmmon PROPERTIES VERSION "1.1.1")
|
||||||
|
@ -46,6 +46,8 @@ static void detectStaleMaster(void *, int);
|
|||||||
static MXS_MONITORED_SERVER *get_current_master(MXS_MONITOR *);
|
static MXS_MONITORED_SERVER *get_current_master(MXS_MONITOR *);
|
||||||
static bool isMySQLEvent(mxs_monitor_event_t event);
|
static bool isMySQLEvent(mxs_monitor_event_t event);
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
/**
|
/**
|
||||||
* The module entry point routine. It is this routine that
|
* The module entry point routine. It is this routine that
|
||||||
* must populate the structure that is referred to as the
|
* must populate the structure that is referred to as the
|
||||||
@ -100,6 +102,8 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
|
|
||||||
return &info;
|
return &info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
/*lint +e14 */
|
/*lint +e14 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -113,7 +117,7 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
static void *
|
static void *
|
||||||
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
||||||
{
|
{
|
||||||
MM_MONITOR *handle = mon->handle;
|
MM_MONITOR *handle = static_cast<MM_MONITOR*>(mon->handle);
|
||||||
|
|
||||||
if (handle)
|
if (handle)
|
||||||
{
|
{
|
||||||
@ -653,7 +657,7 @@ detectStaleMaster(void *arg, int enable)
|
|||||||
|
|
||||||
static MXS_MONITORED_SERVER *get_current_master(MXS_MONITOR *mon)
|
static MXS_MONITORED_SERVER *get_current_master(MXS_MONITOR *mon)
|
||||||
{
|
{
|
||||||
MM_MONITOR* handle = mon->handle;
|
MM_MONITOR* handle = static_cast<MM_MONITOR*>(mon->handle);
|
||||||
MXS_MONITORED_SERVER *ptr;
|
MXS_MONITORED_SERVER *ptr;
|
||||||
|
|
||||||
ptr = mon->monitored_servers;
|
ptr = mon->monitored_servers;
|
@ -1,4 +1,4 @@
|
|||||||
add_library(ndbclustermon SHARED ndbclustermon.c)
|
add_library(ndbclustermon SHARED ndbclustermon.cc)
|
||||||
target_link_libraries(ndbclustermon maxscale-common)
|
target_link_libraries(ndbclustermon maxscale-common)
|
||||||
add_dependencies(ndbclustermon pcre2)
|
add_dependencies(ndbclustermon pcre2)
|
||||||
set_target_properties(ndbclustermon PROPERTIES VERSION "2.1.0")
|
set_target_properties(ndbclustermon PROPERTIES VERSION "2.1.0")
|
||||||
|
@ -38,6 +38,9 @@ bool isNdbEvent(mxs_monitor_event_t event);
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The module entry point routine. It is this routine that
|
* The module entry point routine. It is this routine that
|
||||||
* must populate the structure that is referred to as the
|
* must populate the structure that is referred to as the
|
||||||
@ -91,6 +94,8 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
|
|
||||||
return &info;
|
return &info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
/*lint +e14 */
|
/*lint +e14 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -103,7 +108,7 @@ MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
static void *
|
static void *
|
||||||
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
startMonitor(MXS_MONITOR *mon, const MXS_CONFIG_PARAMETER *params)
|
||||||
{
|
{
|
||||||
NDBC_MONITOR *handle = mon->handle;
|
NDBC_MONITOR *handle = static_cast<NDBC_MONITOR*>(mon->handle);
|
||||||
bool have_events = false, script_error = false;
|
bool have_events = false, script_error = false;
|
||||||
|
|
||||||
if (handle != NULL)
|
if (handle != NULL)
|
Reference in New Issue
Block a user