diff --git a/Documentation/REST-API/Resources-MaxScale.md b/Documentation/REST-API/Resources-MaxScale.md index 1c1b1fe66..c6e067632 100644 --- a/Documentation/REST-API/Resources-MaxScale.md +++ b/Documentation/REST-API/Resources-MaxScale.md @@ -52,12 +52,17 @@ file locations, configuration options and version information. "admin_ssl_key": "", "admin_ssl_cert": "", "admin_ssl_ca_cert": "", - "query_classifier": "" + "query_classifier": "", + "query_classifier_cache_size": 416215859, + "retain_last_statements": 2, + "dump_last_statements": "never", + "load_persisted_configs": false }, - "version": "2.2.0", - "commit": "aa1a413cd961d467083d1974c2a027f612201845", - "started_at": "Wed, 06 Sep 2017 06:51:54 GMT", - "uptime": 1227 + "version": "2.3.6", + "commit": "47158faf12c156775c39388652a77f8a8c542d28", + "started_at": "Thu, 04 Apr 2019 21:04:06 GMT", + "activated_at": "Thu, 04 Apr 2019 21:04:06 GMT", + "uptime": 337 }, "id": "maxscale", "type": "maxscale" diff --git a/include/maxscale/session.h b/include/maxscale/session.h index a60876384..154a730f3 100644 --- a/include/maxscale/session.h +++ b/include/maxscale/session.h @@ -620,6 +620,11 @@ char* session_set_variable_value(MXS_SESSION* session, */ void session_set_retain_last_statements(uint32_t n); +/** + * Get retain_last_statements + */ +uint32_t session_get_retain_last_statements(); + /** * @brief Retain provided statement, if configured to do so. * @@ -669,6 +674,11 @@ void session_set_dump_statements(session_dump_statements_t value); */ session_dump_statements_t session_get_dump_statements(); +/** + * String version of session_get_dump_statements + */ +const char* session_get_dump_statements_str(); + /** * @brief Route the query again after a delay * diff --git a/server/core/config.cc b/server/core/config.cc index f72a50133..8a986a385 100644 --- a/server/core/config.cc +++ b/server/core/config.cc @@ -4548,6 +4548,10 @@ json_t* config_maxscale_to_json(const char* host) CN_QUERY_CLASSIFIER_CACHE_SIZE, json_integer(cnf->qc_cache_properties.max_size)); + json_object_set_new(param, CN_RETAIN_LAST_STATEMENTS, json_integer(session_get_retain_last_statements())); + json_object_set_new(param, CN_DUMP_LAST_STATEMENTS, json_string(session_get_dump_statements_str())); + json_object_set_new(param, CN_LOAD_PERSISTED_CONFIGS, json_boolean(cnf->load_persisted_configs)); + json_t* attr = json_object(); time_t started = maxscale_started(); time_t activated = started + MXS_CLOCK_TO_SEC(cnf->promoted_at); diff --git a/server/core/session.cc b/server/core/session.cc index d61f16cd3..49120c47d 100644 --- a/server/core/session.cc +++ b/server/core/session.cc @@ -1055,6 +1055,11 @@ void session_set_retain_last_statements(uint32_t n) this_unit.retain_last_statements = n; } +uint32_t session_get_retain_last_statements() +{ + return this_unit.retain_last_statements; +} + void session_set_dump_statements(session_dump_statements_t value) { this_unit.dump_statements = value; @@ -1065,6 +1070,25 @@ session_dump_statements_t session_get_dump_statements() return this_unit.dump_statements; } +const char* session_get_dump_statements_str() +{ + switch (this_unit.dump_statements) + { + case SESSION_DUMP_STATEMENTS_NEVER: + return "never"; + + case SESSION_DUMP_STATEMENTS_ON_CLOSE: + return "on_close"; + + case SESSION_DUMP_STATEMENTS_ON_ERROR: + return "on_error"; + + default: + mxb_assert(!true); + return "unknown"; + } +} + void session_retain_statement(MXS_SESSION* pSession, GWBUF* pBuffer) { static_cast(pSession)->retain_statement(pBuffer);