From ceb58d615e77de63f7cb27d2481e497488123208 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Mon, 3 Jun 2019 15:22:25 +0300 Subject: [PATCH] MXS-2540 Add monitor support to new config system The configuration system needs to be aware of standard monitor parameters. --- include/maxscale/config.hh | 12 +++++++++++- include/maxscale/config2.hh | 3 ++- server/core/config2.cc | 24 ++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/include/maxscale/config.hh b/include/maxscale/config.hh index 0dc7f3437..9892ffc84 100644 --- a/include/maxscale/config.hh +++ b/include/maxscale/config.hh @@ -106,6 +106,10 @@ extern const char CN_AUTHENTICATOR_DIAGNOSTICS[]; extern const char CN_AUTHENTICATOR_OPTIONS[]; extern const char CN_AUTHENTICATOR[]; extern const char CN_AUTO[]; +extern const char CN_BACKEND_CONNECT_ATTEMPTS[]; +extern const char CN_BACKEND_CONNECT_TIMEOUT[]; +extern const char CN_BACKEND_READ_TIMEOUT[]; +extern const char CN_BACKEND_WRITE_TIMEOUT[]; extern const char CN_CACHE_SIZE[]; extern const char CN_CACHE[]; extern const char CN_CLASSIFICATION[]; @@ -114,9 +118,11 @@ extern const char CN_CONNECTION_TIMEOUT[]; extern const char CN_DATA[]; extern const char CN_DEFAULT[]; extern const char CN_DESCRIPTION[]; +extern const char CN_DISK_SPACE_CHECK_INTERVAL[]; extern const char CN_DISK_SPACE_THRESHOLD[]; extern const char CN_DUMP_LAST_STATEMENTS[]; extern const char CN_ENABLE_ROOT_USER[]; +extern const char CN_EVENTS[]; extern const char CN_EXTRA_PORT[]; extern const char CN_FIELDS[]; extern const char CN_FILTER_DIAGNOSTICS[]; @@ -129,6 +135,7 @@ extern const char CN_HAS_WHERE_CLAUSE[]; extern const char CN_HITS[]; extern const char CN_ID[]; extern const char CN_INET[]; +extern const char CN_JOURNAL_MAX_AGE[]; extern const char CN_LINKS[]; extern const char CN_LOAD_PERSISTED_CONFIGS[]; extern const char CN_LISTENER[]; @@ -145,8 +152,9 @@ extern const char CN_METHOD[]; extern const char CN_MODULE_COMMAND[]; extern const char CN_MODULE[]; extern const char CN_MODULES[]; -extern const char CN_MONITOR_DIAGNOSTICS[]; extern const char CN_MONITOR[]; +extern const char CN_MONITOR_DIAGNOSTICS[]; +extern const char CN_MONITOR_INTERVAL[]; extern const char CN_MONITORS[]; extern const char CN_MS_TIMESTAMP[]; extern const char CN_NAME[]; @@ -172,6 +180,8 @@ extern const char CN_RETRY_ON_FAILURE[]; extern const char CN_ROUTER_DIAGNOSTICS[]; extern const char CN_ROUTER_OPTIONS[]; extern const char CN_ROUTER[]; +extern const char CN_SCRIPT[]; +extern const char CN_SCRIPT_TIMEOUT[]; extern const char CN_SELF[]; extern const char CN_SERVER[]; extern const char CN_SERVERS[]; diff --git a/include/maxscale/config2.hh b/include/maxscale/config2.hh index f3915543a..b8fef853e 100644 --- a/include/maxscale/config2.hh +++ b/include/maxscale/config2.hh @@ -41,7 +41,8 @@ class Specification public: enum Kind { - FILTER + FILTER, + MONITOR }; using ParamsByName = std::map; diff --git a/server/core/config2.cc b/server/core/config2.cc index bfc0d4d24..40d92b2f1 100644 --- a/server/core/config2.cc +++ b/server/core/config2.cc @@ -29,6 +29,26 @@ const char* pzCore_filter_params[] = { nullptr, }; +const char* pzCore_monitor_params[] = { + CN_TYPE, + CN_MODULE, + CN_USER, + CN_PASSWORD, + CN_SERVERS, + CN_MONITOR_INTERVAL, + CN_BACKEND_CONNECT_TIMEOUT, + CN_BACKEND_READ_TIMEOUT, + CN_BACKEND_WRITE_TIMEOUT, + CN_BACKEND_CONNECT_ATTEMPTS, + CN_JOURNAL_MAX_AGE, + CN_DISK_SPACE_THRESHOLD, + CN_DISK_SPACE_CHECK_INTERVAL, + CN_SCRIPT, + CN_SCRIPT_TIMEOUT, + CN_EVENTS, + nullptr, +}; + bool is_core_param(Specification::Kind kind, const std::string& param) { bool rv = false; @@ -41,6 +61,10 @@ bool is_core_param(Specification::Kind kind, const std::string& param) pzCore_params = pzCore_filter_params; break; + case Specification::MONITOR: + pzCore_params = pzCore_monitor_params; + break; + default: mxb_assert(!true); }