MXS-2271 Monitor config name and instance name are parameters of createInstance()
Also adds/moves some comments from previous entrypoints. Name and module are now constant fields.
This commit is contained in:
@ -51,9 +51,11 @@ struct MXS_MONITOR_API
|
|||||||
* If the function fails, MaxScale will not start. The returned object must inherit from
|
* If the function fails, MaxScale will not start. The returned object must inherit from
|
||||||
* the abstract base monitor class and implement the missing methods.
|
* the abstract base monitor class and implement the missing methods.
|
||||||
*
|
*
|
||||||
|
* @param name Configuration name of the monitor
|
||||||
|
* @param module Module name of the monitor
|
||||||
* @return Monitor object
|
* @return Monitor object
|
||||||
*/
|
*/
|
||||||
Monitor* (* createInstance)();
|
Monitor* (* createInstance)(const std::string& name, const std::string& module);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -164,7 +166,7 @@ inline mxb::intrusive_slist_iterator<MXS_MONITORED_SERVER> end(MXS_MONITORED_SER
|
|||||||
class Monitor
|
class Monitor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Monitor();
|
Monitor(const std::string& name, const std::string& module);
|
||||||
virtual ~Monitor();
|
virtual ~Monitor();
|
||||||
virtual bool configure(const MXS_CONFIG_PARAMETER* params) = 0;
|
virtual bool configure(const MXS_CONFIG_PARAMETER* params) = 0;
|
||||||
|
|
||||||
@ -198,8 +200,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual json_t* diagnostics_json() const = 0;
|
virtual json_t* diagnostics_json() const = 0;
|
||||||
|
|
||||||
char* name; /**< Monitor instance name */
|
const char* const name; /**< Monitor instance name. TODO: change to string */
|
||||||
std::string module_name; /**< Name of the monitor module */
|
const std::string module_name; /**< Name of the monitor module */
|
||||||
Monitor* next; /**< Next monitor in the linked list */
|
Monitor* next; /**< Next monitor in the linked list */
|
||||||
|
|
||||||
mutable std::mutex lock;
|
mutable std::mutex lock;
|
||||||
@ -429,6 +431,9 @@ void monitor_debug_wait();
|
|||||||
namespace maxscale
|
namespace maxscale
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An abstract class which helps implement a monitor based on a maxbase::Worker thread.
|
||||||
|
*/
|
||||||
class MonitorWorker : public Monitor
|
class MonitorWorker : public Monitor
|
||||||
, protected maxbase::Worker
|
, protected maxbase::Worker
|
||||||
{
|
{
|
||||||
@ -525,7 +530,7 @@ public:
|
|||||||
static int64_t get_time_ms();
|
static int64_t get_time_ms();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MonitorWorker();
|
MonitorWorker(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Should the monitor shut down?
|
* @brief Should the monitor shut down?
|
||||||
@ -649,7 +654,8 @@ public:
|
|||||||
MonitorWorkerSimple& operator=(const MonitorWorkerSimple&) = delete;
|
MonitorWorkerSimple& operator=(const MonitorWorkerSimple&) = delete;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
MonitorWorkerSimple()
|
MonitorWorkerSimple(const std::string& name, const std::string& module)
|
||||||
|
: MonitorWorker(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -707,10 +713,10 @@ public:
|
|||||||
MonitorApi(const MonitorApi&) = delete;
|
MonitorApi(const MonitorApi&) = delete;
|
||||||
MonitorApi& operator=(const MonitorApi&) = delete;
|
MonitorApi& operator=(const MonitorApi&) = delete;
|
||||||
|
|
||||||
static Monitor* createInstance()
|
static Monitor* createInstance(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
MonitorInstance* pInstance = NULL;
|
MonitorInstance* pInstance = NULL;
|
||||||
MXS_EXCEPTION_GUARD(pInstance = MonitorInstance::create());
|
MXS_EXCEPTION_GUARD(pInstance = MonitorInstance::create(name, module));
|
||||||
return pInstance;
|
return pInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -106,7 +106,7 @@ Monitor* MonitorManager::create_monitor(const string& name, const string& module
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Monitor* mon = api->createInstance();
|
Monitor* mon = api->createInstance(name, module);
|
||||||
if (!mon)
|
if (!mon)
|
||||||
{
|
{
|
||||||
MXS_ERROR("Unable to create monitor instance for '%s', using module '%s'.",
|
MXS_ERROR("Unable to create monitor instance for '%s', using module '%s'.",
|
||||||
@ -114,10 +114,6 @@ Monitor* MonitorManager::create_monitor(const string& name, const string& module
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// These initializations are kept outside the constructor to keep it simple.
|
|
||||||
mon->name = MXS_STRDUP_A(name.c_str());
|
|
||||||
mon->module_name = module;
|
|
||||||
|
|
||||||
if (mon->configure_base(params)) // TODO: Move derived class configure() here
|
if (mon->configure_base(params)) // TODO: Move derived class configure() here
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> guard(monLock);
|
std::lock_guard<std::mutex> guard(monLock);
|
||||||
@ -132,7 +128,9 @@ Monitor* MonitorManager::create_monitor(const string& name, const string& module
|
|||||||
return mon;
|
return mon;
|
||||||
}
|
}
|
||||||
|
|
||||||
Monitor::Monitor()
|
Monitor::Monitor(const string& name, const string& module)
|
||||||
|
: name(MXS_STRDUP_A(name.c_str()))
|
||||||
|
, module_name(module)
|
||||||
{
|
{
|
||||||
memset(journal_hash, 0, sizeof(journal_hash));
|
memset(journal_hash, 0, sizeof(journal_hash));
|
||||||
}
|
}
|
||||||
@ -210,7 +208,7 @@ Monitor::~Monitor()
|
|||||||
delete disk_space_threshold;
|
delete disk_space_threshold;
|
||||||
config_parameter_free(parameters);
|
config_parameter_free(parameters);
|
||||||
monitor_server_free_all(monitored_servers);
|
monitor_server_free_all(monitored_servers);
|
||||||
MXS_FREE(name);
|
MXS_FREE((const_cast<char*>(name)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MonitorManager::destroy_all_monitors()
|
void MonitorManager::destroy_all_monitors()
|
||||||
@ -2429,8 +2427,9 @@ void monitor_debug_wait()
|
|||||||
namespace maxscale
|
namespace maxscale
|
||||||
{
|
{
|
||||||
|
|
||||||
MonitorWorker::MonitorWorker()
|
MonitorWorker::MonitorWorker(const string& name, const string& module)
|
||||||
: m_monitor(this)
|
: Monitor(name, module)
|
||||||
|
, m_monitor(this)
|
||||||
, m_master(NULL)
|
, m_master(NULL)
|
||||||
, m_thread_running(false)
|
, m_thread_running(false)
|
||||||
, m_shutdown(0)
|
, m_shutdown(0)
|
||||||
|
|||||||
@ -25,7 +25,8 @@
|
|||||||
#include <maxscale/mysql_utils.hh>
|
#include <maxscale/mysql_utils.hh>
|
||||||
|
|
||||||
|
|
||||||
AuroraMonitor::AuroraMonitor()
|
AuroraMonitor::AuroraMonitor(const std::string& name, const std::string& module)
|
||||||
|
: MonitorWorkerSimple(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,9 +35,9 @@ AuroraMonitor::~AuroraMonitor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
AuroraMonitor* AuroraMonitor::create()
|
AuroraMonitor* AuroraMonitor::create(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
return new AuroraMonitor();
|
return new AuroraMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AuroraMonitor::has_sufficient_permissions() const
|
bool AuroraMonitor::has_sufficient_permissions() const
|
||||||
|
|||||||
@ -26,12 +26,12 @@ public:
|
|||||||
AuroraMonitor& operator=(const AuroraMonitor&) = delete;
|
AuroraMonitor& operator=(const AuroraMonitor&) = delete;
|
||||||
|
|
||||||
~AuroraMonitor();
|
~AuroraMonitor();
|
||||||
static AuroraMonitor* create();
|
static AuroraMonitor* create(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool has_sufficient_permissions() const;
|
bool has_sufficient_permissions() const;
|
||||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AuroraMonitor();
|
AuroraMonitor(const std::string& name, const std::string& module);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -27,7 +27,8 @@ const int DEFAULT_HEALTH_PORT = 3581;
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ClustrixMonitor::ClustrixMonitor()
|
ClustrixMonitor::ClustrixMonitor(const string& name, const string& module)
|
||||||
|
: MonitorWorker(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,9 +37,9 @@ ClustrixMonitor::~ClustrixMonitor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//static
|
//static
|
||||||
ClustrixMonitor* ClustrixMonitor::create()
|
ClustrixMonitor* ClustrixMonitor::create(const string& name, const string& module)
|
||||||
{
|
{
|
||||||
return new ClustrixMonitor();
|
return new ClustrixMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClustrixMonitor::configure(const MXS_CONFIG_PARAMETER* pParams)
|
bool ClustrixMonitor::configure(const MXS_CONFIG_PARAMETER* pParams)
|
||||||
|
|||||||
@ -60,12 +60,12 @@ public:
|
|||||||
|
|
||||||
~ClustrixMonitor();
|
~ClustrixMonitor();
|
||||||
|
|
||||||
static ClustrixMonitor* create();
|
static ClustrixMonitor* create(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
bool configure(const MXS_CONFIG_PARAMETER* pParams) override;
|
bool configure(const MXS_CONFIG_PARAMETER* pParams) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ClustrixMonitor();
|
ClustrixMonitor(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
void pre_loop() override;
|
void pre_loop() override;
|
||||||
void post_loop() override;
|
void post_loop() override;
|
||||||
|
|||||||
@ -71,7 +71,8 @@ int get_cs_version(MXS_MONITORED_SERVER* srv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CsMonitor::CsMonitor()
|
CsMonitor::CsMonitor(const std::string& name, const std::string& module)
|
||||||
|
: MonitorWorkerSimple(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,9 +81,9 @@ CsMonitor::~CsMonitor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
CsMonitor* CsMonitor::create()
|
CsMonitor* CsMonitor::create(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
return new CsMonitor();
|
return new CsMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CsMonitor::has_sufficient_permissions() const
|
bool CsMonitor::has_sufficient_permissions() const
|
||||||
|
|||||||
@ -22,14 +22,14 @@ public:
|
|||||||
CsMonitor& operator=(const CsMonitor&) = delete;
|
CsMonitor& operator=(const CsMonitor&) = delete;
|
||||||
|
|
||||||
~CsMonitor();
|
~CsMonitor();
|
||||||
static CsMonitor* create();
|
static CsMonitor* create(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool has_sufficient_permissions() const;
|
bool has_sufficient_permissions() const;
|
||||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CsMonitor();
|
CsMonitor(const std::string& name, const std::string& module);
|
||||||
bool configure(const MXS_CONFIG_PARAMETER* pParams) override;
|
bool configure(const MXS_CONFIG_PARAMETER* pParams) override;
|
||||||
|
|
||||||
SERVER* m_primary;
|
SERVER* m_primary;
|
||||||
|
|||||||
@ -42,8 +42,9 @@ static int compare_node_index(const void*, const void*);
|
|||||||
static int compare_node_priority(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);
|
static bool using_xtrabackup(MXS_MONITORED_SERVER* database, const char* server_string);
|
||||||
|
|
||||||
GaleraMonitor::GaleraMonitor()
|
GaleraMonitor::GaleraMonitor(const std::string& name, const std::string& module)
|
||||||
: m_disableMasterFailback(0)
|
: MonitorWorkerSimple(name, module)
|
||||||
|
, m_disableMasterFailback(0)
|
||||||
, m_availableWhenDonor(0)
|
, m_availableWhenDonor(0)
|
||||||
, m_disableMasterRoleSetting(0)
|
, m_disableMasterRoleSetting(0)
|
||||||
, m_root_node_as_master(false)
|
, m_root_node_as_master(false)
|
||||||
@ -59,9 +60,9 @@ GaleraMonitor::~GaleraMonitor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
GaleraMonitor* GaleraMonitor::create()
|
GaleraMonitor* GaleraMonitor::create(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
return new GaleraMonitor();
|
return new GaleraMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GaleraMonitor::diagnostics(DCB* dcb) const
|
void GaleraMonitor::diagnostics(DCB* dcb) const
|
||||||
|
|||||||
@ -17,9 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <maxscale/ccdefs.hh>
|
#include <maxscale/ccdefs.hh>
|
||||||
|
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
#include <maxscale/monitor.hh>
|
#include <maxscale/monitor.hh>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,7 +41,7 @@ public:
|
|||||||
GaleraMonitor& operator=(const GaleraMonitor&) = delete;
|
GaleraMonitor& operator=(const GaleraMonitor&) = delete;
|
||||||
|
|
||||||
~GaleraMonitor();
|
~GaleraMonitor();
|
||||||
static GaleraMonitor* create();
|
static GaleraMonitor* create(const std::string& name, const std::string& module);
|
||||||
void diagnostics(DCB* dcb) const;
|
void diagnostics(DCB* dcb) const;
|
||||||
json_t* diagnostics_json() const;
|
json_t* diagnostics_json() const;
|
||||||
|
|
||||||
@ -68,7 +66,7 @@ private:
|
|||||||
NodeMap m_info; /**< Contains Galera Cluster variables of all nodes */
|
NodeMap m_info; /**< Contains Galera Cluster variables of all nodes */
|
||||||
int m_cluster_size; /**< How many nodes in the cluster */
|
int m_cluster_size; /**< How many nodes in the cluster */
|
||||||
|
|
||||||
GaleraMonitor();
|
GaleraMonitor(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
bool detect_cluster_size(const int n_nodes,
|
bool detect_cluster_size(const int n_nodes,
|
||||||
const char* candidate_uuid,
|
const char* candidate_uuid,
|
||||||
|
|||||||
@ -26,7 +26,8 @@
|
|||||||
#include <mysqld_error.h>
|
#include <mysqld_error.h>
|
||||||
|
|
||||||
|
|
||||||
GRMon::GRMon()
|
GRMon::GRMon(const std::string& name, const std::string& module)
|
||||||
|
: MonitorWorkerSimple(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,9 +35,9 @@ GRMon::~GRMon()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
GRMon* GRMon::create()
|
GRMon* GRMon::create(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
return new GRMon();
|
return new GRMon(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GRMon::has_sufficient_permissions() const
|
bool GRMon::has_sufficient_permissions() const
|
||||||
|
|||||||
@ -26,12 +26,12 @@ public:
|
|||||||
GRMon& operator&(const GRMon&) = delete;
|
GRMon& operator&(const GRMon&) = delete;
|
||||||
|
|
||||||
~GRMon();
|
~GRMon();
|
||||||
static GRMon* create();
|
static GRMon* create(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool has_sufficient_permissions() const;
|
bool has_sufficient_permissions() const;
|
||||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
GRMon();
|
GRMon(const std::string& name, const std::string& module);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -59,7 +59,8 @@ static const char CN_REPLICATION_PASSWORD[] = "replication_password";
|
|||||||
static const char DIAG_ERROR[] = "Internal error, could not print diagnostics. "
|
static const char DIAG_ERROR[] = "Internal error, could not print diagnostics. "
|
||||||
"Check log for more information.";
|
"Check log for more information.";
|
||||||
|
|
||||||
MariaDBMonitor::MariaDBMonitor()
|
MariaDBMonitor::MariaDBMonitor(const string& name, const string& module)
|
||||||
|
: MonitorWorker(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,9 +173,9 @@ bool MariaDBMonitor::set_replication_credentials(const MXS_CONFIG_PARAMETER* par
|
|||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
MariaDBMonitor* MariaDBMonitor::create()
|
MariaDBMonitor* MariaDBMonitor::create(const string& name, const string& module)
|
||||||
{
|
{
|
||||||
return new MariaDBMonitor();
|
return new MariaDBMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -48,10 +48,11 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Create the monitor instance and return the instance data.
|
* Create the monitor instance and return the instance data.
|
||||||
*
|
*
|
||||||
* @param monitor Generic monitor data
|
* @param name Monitor config name
|
||||||
|
* @param module Module name
|
||||||
* @return MariaDBMonitor instance
|
* @return MariaDBMonitor instance
|
||||||
*/
|
*/
|
||||||
static MariaDBMonitor* create();
|
static MariaDBMonitor* create(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
~MariaDBMonitor();
|
~MariaDBMonitor();
|
||||||
|
|
||||||
@ -236,7 +237,7 @@ private:
|
|||||||
* gtid:s? */
|
* gtid:s? */
|
||||||
|
|
||||||
// Base methods
|
// Base methods
|
||||||
MariaDBMonitor();
|
MariaDBMonitor(const std::string& name, const std::string& module);
|
||||||
bool configure(const MXS_CONFIG_PARAMETER* params);
|
bool configure(const MXS_CONFIG_PARAMETER* params);
|
||||||
bool set_replication_credentials(const MXS_CONFIG_PARAMETER* params);
|
bool set_replication_credentials(const MXS_CONFIG_PARAMETER* params);
|
||||||
void reset_server_info();
|
void reset_server_info();
|
||||||
|
|||||||
@ -90,7 +90,7 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
MariaDBMonitor::Test::Test(bool use_hostnames)
|
MariaDBMonitor::Test::Test(bool use_hostnames)
|
||||||
: m_monitor(new MariaDBMonitor())
|
: m_monitor(new MariaDBMonitor("TestMonitor", MXS_MODULE_NAME))
|
||||||
, m_use_hostnames(use_hostnames)
|
, m_use_hostnames(use_hostnames)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,8 +34,9 @@
|
|||||||
static void detectStaleMaster(void*, int);
|
static void detectStaleMaster(void*, int);
|
||||||
static bool isMySQLEvent(mxs_monitor_event_t event);
|
static bool isMySQLEvent(mxs_monitor_event_t event);
|
||||||
|
|
||||||
MMMonitor::MMMonitor()
|
MMMonitor::MMMonitor(const std::string& name, const std::string& module)
|
||||||
: m_detectStaleMaster(false)
|
: MonitorWorkerSimple(name, module)
|
||||||
|
, m_detectStaleMaster(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,9 +45,9 @@ MMMonitor::~MMMonitor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
MMMonitor* MMMonitor::create()
|
MMMonitor* MMMonitor::create(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
return new MMMonitor();
|
return new MMMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MMMonitor::diagnostics(DCB* dcb) const
|
void MMMonitor::diagnostics(DCB* dcb) const
|
||||||
|
|||||||
@ -26,7 +26,7 @@ public:
|
|||||||
MMMonitor& operator=(const MMMonitor&) = delete;
|
MMMonitor& operator=(const MMMonitor&) = delete;
|
||||||
|
|
||||||
~MMMonitor();
|
~MMMonitor();
|
||||||
static MMMonitor* create();
|
static MMMonitor* create(const std::string& name, const std::string& module);
|
||||||
void diagnostics(DCB* dcb) const;
|
void diagnostics(DCB* dcb) const;
|
||||||
json_t* diagnostics_json() const;
|
json_t* diagnostics_json() const;
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ protected:
|
|||||||
private:
|
private:
|
||||||
int m_detectStaleMaster; /**< Monitor flag for Stale Master detection */
|
int m_detectStaleMaster; /**< Monitor flag for Stale Master detection */
|
||||||
|
|
||||||
MMMonitor();
|
MMMonitor(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
MXS_MONITORED_SERVER* get_current_master();
|
MXS_MONITORED_SERVER* get_current_master();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -22,7 +22,8 @@
|
|||||||
#include <maxscale/mysql_utils.hh>
|
#include <maxscale/mysql_utils.hh>
|
||||||
|
|
||||||
|
|
||||||
NDBCMonitor::NDBCMonitor()
|
NDBCMonitor::NDBCMonitor(const std::string& name, const std::string& module)
|
||||||
|
: MonitorWorkerSimple(name, module)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,9 +32,9 @@ NDBCMonitor::~NDBCMonitor()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
NDBCMonitor* NDBCMonitor::create()
|
NDBCMonitor* NDBCMonitor::create(const std::string& name, const std::string& module)
|
||||||
{
|
{
|
||||||
return new NDBCMonitor();
|
return new NDBCMonitor(name, module);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NDBCMonitor::has_sufficient_permissions() const
|
bool NDBCMonitor::has_sufficient_permissions() const
|
||||||
|
|||||||
@ -26,12 +26,12 @@ public:
|
|||||||
NDBCMonitor& operator=(const NDBCMonitor&) = delete;
|
NDBCMonitor& operator=(const NDBCMonitor&) = delete;
|
||||||
|
|
||||||
~NDBCMonitor();
|
~NDBCMonitor();
|
||||||
static NDBCMonitor* create();
|
static NDBCMonitor* create(const std::string& name, const std::string& module);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool has_sufficient_permissions() const;
|
bool has_sufficient_permissions() const;
|
||||||
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NDBCMonitor();
|
NDBCMonitor(const std::string& name, const std::string& module);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user