MXS-1775 Make general cleanup
Document and rearrrange so that things look nice and tidy.
This commit is contained in:
@ -40,6 +40,26 @@ AuroraMonitor* AuroraMonitor::create(MXS_MONITOR* monitor)
|
||||
return new AuroraMonitor(monitor);
|
||||
}
|
||||
|
||||
void AuroraMonitor::diagnostics(DCB *dcb) const
|
||||
{
|
||||
}
|
||||
|
||||
json_t* AuroraMonitor::diagnostics_json() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void AuroraMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
}
|
||||
|
||||
bool AuroraMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SELECT @@aurora_server_id, server_id FROM "
|
||||
"information_schema.replica_host_status "
|
||||
"WHERE session_id = 'MASTER_SESSION_ID'");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Update the status of a server
|
||||
*
|
||||
@ -80,38 +100,6 @@ void AuroraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
|
||||
}
|
||||
}
|
||||
|
||||
bool AuroraMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SELECT @@aurora_server_id, server_id FROM "
|
||||
"information_schema.replica_host_status "
|
||||
"WHERE session_id = 'MASTER_SESSION_ID'");
|
||||
}
|
||||
|
||||
void AuroraMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param dcb DCB to send output
|
||||
* @param mon The monitor
|
||||
*/
|
||||
void AuroraMonitor::diagnostics(DCB *dcb) const
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param dcb DCB to send output
|
||||
* @param mon The monitor
|
||||
*/
|
||||
json_t* AuroraMonitor::diagnostics_json() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
|
@ -31,11 +31,11 @@ public:
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
private:
|
||||
AuroraMonitor(MXS_MONITOR* monitor);
|
||||
|
||||
protected:
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
bool has_sufficient_permissions() const;
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
private:
|
||||
AuroraMonitor(MXS_MONITOR* monitor);
|
||||
};
|
||||
|
@ -40,11 +40,11 @@ static bool warn_erange_on_local_index = true;
|
||||
|
||||
static MXS_MONITORED_SERVER *set_cluster_master(MXS_MONITORED_SERVER *, MXS_MONITORED_SERVER *, int);
|
||||
static void disableMasterFailback(void *, int);
|
||||
bool isGaleraEvent(mxs_monitor_event_t event);
|
||||
static int compare_node_index(const void*, const void*);
|
||||
static int compare_node_priority(const void*, const void*);
|
||||
static GALERA_NODE_INFO *nodeval_dup(const GALERA_NODE_INFO *);
|
||||
static void nodeval_free(GALERA_NODE_INFO *);
|
||||
static bool using_xtrabackup(MXS_MONITORED_SERVER *database, const char* server_string);
|
||||
|
||||
GaleraMonitor::GaleraMonitor(MXS_MONITOR *mon)
|
||||
: maxscale::MonitorInstance(mon)
|
||||
@ -89,31 +89,6 @@ GaleraMonitor* GaleraMonitor::create(MXS_MONITOR* monitor)
|
||||
return new GaleraMonitor(monitor);
|
||||
}
|
||||
|
||||
bool GaleraMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SHOW STATUS LIKE 'wsrep_local_state'");
|
||||
}
|
||||
|
||||
void GaleraMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
m_disableMasterFailback = config_get_bool(params, "disable_master_failback");
|
||||
m_availableWhenDonor = config_get_bool(params, "available_when_donor");
|
||||
m_disableMasterRoleSetting = config_get_bool(params, "disable_master_role_setting");
|
||||
m_root_node_as_master = config_get_bool(params, "root_node_as_master");
|
||||
m_use_priority = config_get_bool(params, "use_priority");
|
||||
m_set_donor_nodes = config_get_bool(params, "set_donor_nodes");
|
||||
m_log_no_members = true;
|
||||
|
||||
/* Reset all data in the hashtable */
|
||||
reset_cluster_info();
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param dcb DCB to send output
|
||||
* @param arg The monitor handle
|
||||
*/
|
||||
void GaleraMonitor::diagnostics(DCB *dcb) const
|
||||
{
|
||||
dcb_printf(dcb, "Master Failback:\t%s\n", (m_disableMasterFailback == 1) ? "off" : "on");
|
||||
@ -132,11 +107,6 @@ void GaleraMonitor::diagnostics(DCB *dcb) const
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param arg The monitor handle
|
||||
*/
|
||||
json_t* GaleraMonitor::diagnostics_json() const
|
||||
{
|
||||
json_t* rval = json_object();
|
||||
@ -160,48 +130,25 @@ json_t* GaleraMonitor::diagnostics_json() const
|
||||
return rval;
|
||||
}
|
||||
|
||||
static bool using_xtrabackup(MXS_MONITORED_SERVER *database, const char* server_string)
|
||||
void GaleraMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
bool rval = false;
|
||||
MYSQL_RES* result;
|
||||
m_disableMasterFailback = config_get_bool(params, "disable_master_failback");
|
||||
m_availableWhenDonor = config_get_bool(params, "available_when_donor");
|
||||
m_disableMasterRoleSetting = config_get_bool(params, "disable_master_role_setting");
|
||||
m_root_node_as_master = config_get_bool(params, "root_node_as_master");
|
||||
m_use_priority = config_get_bool(params, "use_priority");
|
||||
m_set_donor_nodes = config_get_bool(params, "set_donor_nodes");
|
||||
m_log_no_members = true;
|
||||
|
||||
if (mxs_mysql_query(database->con, "SHOW VARIABLES LIKE 'wsrep_sst_method'") == 0
|
||||
&& (result = mysql_store_result(database->con)) != NULL)
|
||||
{
|
||||
if (mysql_field_count(database->con) < 2)
|
||||
{
|
||||
mysql_free_result(result);
|
||||
MXS_ERROR("Unexpected result for \"SHOW VARIABLES LIKE "
|
||||
"'wsrep_sst_method'\". Expected 2 columns."
|
||||
" MySQL Version: %s", server_string);
|
||||
}
|
||||
|
||||
MYSQL_ROW row;
|
||||
|
||||
while ((row = mysql_fetch_row(result)))
|
||||
{
|
||||
if (row[1] && strncmp(row[1], "xtrabackup", 10) == 0)
|
||||
{
|
||||
rval = true;
|
||||
}
|
||||
}
|
||||
mysql_free_result(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
mon_report_query_error(database);
|
||||
}
|
||||
|
||||
return rval;
|
||||
/* Reset all data in the hashtable */
|
||||
reset_cluster_info();
|
||||
}
|
||||
|
||||
bool GaleraMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SHOW STATUS LIKE 'wsrep_local_state'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor an individual server. Does not deal with the setting of master or
|
||||
* slave bits, except for clearing them when a server is not joined to the
|
||||
* cluster.
|
||||
*
|
||||
* @param monitored_server The server to probe.
|
||||
*/
|
||||
void GaleraMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
|
||||
{
|
||||
MYSQL_ROW row;
|
||||
@ -436,6 +383,41 @@ void GaleraMonitor::tick()
|
||||
}
|
||||
}
|
||||
|
||||
static bool using_xtrabackup(MXS_MONITORED_SERVER *database, const char* server_string)
|
||||
{
|
||||
bool rval = false;
|
||||
MYSQL_RES* result;
|
||||
|
||||
if (mxs_mysql_query(database->con, "SHOW VARIABLES LIKE 'wsrep_sst_method'") == 0
|
||||
&& (result = mysql_store_result(database->con)) != NULL)
|
||||
{
|
||||
if (mysql_field_count(database->con) < 2)
|
||||
{
|
||||
mysql_free_result(result);
|
||||
MXS_ERROR("Unexpected result for \"SHOW VARIABLES LIKE "
|
||||
"'wsrep_sst_method'\". Expected 2 columns."
|
||||
" MySQL Version: %s", server_string);
|
||||
}
|
||||
|
||||
MYSQL_ROW row;
|
||||
|
||||
while ((row = mysql_fetch_row(result)))
|
||||
{
|
||||
if (row[1] && strncmp(row[1], "xtrabackup", 10) == 0)
|
||||
{
|
||||
rval = true;
|
||||
}
|
||||
}
|
||||
mysql_free_result(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
mon_report_query_error(database);
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* get candidate master from all nodes
|
||||
*
|
||||
|
@ -63,6 +63,12 @@ public:
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
protected:
|
||||
void configure(const MXS_CONFIG_PARAMETER* param);
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
void tick();
|
||||
|
||||
private:
|
||||
unsigned long m_id; /**< Monitor ID */
|
||||
int m_disableMasterFailback; /**< Monitor flag for Galera Cluster Master failback */
|
||||
@ -83,13 +89,8 @@ private:
|
||||
const char *candidate_uuid,
|
||||
const int candidate_size);
|
||||
MXS_MONITORED_SERVER *get_candidate_master();
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
void reset_cluster_info();
|
||||
void set_cluster_members();
|
||||
void set_galera_cluster();
|
||||
void update_sst_donor_nodes(int is_cluster);
|
||||
|
||||
bool has_sufficient_permissions() const;
|
||||
void configure(const MXS_CONFIG_PARAMETER* param);
|
||||
void tick();
|
||||
};
|
||||
|
@ -40,15 +40,6 @@ GRMon* GRMon::create(MXS_MONITOR* monitor)
|
||||
return new GRMon(monitor);
|
||||
}
|
||||
|
||||
bool GRMon::has_sufficient_permissions() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void GRMon::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
}
|
||||
|
||||
void GRMon::diagnostics(DCB* dcb) const
|
||||
{
|
||||
}
|
||||
@ -58,6 +49,15 @@ json_t* GRMon::diagnostics_json() const
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void GRMon::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
}
|
||||
|
||||
bool GRMon::has_sufficient_permissions() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline bool is_false(const char* value)
|
||||
{
|
||||
return strcasecmp(value, "0") == 0 ||
|
||||
|
@ -31,11 +31,11 @@ public:
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
private:
|
||||
GRMon(MXS_MONITOR* monitor);
|
||||
|
||||
protected:
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
bool has_sufficient_permissions() const;
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
private:
|
||||
GRMon(MXS_MONITOR* monitor);
|
||||
};
|
||||
|
@ -52,32 +52,11 @@ MMMonitor* MMMonitor::create(MXS_MONITOR* monitor)
|
||||
return new MMMonitor(monitor);
|
||||
}
|
||||
|
||||
bool MMMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SHOW SLAVE STATUS");
|
||||
}
|
||||
|
||||
void MMMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
m_detectStaleMaster = config_get_bool(params, "detect_stale_master");
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param dcb DCB to print diagnostics
|
||||
* @param arg The monitor handle
|
||||
*/
|
||||
void MMMonitor::diagnostics(DCB *dcb) const
|
||||
{
|
||||
dcb_printf(dcb, "Detect Stale Master:\t%s\n", (m_detectStaleMaster == 1) ? "enabled" : "disabled");
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param arg The monitor handle
|
||||
*/
|
||||
json_t* MMMonitor::diagnostics_json() const
|
||||
{
|
||||
json_t* rval = json_object();
|
||||
@ -85,11 +64,16 @@ json_t* MMMonitor::diagnostics_json() const
|
||||
return rval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor an individual server
|
||||
*
|
||||
* @param monitored_server The server to probe
|
||||
*/
|
||||
void MMMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
m_detectStaleMaster = config_get_bool(params, "detect_stale_master");
|
||||
}
|
||||
|
||||
bool MMMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SHOW SLAVE STATUS");
|
||||
}
|
||||
|
||||
void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
|
||||
{
|
||||
MYSQL_ROW row;
|
||||
|
@ -31,6 +31,12 @@ public:
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
protected:
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
void tick();
|
||||
|
||||
private:
|
||||
unsigned long m_id; /**< Monitor ID */
|
||||
int m_detectStaleMaster; /**< Monitor flag for Stale Master detection */
|
||||
@ -38,10 +44,4 @@ private:
|
||||
MMMonitor(MXS_MONITOR* monitor);
|
||||
|
||||
MXS_MONITORED_SERVER *get_current_master();
|
||||
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
bool has_sufficient_permissions() const;
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
void tick();
|
||||
};
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include <maxscale/alloc.h>
|
||||
#include <maxscale/mysql_utils.h>
|
||||
|
||||
bool isNdbEvent(mxs_monitor_event_t event);
|
||||
|
||||
NDBCMonitor::NDBCMonitor(MXS_MONITOR *monitor)
|
||||
: maxscale::MonitorInstance(monitor)
|
||||
@ -39,42 +38,24 @@ NDBCMonitor* NDBCMonitor::create(MXS_MONITOR* monitor)
|
||||
return new NDBCMonitor(monitor);
|
||||
}
|
||||
|
||||
bool NDBCMonitor::has_sufficient_permissions() const
|
||||
void NDBCMonitor::diagnostics(DCB *dcb) const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SHOW STATUS LIKE 'Ndb_number_of_ready_data_nodes'");
|
||||
}
|
||||
|
||||
json_t* NDBCMonitor::diagnostics_json() const
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void NDBCMonitor::configure(const MXS_CONFIG_PARAMETER* params)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param dcb DCB to send output
|
||||
* @param arg The monitor handle
|
||||
*/
|
||||
static void
|
||||
diagnostics(const MXS_MONITOR_INSTANCE *mon, DCB *dcb)
|
||||
bool NDBCMonitor::has_sufficient_permissions() const
|
||||
{
|
||||
return check_monitor_permissions(m_monitor, "SHOW STATUS LIKE 'Ndb_number_of_ready_data_nodes'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Diagnostic interface
|
||||
*
|
||||
* @param dcb DCB to send output
|
||||
* @param arg The monitor handle
|
||||
*/
|
||||
static json_t* diagnostics_json(const MXS_MONITOR_INSTANCE *mon)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Monitor an individual server
|
||||
*
|
||||
* @param database The database to probe
|
||||
*/
|
||||
void NDBCMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
|
||||
{
|
||||
MYSQL_ROW row;
|
||||
|
@ -31,13 +31,13 @@ public:
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
protected:
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
private:
|
||||
unsigned long m_id; /**< Monitor ID */
|
||||
|
||||
NDBCMonitor(MXS_MONITOR* monitor);
|
||||
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
bool has_sufficient_permissions() const;
|
||||
void configure(const MXS_CONFIG_PARAMETER* params);
|
||||
};
|
||||
|
Reference in New Issue
Block a user