MXS-2271 All monitors inherit from MXS_MONITOR
Most of the API entrypoints are replaced with virtual functions.
This commit is contained in:
@ -25,8 +25,7 @@
|
||||
#include <maxscale/mysql_utils.hh>
|
||||
|
||||
|
||||
AuroraMonitor::AuroraMonitor(MXS_MONITOR* monitor)
|
||||
: maxscale::MonitorInstanceSimple(monitor)
|
||||
AuroraMonitor::AuroraMonitor()
|
||||
{
|
||||
}
|
||||
|
||||
@ -35,9 +34,9 @@ AuroraMonitor::~AuroraMonitor()
|
||||
}
|
||||
|
||||
// static
|
||||
AuroraMonitor* AuroraMonitor::create(MXS_MONITOR* monitor)
|
||||
AuroraMonitor* AuroraMonitor::create()
|
||||
{
|
||||
return new AuroraMonitor(monitor);
|
||||
return new AuroraMonitor();
|
||||
}
|
||||
|
||||
bool AuroraMonitor::has_sufficient_permissions() const
|
||||
|
@ -26,12 +26,12 @@ public:
|
||||
AuroraMonitor& operator=(const AuroraMonitor&) = delete;
|
||||
|
||||
~AuroraMonitor();
|
||||
static AuroraMonitor* create(MXS_MONITOR* monitor);
|
||||
static AuroraMonitor* create();
|
||||
|
||||
protected:
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
private:
|
||||
AuroraMonitor(MXS_MONITOR* monitor);
|
||||
AuroraMonitor();
|
||||
};
|
||||
|
@ -27,8 +27,7 @@ const int DEFAULT_HEALTH_PORT = 3581;
|
||||
|
||||
}
|
||||
|
||||
ClustrixMonitor::ClustrixMonitor(MXS_MONITOR* pMonitor)
|
||||
: maxscale::MonitorInstance(pMonitor)
|
||||
ClustrixMonitor::ClustrixMonitor()
|
||||
{
|
||||
}
|
||||
|
||||
@ -37,9 +36,9 @@ ClustrixMonitor::~ClustrixMonitor()
|
||||
}
|
||||
|
||||
//static
|
||||
ClustrixMonitor* ClustrixMonitor::create(MXS_MONITOR* pMonitor)
|
||||
ClustrixMonitor* ClustrixMonitor::create()
|
||||
{
|
||||
return new ClustrixMonitor(pMonitor);
|
||||
return new ClustrixMonitor();
|
||||
}
|
||||
|
||||
bool ClustrixMonitor::configure(const MXS_CONFIG_PARAMETER* pParams)
|
||||
|
@ -60,12 +60,12 @@ public:
|
||||
|
||||
~ClustrixMonitor();
|
||||
|
||||
static ClustrixMonitor* create(MXS_MONITOR* pMonitor);
|
||||
static ClustrixMonitor* create();
|
||||
|
||||
bool configure(const MXS_CONFIG_PARAMETER* pParams) override;
|
||||
|
||||
private:
|
||||
ClustrixMonitor(MXS_MONITOR* pMonitor);
|
||||
ClustrixMonitor();
|
||||
|
||||
void pre_loop() override;
|
||||
void post_loop() override;
|
||||
|
@ -71,9 +71,7 @@ int get_cs_version(MXS_MONITORED_SERVER* srv)
|
||||
}
|
||||
}
|
||||
|
||||
CsMonitor::CsMonitor(MXS_MONITOR* monitor)
|
||||
: maxscale::MonitorInstanceSimple(monitor)
|
||||
, m_primary(config_get_server(monitor->parameters, "primary"))
|
||||
CsMonitor::CsMonitor()
|
||||
{
|
||||
}
|
||||
|
||||
@ -82,9 +80,9 @@ CsMonitor::~CsMonitor()
|
||||
}
|
||||
|
||||
// static
|
||||
CsMonitor* CsMonitor::create(MXS_MONITOR* monitor)
|
||||
CsMonitor* CsMonitor::create()
|
||||
{
|
||||
return new CsMonitor(monitor);
|
||||
return new CsMonitor();
|
||||
}
|
||||
|
||||
bool CsMonitor::has_sufficient_permissions() const
|
||||
@ -116,6 +114,12 @@ void CsMonitor::update_server_status(MXS_MONITORED_SERVER* srv)
|
||||
monitor_set_pending_status(srv, status);
|
||||
}
|
||||
|
||||
bool CsMonitor::configure(const MXS_CONFIG_PARAMETER* pParams)
|
||||
{
|
||||
m_primary = config_get_server(pParams, "primary");
|
||||
return true;
|
||||
}
|
||||
|
||||
extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
||||
{
|
||||
static MXS_MODULE info =
|
||||
|
@ -22,14 +22,15 @@ public:
|
||||
CsMonitor& operator=(const CsMonitor&) = delete;
|
||||
|
||||
~CsMonitor();
|
||||
static CsMonitor* create(MXS_MONITOR* monitor);
|
||||
static CsMonitor* create();
|
||||
|
||||
protected:
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
private:
|
||||
CsMonitor(MXS_MONITOR* monitor);
|
||||
CsMonitor();
|
||||
bool configure(const MXS_CONFIG_PARAMETER* pParams) override;
|
||||
|
||||
SERVER* m_primary;
|
||||
};
|
||||
|
@ -42,9 +42,8 @@ static int compare_node_index(const void*, const void*);
|
||||
static int compare_node_priority(const void*, const void*);
|
||||
static bool using_xtrabackup(MXS_MONITORED_SERVER* database, const char* server_string);
|
||||
|
||||
GaleraMonitor::GaleraMonitor(MXS_MONITOR* mon)
|
||||
: maxscale::MonitorInstanceSimple(mon)
|
||||
, m_disableMasterFailback(0)
|
||||
GaleraMonitor::GaleraMonitor()
|
||||
: m_disableMasterFailback(0)
|
||||
, m_availableWhenDonor(0)
|
||||
, m_disableMasterRoleSetting(0)
|
||||
, m_root_node_as_master(false)
|
||||
@ -60,9 +59,9 @@ GaleraMonitor::~GaleraMonitor()
|
||||
}
|
||||
|
||||
// static
|
||||
GaleraMonitor* GaleraMonitor::create(MXS_MONITOR* monitor)
|
||||
GaleraMonitor* GaleraMonitor::create()
|
||||
{
|
||||
return new GaleraMonitor(monitor);
|
||||
return new GaleraMonitor();
|
||||
}
|
||||
|
||||
void GaleraMonitor::diagnostics(DCB* dcb) const
|
||||
|
@ -43,7 +43,7 @@ public:
|
||||
GaleraMonitor& operator=(const GaleraMonitor&) = delete;
|
||||
|
||||
~GaleraMonitor();
|
||||
static GaleraMonitor* create(MXS_MONITOR* monitor);
|
||||
static GaleraMonitor* create();
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
@ -68,7 +68,7 @@ private:
|
||||
NodeMap m_info; /**< Contains Galera Cluster variables of all nodes */
|
||||
int m_cluster_size; /**< How many nodes in the cluster */
|
||||
|
||||
GaleraMonitor(MXS_MONITOR* monitor);
|
||||
GaleraMonitor();
|
||||
|
||||
bool detect_cluster_size(const int n_nodes,
|
||||
const char* candidate_uuid,
|
||||
|
@ -26,8 +26,7 @@
|
||||
#include <mysqld_error.h>
|
||||
|
||||
|
||||
GRMon::GRMon(MXS_MONITOR* monitor)
|
||||
: MonitorInstanceSimple(monitor)
|
||||
GRMon::GRMon()
|
||||
{
|
||||
}
|
||||
|
||||
@ -35,9 +34,9 @@ GRMon::~GRMon()
|
||||
{
|
||||
}
|
||||
|
||||
GRMon* GRMon::create(MXS_MONITOR* monitor)
|
||||
GRMon* GRMon::create()
|
||||
{
|
||||
return new GRMon(monitor);
|
||||
return new GRMon();
|
||||
}
|
||||
|
||||
bool GRMon::has_sufficient_permissions() const
|
||||
|
@ -26,12 +26,12 @@ public:
|
||||
GRMon& operator&(const GRMon&) = delete;
|
||||
|
||||
~GRMon();
|
||||
static GRMon* create(MXS_MONITOR* monitor);
|
||||
static GRMon* create();
|
||||
|
||||
protected:
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
private:
|
||||
GRMon(MXS_MONITOR* monitor);
|
||||
GRMon();
|
||||
};
|
||||
|
@ -59,8 +59,7 @@ static const char CN_REPLICATION_PASSWORD[] = "replication_password";
|
||||
static const char DIAG_ERROR[] = "Internal error, could not print diagnostics. "
|
||||
"Check log for more information.";
|
||||
|
||||
MariaDBMonitor::MariaDBMonitor(MXS_MONITOR* monitor)
|
||||
: maxscale::MonitorInstance(monitor)
|
||||
MariaDBMonitor::MariaDBMonitor()
|
||||
{
|
||||
}
|
||||
|
||||
@ -173,9 +172,9 @@ bool MariaDBMonitor::set_replication_credentials(const MXS_CONFIG_PARAMETER* par
|
||||
return rval;
|
||||
}
|
||||
|
||||
MariaDBMonitor* MariaDBMonitor::create(MXS_MONITOR* monitor)
|
||||
MariaDBMonitor* MariaDBMonitor::create()
|
||||
{
|
||||
return new MariaDBMonitor(monitor);
|
||||
return new MariaDBMonitor();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -845,7 +844,7 @@ bool handle_manual_switchover(const MODULECMD_ARG* args, json_t** error_out)
|
||||
else
|
||||
{
|
||||
MXS_MONITOR* mon = args->argv[0].value.monitor;
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon->instance);
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon);
|
||||
SERVER* promotion_server = (args->argc >= 2) ? args->argv[1].value.server : NULL;
|
||||
SERVER* demotion_server = (args->argc == 3) ? args->argv[2].value.server : NULL;
|
||||
rval = handle->run_manual_switchover(promotion_server, demotion_server, error_out);
|
||||
@ -873,7 +872,7 @@ bool handle_manual_failover(const MODULECMD_ARG* args, json_t** output)
|
||||
else
|
||||
{
|
||||
MXS_MONITOR* mon = args->argv[0].value.monitor;
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon->instance);
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon);
|
||||
rv = handle->run_manual_failover(output);
|
||||
}
|
||||
return rv;
|
||||
@ -901,7 +900,7 @@ bool handle_manual_rejoin(const MODULECMD_ARG* args, json_t** output)
|
||||
{
|
||||
MXS_MONITOR* mon = args->argv[0].value.monitor;
|
||||
SERVER* server = args->argv[1].value.server;
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon->instance);
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon);
|
||||
rv = handle->run_manual_rejoin(server, output);
|
||||
}
|
||||
return rv;
|
||||
@ -923,7 +922,7 @@ bool handle_manual_reset_replication(const MODULECMD_ARG* args, json_t** output)
|
||||
{
|
||||
MXS_MONITOR* mon = args->argv[0].value.monitor;
|
||||
SERVER* server = args->argv[1].value.server;
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon->instance);
|
||||
auto handle = static_cast<MariaDBMonitor*>(mon);
|
||||
rv = handle->run_manual_reset_replication(server, output);
|
||||
}
|
||||
return rv;
|
||||
|
@ -51,7 +51,7 @@ public:
|
||||
* @param monitor Generic monitor data
|
||||
* @return MariaDBMonitor instance
|
||||
*/
|
||||
static MariaDBMonitor* create(MXS_MONITOR* monitor);
|
||||
static MariaDBMonitor* create();
|
||||
|
||||
~MariaDBMonitor();
|
||||
|
||||
@ -236,7 +236,7 @@ private:
|
||||
* gtid:s? */
|
||||
|
||||
// Base methods
|
||||
MariaDBMonitor(MXS_MONITOR* monitor_base);
|
||||
MariaDBMonitor();
|
||||
bool configure(const MXS_CONFIG_PARAMETER* params);
|
||||
bool set_replication_credentials(const MXS_CONFIG_PARAMETER* params);
|
||||
void reset_server_info();
|
||||
|
@ -90,7 +90,7 @@ int main()
|
||||
}
|
||||
|
||||
MariaDBMonitor::Test::Test(bool use_hostnames)
|
||||
: m_monitor(new MariaDBMonitor(NULL))
|
||||
: m_monitor(new MariaDBMonitor())
|
||||
, m_use_hostnames(use_hostnames)
|
||||
{
|
||||
}
|
||||
|
@ -34,9 +34,8 @@
|
||||
static void detectStaleMaster(void*, int);
|
||||
static bool isMySQLEvent(mxs_monitor_event_t event);
|
||||
|
||||
MMMonitor::MMMonitor(MXS_MONITOR* monitor)
|
||||
: maxscale::MonitorInstanceSimple(monitor)
|
||||
, m_detectStaleMaster(false)
|
||||
MMMonitor::MMMonitor()
|
||||
: m_detectStaleMaster(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -45,9 +44,9 @@ MMMonitor::~MMMonitor()
|
||||
}
|
||||
|
||||
// static
|
||||
MMMonitor* MMMonitor::create(MXS_MONITOR* monitor)
|
||||
MMMonitor* MMMonitor::create()
|
||||
{
|
||||
return new MMMonitor(monitor);
|
||||
return new MMMonitor();
|
||||
}
|
||||
|
||||
void MMMonitor::diagnostics(DCB* dcb) const
|
||||
|
@ -26,7 +26,7 @@ public:
|
||||
MMMonitor& operator=(const MMMonitor&) = delete;
|
||||
|
||||
~MMMonitor();
|
||||
static MMMonitor* create(MXS_MONITOR* monitor);
|
||||
static MMMonitor* create();
|
||||
void diagnostics(DCB* dcb) const;
|
||||
json_t* diagnostics_json() const;
|
||||
|
||||
@ -39,7 +39,7 @@ protected:
|
||||
private:
|
||||
int m_detectStaleMaster; /**< Monitor flag for Stale Master detection */
|
||||
|
||||
MMMonitor(MXS_MONITOR* monitor);
|
||||
MMMonitor();
|
||||
|
||||
MXS_MONITORED_SERVER* get_current_master();
|
||||
};
|
||||
|
@ -22,8 +22,7 @@
|
||||
#include <maxscale/mysql_utils.hh>
|
||||
|
||||
|
||||
NDBCMonitor::NDBCMonitor(MXS_MONITOR* monitor)
|
||||
: maxscale::MonitorInstanceSimple(monitor)
|
||||
NDBCMonitor::NDBCMonitor()
|
||||
{
|
||||
}
|
||||
|
||||
@ -32,9 +31,9 @@ NDBCMonitor::~NDBCMonitor()
|
||||
}
|
||||
|
||||
// static
|
||||
NDBCMonitor* NDBCMonitor::create(MXS_MONITOR* monitor)
|
||||
NDBCMonitor* NDBCMonitor::create()
|
||||
{
|
||||
return new NDBCMonitor(monitor);
|
||||
return new NDBCMonitor();
|
||||
}
|
||||
|
||||
bool NDBCMonitor::has_sufficient_permissions() const
|
||||
|
@ -26,12 +26,12 @@ public:
|
||||
NDBCMonitor& operator=(const NDBCMonitor&) = delete;
|
||||
|
||||
~NDBCMonitor();
|
||||
static NDBCMonitor* create(MXS_MONITOR* monitor);
|
||||
static NDBCMonitor* create();
|
||||
|
||||
protected:
|
||||
bool has_sufficient_permissions() const;
|
||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||
|
||||
private:
|
||||
NDBCMonitor(MXS_MONITOR* monitor);
|
||||
NDBCMonitor();
|
||||
};
|
||||
|
Reference in New Issue
Block a user