diff --git a/include/maxscale/monitor.hh b/include/maxscale/monitor.hh index 1210093b5..042320964 100644 --- a/include/maxscale/monitor.hh +++ b/include/maxscale/monitor.hh @@ -435,7 +435,20 @@ protected: private: friend class MonitorManager; + /** + * @brief Add a server to a monitor. + * + * Add a server to a monitor, provided the server is not currently + * being monitored by any monitor. Before adding the server to the + * monitor, the monitor is stopped if it is running and after the + * addition it is restarted if it was running. + * + * @param server A server. + * + * @return True, if the monitor was added, false otherwise. + */ void add_server(SERVER* server); + void remove_server(SERVER* server); /** @@ -466,20 +479,6 @@ private: */ int launch_command(MXS_MONITORED_SERVER* ptr, EXTERNCMD* cmd); - /** - * @brief Add a server to a monitor. - * - * Add a server to a monitor, provided the server is not currently - * being monitored by any monitor. Before adding the server to the - * monitor, the monitor is stopped if it is running and after the - * addition it is restarted if it was running. - * - * @param monitor A monitor. - * @param server A server. - * - * @return True, if the monitor was added, false otherwise. - */ - static bool add_server(Monitor* mon, SERVER* server); /** * @brief Remove a server from a monitor. diff --git a/server/core/config.cc b/server/core/config.cc index be1a268f4..14c310a07 100644 --- a/server/core/config.cc +++ b/server/core/config.cc @@ -3614,7 +3614,7 @@ int create_new_service(CONFIG_CONTEXT* obj) if (!cluster.empty()) { - Monitor* pMonitor = monitor_find(cluster.c_str()); + Monitor* pMonitor = MonitorManager::find_monitor(cluster.c_str()); if (pMonitor) { diff --git a/server/core/config_runtime.cc b/server/core/config_runtime.cc index fdc33ba75..ff9fe1445 100644 --- a/server/core/config_runtime.cc +++ b/server/core/config_runtime.cc @@ -137,7 +137,7 @@ bool runtime_add_server(Monitor* mon, Server* server) mxb_assert(mon && server); bool rval = false; - if (monitor_server_in_use(server)) + if (MonitorManager::server_is_monitored(server)) { MXS_ERROR("Server '%s' is already monitored.", server->name()); } @@ -167,7 +167,7 @@ bool runtime_remove_server(Monitor* mon, Server* server) mxb_assert(mon && server); bool rval = false; - if (monitor_server_in_use(server) != mon) + if (MonitorManager::server_is_monitored(server) != mon) { MXS_ERROR("Server '%s' is not monitored by '%s'.", server->name(), mon->m_name); } @@ -209,7 +209,7 @@ bool runtime_link_server(Server* server, const char* target) bool rval = false; Service* service = service_internal_find(target); - Monitor* monitor = service ? NULL : monitor_find(target); + Monitor* monitor = service ? NULL : MonitorManager::find_monitor(target); if (service) { @@ -263,7 +263,7 @@ bool runtime_unlink_server(Server* server, const char* target) bool rval = false; Service* service = service_internal_find(target); - Monitor* monitor = service ? NULL : monitor_find(target); + Monitor* monitor = service ? NULL : MonitorManager::find_monitor(target); if (service || monitor) { @@ -380,7 +380,7 @@ bool runtime_destroy_server(Server* server) std::lock_guard guard(crt_lock); bool rval = false; - if (service_server_in_use(server) || monitor_server_in_use(server)) + if (service_server_in_use(server) || MonitorManager::server_is_monitored(server)) { const char* err = "Cannot destroy server '%s' as it is used by at least " "one service or monitor"; @@ -696,7 +696,7 @@ bool runtime_alter_monitor(Monitor* monitor, const char* key, const char* value) bool was_running = (monitor->state() == MONITOR_STATE_RUNNING); if (was_running) { - MonitorManager::monitor_stop(monitor); + MonitorManager::stop_monitor(monitor); } bool success = do_alter_monitor(monitor, key, value); if (success) @@ -705,7 +705,7 @@ bool runtime_alter_monitor(Monitor* monitor, const char* key, const char* value) } if (was_running) { - MonitorManager::monitor_start(monitor); + MonitorManager::start_monitor(monitor); } return success; } @@ -1210,9 +1210,9 @@ bool runtime_create_monitor(const char* name, const char* module) std::lock_guard guard(crt_lock); bool rval = false; - if (monitor_find(name) == NULL) + if (MonitorManager::find_monitor(name) == NULL) { - Monitor* monitor = monitor_repurpose_destroyed(name, module); + Monitor* monitor = MonitorManager::reactivate_monitor(name, module); std::string reason; if (monitor) @@ -1432,13 +1432,7 @@ bool runtime_destroy_monitor(Monitor* monitor) if (rval) { - MonitorManager::monitor_stop(monitor); - - while (!monitor->m_servers.empty()) - { - MonitorManager::remove_server(monitor, monitor->m_servers[0]->server); - } - monitor_deactivate(monitor); + MonitorManager::deactivate_monitor(monitor); MXS_NOTICE("Destroyed monitor '%s'", monitor->m_name); } @@ -1735,7 +1729,7 @@ static bool server_contains_required_fields(json_t* json) static bool server_relation_is_valid(const std::string& type, const std::string& value) { return (type == CN_SERVICES && service_internal_find(value.c_str())) - || (type == CN_MONITORS && monitor_find(value.c_str())); + || (type == CN_MONITORS && MonitorManager::find_monitor(value.c_str())); } static bool filter_to_service_relation_is_valid(const std::string& type, const std::string& value) @@ -2258,7 +2252,7 @@ Monitor* runtime_create_monitor_from_json(json_t* json) if (runtime_create_monitor(name, module)) { - rval = monitor_find(name); + rval = MonitorManager::find_monitor(name); mxb_assert(rval); if (!runtime_alter_monitor_from_json(rval, json)) @@ -2268,7 +2262,7 @@ Monitor* runtime_create_monitor_from_json(json_t* json) } else { - MonitorManager::monitor_start(rval); + MonitorManager::start_monitor(rval); } } } @@ -2420,7 +2414,7 @@ bool runtime_alter_monitor_from_json(Monitor* monitor, json_t* new_json) if (parameters) { bool restart = (monitor->state() != MONITOR_STATE_STOPPED); - MonitorManager::monitor_stop(monitor); + MonitorManager::stop_monitor(monitor); const char* key; json_t* value; @@ -2451,7 +2445,7 @@ bool runtime_alter_monitor_from_json(Monitor* monitor, json_t* new_json) if (restart) { - MonitorManager::monitor_start(monitor); + MonitorManager::start_monitor(monitor); } } } diff --git a/server/core/gateway.cc b/server/core/gateway.cc index 86a6fbbc2..d0c4ab065 100644 --- a/server/core/gateway.cc +++ b/server/core/gateway.cc @@ -2186,7 +2186,7 @@ int main(int argc, char** argv) } /** Start all monitors */ - monitor_start_all(); + MonitorManager::start_all_monitors(); if (cnf->config_check) { @@ -2258,7 +2258,7 @@ int main(int argc, char** argv) mxs_admin_shutdown(); /*< Stop all monitors */ - monitor_stop_all(); + MonitorManager::stop_all_monitors(); /*< Destroy all monitors */ MonitorManager::destroy_all_monitors(); diff --git a/server/core/internal/monitor.hh b/server/core/internal/monitor.hh index 733b31f17..48b1aa967 100644 --- a/server/core/internal/monitor.hh +++ b/server/core/internal/monitor.hh @@ -22,30 +22,6 @@ #define MON_ARG_MAX 8192 -#define DEFAULT_CONNECT_TIMEOUT 3 -#define DEFAULT_READ_TIMEOUT 3 -#define DEFAULT_WRITE_TIMEOUT 3 -#define DEFAULT_CONNECTION_ATTEMPTS 1 - -#define DEFAULT_MONITOR_INTERVAL 2000 // in milliseconds - -/** Default maximum journal age in seconds */ -#define DEFAULT_JOURNAL_MAX_AGE 28800 - -/** Default script execution timeout in seconds */ -#define DEFAULT_SCRIPT_TIMEOUT 90 - -/** - * Monitor network timeout types - */ -typedef enum -{ - MONITOR_CONNECT_TIMEOUT = 0, - MONITOR_READ_TIMEOUT = 1, - MONITOR_WRITE_TIMEOUT = 2, - MONITOR_CONNECT_ATTEMPTS = 3 -} monitor_timeouts_t; - /* Is not really an event as the other values, but is a valid config setting and also the default. * Bitmask value matches all events. */ static const MXS_ENUM_VALUE mxs_monitor_event_default_enum = {"all", ~0ULL}; @@ -77,8 +53,6 @@ static const MXS_ENUM_VALUE mxs_monitor_event_enum_values[] = {NULL} }; -std::unique_ptr monitor_get_list(); - /** * This class contains internal monitor management functions that should not be exposed in the public * monitor class. It's a friend of MXS_MONITOR. @@ -98,6 +72,15 @@ public: static Monitor* create_monitor(const std::string& name, const std::string& module, MXS_CONFIG_PARAMETER* params); + /** + * Mark monitor as deactivated. A deactivated monitor appears not to exist, as if it had been + * destroyed. Any servers the monitor had are removed. The monitor should not be serialized after + * this function. + * + * @param monitor Monitor to deactivate + */ + static void deactivate_monitor(Monitor* monitor); + /** * @brief Destroys all monitors. At this point all monitors should * have been stopped. @@ -106,27 +89,24 @@ public: */ static void destroy_all_monitors(); - static void monitor_start(Monitor*); - - /** - * @brief Populate services with the servers of the monitors. - */ - static void populate_services(); - - static bool add_server(Monitor* mon, SERVER* server); - - - static void remove_server(Monitor* mon, SERVER* server) - { - Monitor::remove_server(mon, server); - } + static void start_monitor(Monitor* monitor); /** * Stop a given monitor * * @param monitor The monitor to stop */ - static void monitor_stop(Monitor*); + static void stop_monitor(Monitor* monitor); + + static void stop_all_monitors(); + static void start_all_monitors(); + + static Monitor* find_monitor(const char* name); + + /** + * @brief Populate services with the servers of the monitors. + */ + static void populate_services(); /** * Get links to monitors that relate to a server. @@ -145,39 +125,28 @@ public: */ static json_t* monitor_list_to_json(const char* host); + /** + * Check if a server is being monitored and return the monitor. + * @param server Server that is queried + * @return The monitor watching this server, or NULL if not monitored + */ + static Monitor* server_is_monitored(const SERVER* server); + + static Monitor* reactivate_monitor(const char* name, const char* module); + + static void show_all_monitors(DCB* dcb); + static void monitor_show(DCB* dcb, Monitor* monitor); + + static void monitor_list(DCB*); + + static std::unique_ptr monitor_get_list(); + /** * Waits until all running monitors have advanced one tick. */ - static void monitor_debug_wait(); + static void debug_wait_one_tick(); }; - - - - -/** - * @brief Mark monitor as deactivated - * - * A deactivated monitor appears not to exist, as if it had been - * destroyed. - * - * @param monitor - */ -void monitor_deactivate(Monitor* monitor); - -void monitor_stop_all(); -void monitor_start_all(); - -Monitor* monitor_find(const char*); -Monitor* monitor_repurpose_destroyed(const char* name, const char* module); - -void monitor_show(DCB*, Monitor*); -void monitor_show_all(DCB*); - -void monitor_list(DCB*); - -void monitor_set_journal_max_age(Monitor* mon, time_t value); - /** * @brief Serialize a monitor to a file * @@ -187,10 +156,3 @@ void monitor_set_journal_max_age(Monitor* mon, time_t value); * @return True if serialization was successful */ bool monitor_serialize(const Monitor* monitor); - -/** - * Check if a server is being monitored and return the monitor. - * @param server Server that is queried - * @return The monitor watching this server, or NULL if not monitored - */ -Monitor* monitor_server_in_use(const SERVER* server); diff --git a/server/core/modulecmd.cc b/server/core/modulecmd.cc index 8c326fa07..53d1ad326 100644 --- a/server/core/modulecmd.cc +++ b/server/core/modulecmd.cc @@ -327,7 +327,7 @@ static bool process_argument(const MODULECMD* cmd, break; case MODULECMD_ARG_MONITOR: - if ((arg->value.monitor = monitor_find((char*)value))) + if ((arg->value.monitor = MonitorManager::find_monitor((char*) value))) { const char* eff_name = mxs_module_get_effective_name(arg->value.monitor->m_module.c_str()); if (MODULECMD_ALLOW_NAME_MISMATCH(type) || strcasecmp(cmd->domain, eff_name) == 0) diff --git a/server/core/monitor.cc b/server/core/monitor.cc index 19328dd6f..55679a7bc 100644 --- a/server/core/monitor.cc +++ b/server/core/monitor.cc @@ -215,23 +215,34 @@ bool Monitor::configure(const MXS_CONFIG_PARAMETER* params) // The monitor serverlist has already been checked to be valid. Empty value is ok too. // First, remove all servers. - - auto servers_temp = params->get_server_list(CN_SERVERS); while (!m_servers.empty()) { SERVER* remove = m_servers.front()->server; remove_server(remove); } + auto servers_temp = params->get_server_list(CN_SERVERS); + bool error = false; for (auto elem : servers_temp) { - // This function checks if server is already monitored. TODO: This should be a config error. - add_server(elem); + // TODO: Monitor should not access MonitorManager. + Monitor* srv_monitored_by = MonitorManager::server_is_monitored(elem); + if (srv_monitored_by) + { + mxb_assert(srv_monitored_by != this); + MXS_ERROR("Server '%s' is already monitored by '%s', cannot add it to another monitor.", + elem->name(), srv_monitored_by->m_name); + error = true; + } + else + { + add_server(elem); + } } /* The previous config values were normal types and were checked by the config manager * to be correct. The following is a complicated type and needs to be checked separately. */ - bool error = false; + auto threshold_string = params->get_string(CN_DISK_SPACE_THRESHOLD); if (!set_disk_space_threshold(threshold_string)) { @@ -266,7 +277,7 @@ void MonitorManager::destroy_all_monitors() } } -void MonitorManager::monitor_start(Monitor* monitor) +void MonitorManager::start_monitor(Monitor* monitor) { mxb_assert(monitor); @@ -282,11 +293,6 @@ void MonitorManager::monitor_start(Monitor* monitor) } } -bool MonitorManager::add_server(Monitor* mon, SERVER* server) -{ - return false; -} - void MonitorManager::populate_services() { this_unit.foreach_monitor([](Monitor* pMonitor) -> bool { @@ -298,18 +304,18 @@ void MonitorManager::populate_services() /** * Start all monitors */ -void monitor_start_all() +void MonitorManager::start_all_monitors() { this_unit.foreach_monitor([](Monitor* monitor) { if (monitor->m_active) { - MonitorManager::monitor_start(monitor); + MonitorManager::start_monitor(monitor); } return true; }); } -void MonitorManager::monitor_stop(Monitor* monitor) +void MonitorManager::stop_monitor(Monitor* monitor) { mxb_assert(monitor); @@ -322,8 +328,17 @@ void MonitorManager::monitor_stop(Monitor* monitor) } } -void monitor_deactivate(Monitor* monitor) +void MonitorManager::deactivate_monitor(Monitor* monitor) { + // This cannot be done with configure(), since other, module-specific config settings may depend on the + // "servers"-setting of the base monitor. Directly manipulate monitor field for now, later use a dtor + // to cleanly "deactivate" inherited objects. + stop_monitor(monitor); + while (!monitor->m_servers.empty()) + { + monitor->remove_server(monitor->m_servers.front()->server); + } + this_unit.run_behind_lock([monitor](){ monitor->m_active = false; }); @@ -332,72 +347,30 @@ void monitor_deactivate(Monitor* monitor) /** * Shutdown all running monitors */ -void monitor_stop_all() +void MonitorManager::stop_all_monitors() { this_unit.foreach_monitor([](Monitor* monitor) { if (monitor->m_active) { - MonitorManager::monitor_stop(monitor); + MonitorManager::stop_monitor(monitor); } return true; }); } -//static -bool Monitor::add_server(Monitor* mon, SERVER* server) -{ - mxb_assert(mon && server); - bool rval = false; - - if (monitor_server_in_use(server)) - { - MXS_ERROR("Server '%s' is already monitored.", server->name()); - } - else - { - rval = true; - - monitor_state_t old_state = mon->state(); - - if (old_state == MONITOR_STATE_RUNNING) - { - MonitorManager::monitor_stop(mon); - } - - mon->add_server(server); - - if (old_state == MONITOR_STATE_RUNNING) - { - MonitorManager::monitor_start(mon); - } - } - - return rval; -} - /** * @brief Add a server to the monitor. * * It is assumed that the monitor is currently not running and that the * server is not currently being monitored. * - * @param server A server. + * @param server A server */ void Monitor::add_server(SERVER* server) { mxb_assert(state() != MONITOR_STATE_RUNNING); - mxb_assert(!monitor_server_in_use(server)); - - MXS_MONITORED_SERVER* db = new (std::nothrow) MXS_MONITORED_SERVER(server); - MXS_ABORT_IF_NULL(db); - - using Guard = std::unique_lock; - Guard guard(m_lock); - - m_servers.push_back(db); - - guard.unlock(); - + auto new_server = new MXS_MONITORED_SERVER(server); + m_servers.push_back(new_server); server_added(server); } @@ -449,14 +422,14 @@ void Monitor::remove_server(Monitor* mon, SERVER* server) if (old_state == MONITOR_STATE_RUNNING) { - MonitorManager::monitor_stop(mon); + MonitorManager::stop_monitor(mon); } mon->remove_server(server); if (old_state == MONITOR_STATE_RUNNING) { - MonitorManager::monitor_start(mon); + MonitorManager::start_monitor(mon); } } @@ -502,7 +475,7 @@ void Monitor::remove_server(SERVER* server) * * @param dcb DCB for printing output */ -void monitor_show_all(DCB* dcb) +void MonitorManager::show_all_monitors(DCB* dcb) { this_unit.foreach_monitor([dcb](Monitor* monitor) { if (monitor->m_active) @@ -518,7 +491,7 @@ void monitor_show_all(DCB* dcb) * * @param dcb DCB for printing output */ -void monitor_show(DCB* dcb, Monitor* monitor) +void MonitorManager::monitor_show(DCB* dcb, Monitor* monitor) { monitor->show(dcb); } @@ -563,7 +536,7 @@ void Monitor::show(DCB* dcb) * * @param dcb DCB for printing output */ -void monitor_list(DCB* dcb) +void MonitorManager::monitor_list(DCB* dcb) { dcb_printf(dcb, "---------------------+---------------------\n"); dcb_printf(dcb, "%-20s | Status\n", "Monitor"); @@ -590,7 +563,7 @@ void monitor_list(DCB* dcb) * @param name The name of the monitor * @return Pointer to the monitor or NULL */ -Monitor* monitor_find(const char* name) +Monitor* MonitorManager::find_monitor(const char* name) { Monitor* rval = nullptr; this_unit.foreach_monitor([&rval, name](Monitor* ptr) { @@ -608,7 +581,7 @@ Monitor* monitor_find(const char* name) * @param name The name of the monitor * @return Pointer to the destroyed monitor or NULL if monitor is not found */ -Monitor* monitor_repurpose_destroyed(const char* name, const char* module) +Monitor* MonitorManager::reactivate_monitor(const char* name, const char* module) { Monitor* rval = NULL; this_unit.foreach_monitor([&rval, name, module](Monitor* monitor) { @@ -628,7 +601,7 @@ Monitor* monitor_repurpose_destroyed(const char* name, const char* module) * * @return A Result set */ -std::unique_ptr monitor_get_list() +std::unique_ptr MonitorManager::monitor_get_list() { std::unique_ptr set = ResultSet::create({"Monitor", "Status"}); this_unit.foreach_monitor([&set](Monitor* ptr) { @@ -1301,7 +1274,7 @@ static void mon_log_state_change(MXS_MONITORED_SERVER* ptr) prev.c_str(), next.c_str()); } -Monitor* monitor_server_in_use(const SERVER* server) +Monitor* MonitorManager::server_is_monitored(const SERVER* server) { Monitor* rval = nullptr; this_unit.foreach_monitor([&rval, server](Monitor* monitor) { @@ -2328,7 +2301,7 @@ void Monitor::populate_services() } } -void MonitorManager::monitor_debug_wait() +void MonitorManager::debug_wait_one_tick() { using namespace std::chrono; std::map ticks; diff --git a/server/core/resource.cc b/server/core/resource.cc index 952b669f0..e88407de3 100644 --- a/server/core/resource.cc +++ b/server/core/resource.cc @@ -125,7 +125,7 @@ bool Resource::matching_variable_path(const string& path, const string& target) if ((path == ":service" && service_find(target.c_str())) || (path == ":server" && Server::find_by_unique_name(target)) || (path == ":filter" && filter_find(target.c_str())) - || (path == ":monitor" && monitor_find(target.c_str())) + || (path == ":monitor" && MonitorManager::find_monitor(target.c_str())) || (path == ":module" && get_module(target.c_str(), NULL)) || (path == ":inetuser" && admin_inet_user_exists(target.c_str())) || (path == ":unixuser" && admin_linux_account_enabled(target.c_str()))) @@ -259,20 +259,20 @@ private: HttpResponse cb_stop_monitor(const HttpRequest& request) { - Monitor* monitor = monitor_find(request.uri_part(1).c_str()); + Monitor* monitor = MonitorManager::find_monitor(request.uri_part(1).c_str()); if (monitor) { - MonitorManager::monitor_stop(monitor); + MonitorManager::stop_monitor(monitor); } return HttpResponse(MHD_HTTP_NO_CONTENT); } HttpResponse cb_start_monitor(const HttpRequest& request) { - Monitor* monitor = monitor_find(request.uri_part(1).c_str()); + Monitor* monitor = MonitorManager::find_monitor(request.uri_part(1).c_str()); if (monitor) { - MonitorManager::monitor_start(monitor); + MonitorManager::start_monitor(monitor); } return HttpResponse(MHD_HTTP_NO_CONTENT); } @@ -390,7 +390,7 @@ HttpResponse cb_create_service_listener(const HttpRequest& request) HttpResponse cb_alter_monitor(const HttpRequest& request) { - Monitor* monitor = monitor_find(request.uri_part(1).c_str()); + Monitor* monitor = MonitorManager::find_monitor(request.uri_part(1).c_str()); mxb_assert(monitor && request.get_json()); if (runtime_alter_monitor_from_json(monitor, request.get_json())) @@ -403,7 +403,7 @@ HttpResponse cb_alter_monitor(const HttpRequest& request) HttpResponse cb_alter_monitor_server_relationship(const HttpRequest& request) { - Monitor* monitor = monitor_find(request.uri_part(1).c_str()); + Monitor* monitor = MonitorManager::find_monitor(request.uri_part(1).c_str()); mxb_assert(monitor && request.get_json()); if (runtime_alter_monitor_relationships_from_json(monitor, request.get_json())) @@ -492,7 +492,7 @@ HttpResponse cb_delete_server(const HttpRequest& request) HttpResponse cb_delete_monitor(const HttpRequest& request) { - Monitor* monitor = monitor_find(request.uri_part(1).c_str()); + Monitor* monitor = MonitorManager::find_monitor(request.uri_part(1).c_str()); mxb_assert(monitor); if (runtime_destroy_monitor(monitor)) @@ -613,7 +613,7 @@ HttpResponse cb_all_monitors(const HttpRequest& request) HttpResponse cb_get_monitor(const HttpRequest& request) { - Monitor* monitor = monitor_find(request.uri_part(1).c_str()); + Monitor* monitor = MonitorManager::find_monitor(request.uri_part(1).c_str()); mxb_assert(monitor); return HttpResponse(MHD_HTTP_OK, monitor_to_json(monitor, request.host())); } @@ -742,7 +742,7 @@ HttpResponse cb_unix_user(const HttpRequest& request) HttpResponse cb_monitor_wait(const HttpRequest& request) { - MonitorManager::monitor_debug_wait(); + MonitorManager::debug_wait_one_tick(); return HttpResponse(MHD_HTTP_OK); } HttpResponse cb_create_user(const HttpRequest& request) diff --git a/server/core/server.cc b/server/core/server.cc index 79b2d9442..b49f6b478 100644 --- a/server/core/server.cc +++ b/server/core/server.cc @@ -950,7 +950,7 @@ bool mxs::server_set_status(SERVER* srv, int bit, string* errmsg_out) /* First check if the server is monitored. This isn't done under a lock * but the race condition cannot cause significant harm. Monitors are never * freed so the pointer stays valid. */ - Monitor* mon = monitor_server_in_use(srv); + Monitor* mon = MonitorManager::server_is_monitored(srv); if (mon) { written = mon->set_server_status(srv, bit, errmsg_out); @@ -969,7 +969,7 @@ bool mxs::server_clear_status(SERVER* srv, int bit, string* errmsg_out) { // See server_set_status(). bool written = false; - Monitor* mon = monitor_server_in_use(srv); + Monitor* mon = MonitorManager::server_is_monitored(srv); if (mon) { written = mon->clear_server_status(srv, bit, errmsg_out); diff --git a/server/modules/routing/debugcli/debugcmd.cc b/server/modules/routing/debugcli/debugcmd.cc index 63e8a7fc4..87d064eb5 100644 --- a/server/modules/routing/debugcli/debugcmd.cc +++ b/server/modules/routing/debugcli/debugcmd.cc @@ -291,7 +291,7 @@ struct subcommand showoptions[] = {0 } }, { - "monitor", 1, 1, (FN)monitor_show, + "monitor", 1, 1, (FN)MonitorManager::monitor_show, "Show monitor details", "Usage: show monitor MONITOR\n" "\n" @@ -302,7 +302,7 @@ struct subcommand showoptions[] = {ARG_TYPE_MONITOR} }, { - "monitors", 0, 0, (FN)monitor_show_all, + "monitors", 0, 0, (FN)MonitorManager::show_all_monitors, "Show all monitors", "Usage: show monitors", {0 } @@ -482,7 +482,7 @@ struct subcommand listoptions[] = {0 } }, { - "monitors", 0, 0, (FN)monitor_list, + "monitors", 0, 0, (FN)MonitorManager::monitor_list, "List all monitors", "Usage: list monitors", {0 } @@ -1293,7 +1293,7 @@ static void createListener(DCB* dcb, static void createMonitor(DCB* dcb, const char* name, const char* module) { - if (monitor_find(name)) + if (MonitorManager::find_monitor(name)) { dcb_printf(dcb, "Monitor '%s' already exists\n", name); } @@ -1993,7 +1993,7 @@ static unsigned long convert_arg(char* arg, int arg_type) case ARG_TYPE_MONITOR: fix_object_name(arg); - rval = (unsigned long)monitor_find(arg); + rval = (unsigned long) MonitorManager::find_monitor(arg); break; case ARG_TYPE_FILTER: @@ -2716,7 +2716,7 @@ static void show_qc_all(DCB* dcb) */ static void shutdown_monitor(DCB* dcb, Monitor* monitor) { - MonitorManager::monitor_stop(monitor); + MonitorManager::stop_monitor(monitor); } /** @@ -2727,7 +2727,7 @@ static void shutdown_monitor(DCB* dcb, Monitor* monitor) */ static void restart_monitor(DCB* dcb, Monitor* monitor) { - MonitorManager::monitor_start(monitor); + MonitorManager::start_monitor(monitor); } /** diff --git a/server/modules/routing/maxinfo/maxinfo_exec.cc b/server/modules/routing/maxinfo/maxinfo_exec.cc index c51e3606e..c2d005e3c 100644 --- a/server/modules/routing/maxinfo/maxinfo_exec.cc +++ b/server/modules/routing/maxinfo/maxinfo_exec.cc @@ -186,7 +186,7 @@ static void exec_show_modules(DCB* dcb, MAXINFO_TREE* tree) */ static void exec_show_monitors(DCB* dcb, MAXINFO_TREE* tree) { - monitor_get_list()->write(dcb); + MonitorManager::monitor_get_list()->write(dcb); } /** @@ -503,10 +503,10 @@ void exec_shutdown_monitor(DCB* dcb, MAXINFO_TREE* tree) char errmsg[120]; if (tree && tree->value) { - Monitor* monitor = monitor_find(tree->value); + Monitor* monitor = MonitorManager::find_monitor(tree->value); if (monitor) { - MonitorManager::monitor_stop(monitor); + MonitorManager::stop_monitor(monitor); maxinfo_send_ok(dcb); } else @@ -612,10 +612,10 @@ void exec_restart_monitor(DCB* dcb, MAXINFO_TREE* tree) char errmsg[120]; if (tree && tree->value) { - Monitor* monitor = monitor_find(tree->value); + Monitor* monitor = MonitorManager::find_monitor(tree->value); if (monitor) { - MonitorManager::monitor_start(monitor); + MonitorManager::start_monitor(monitor); maxinfo_send_ok(dcb); } else