diff --git a/include/maxscale/config.h b/include/maxscale/config.h index cd3f6b40f..8c14ea550 100644 --- a/include/maxscale/config.h +++ b/include/maxscale/config.h @@ -91,6 +91,7 @@ extern const char CN_ADMIN_SSL_CERT[]; extern const char CN_ADMIN_SSL_CA_CERT[]; extern const char CN_ATTRIBUTES[]; extern const char CN_AUTHENTICATOR[]; +extern const char CN_AUTHENTICATOR_DIAGNOSTICS[]; extern const char CN_AUTHENTICATOR_OPTIONS[]; extern const char CN_AUTH_ALL_SERVERS[]; extern const char CN_AUTH_CONNECT_TIMEOUT[]; @@ -104,6 +105,7 @@ extern const char CN_DESCRIPTION[]; extern const char CN_ENABLE_ROOT_USER[]; extern const char CN_FILTERS[]; extern const char CN_FILTER[]; +extern const char CN_FILTER_DIAGNOSTICS[]; extern const char CN_GATEWAY[]; extern const char CN_ID[]; extern const char CN_INET[]; @@ -122,6 +124,7 @@ extern const char CN_MODULES[]; extern const char CN_MODULE_COMMAND[]; extern const char CN_MONITORS[]; extern const char CN_MONITOR[]; +extern const char CN_MONITOR_DIAGNOSTICS[]; extern const char CN_MS_TIMESTAMP[]; extern const char CN_NAME[]; extern const char CN_NON_BLOCKING_POLLS[]; @@ -141,6 +144,7 @@ extern const char CN_LINKS[]; extern const char CN_REQUIRED[]; extern const char CN_RETRY_ON_FAILURE[]; extern const char CN_ROUTER[]; +extern const char CN_ROUTER_DIAGNOSTICS[]; extern const char CN_ROUTER_OPTIONS[]; extern const char CN_SELF[]; extern const char CN_SERVERS[]; diff --git a/server/core/config.cc b/server/core/config.cc index 8908f08dd..d966f1844 100644 --- a/server/core/config.cc +++ b/server/core/config.cc @@ -69,6 +69,7 @@ const char CN_ADMIN_SSL_CERT[] = "admin_ssl_cert"; const char CN_ADMIN_SSL_CA_CERT[] = "admin_ssl_ca_cert"; const char CN_ATTRIBUTES[] = "attributes"; const char CN_AUTHENTICATOR[] = "authenticator"; +const char CN_AUTHENTICATOR_DIAGNOSTICS[] = "authenticator_diagnostics"; const char CN_AUTHENTICATOR_OPTIONS[] = "authenticator_options"; const char CN_AUTH_ALL_SERVERS[] = "auth_all_servers"; const char CN_AUTH_CONNECT_TIMEOUT[] = "auth_connect_timeout"; @@ -82,6 +83,7 @@ const char CN_DESCRIPTION[] = "description"; const char CN_ENABLE_ROOT_USER[] = "enable_root_user"; const char CN_FILTERS[] = "filters"; const char CN_FILTER[] = "filter"; +const char CN_FILTER_DIAGNOSTICS[] = "filter_diagnostics"; const char CN_GATEWAY[] = "gateway"; const char CN_ID[] = "id"; const char CN_INET[] = "inet"; @@ -100,6 +102,7 @@ const char CN_MODULES[] = "modules"; const char CN_MODULE_COMMAND[] = "module_command"; const char CN_MONITORS[] = "monitors"; const char CN_MONITOR[] = "monitor"; +const char CN_MONITOR_DIAGNOSTICS[] = "monitor_diagnostics"; const char CN_MS_TIMESTAMP[] = "ms_timestamp"; const char CN_NAME[] = "name"; const char CN_NON_BLOCKING_POLLS[] = "non_blocking_polls"; @@ -120,6 +123,7 @@ const char CN_LOCAL_ADDRESS[] = "local_address"; const char CN_REQUIRED[] = "required"; const char CN_RETRY_ON_FAILURE[] = "retry_on_failure"; const char CN_ROUTER[] = "router"; +const char CN_ROUTER_DIAGNOSTICS[] = "router_diagnostics"; const char CN_ROUTER_OPTIONS[] = "router_options"; const char CN_SELF[] = "self"; const char CN_SERVERS[] = "servers"; diff --git a/server/core/filter.cc b/server/core/filter.cc index 498825a6d..0fc53ca5f 100644 --- a/server/core/filter.cc +++ b/server/core/filter.cc @@ -516,7 +516,7 @@ json_t* filter_json_data(const MXS_FILTER_DEF* filter, const char* host) if (diag) { - json_object_set_new(attr, "filter_diagnostics", diag); + json_object_set_new(attr, CN_FILTER_DIAGNOSTICS, diag); } } diff --git a/server/core/listener.cc b/server/core/listener.cc index e715aaa3a..3b0332ee7 100644 --- a/server/core/listener.cc +++ b/server/core/listener.cc @@ -526,6 +526,16 @@ json_t* listener_to_json(const SERV_LISTENER* listener) json_t* attr = json_object(); json_object_set_new(attr, CN_PARAMETERS, param); + if (listener->listener->authfunc.diagnostic_json) + { + json_t* diag = listener->listener->authfunc.diagnostic_json(listener); + + if (diag) + { + json_object_set_new(attr, CN_AUTHENTICATOR_DIAGNOSTICS, diag); + } + } + json_t* rval = json_object(); json_object_set_new(rval, CN_ATTRIBUTES, attr); json_object_set_new(rval, CN_ID, json_string(listener->name)); diff --git a/server/core/monitor.cc b/server/core/monitor.cc index 113f56b80..1ff681aed 100644 --- a/server/core/monitor.cc +++ b/server/core/monitor.cc @@ -1864,13 +1864,13 @@ json_t* monitor_json_data(const MXS_MONITOR* monitor, const char* host) /** Monitor parameters */ json_object_set_new(attr, CN_PARAMETERS, monitor_parameters_to_json(monitor)); - if (monitor->handle && monitor->module->diagnostics) + if (monitor->handle && monitor->module->diagnostics_json) { json_t* diag = monitor->module->diagnostics_json(monitor); if (diag) { - json_object_set_new(attr, "monitor_diagnostics", diag); + json_object_set_new(attr, CN_MONITOR_DIAGNOSTICS, diag); } } diff --git a/server/core/service.cc b/server/core/service.cc index d460716cb..622a0742c 100644 --- a/server/core/service.cc +++ b/server/core/service.cc @@ -2654,13 +2654,13 @@ json_t* service_attributes(const SERVICE* service) json_object_set_new(attr, CN_ROUTER, json_string(service->routerModule)); json_object_set_new(attr, CN_STATE, json_string(service_state_to_string(service->state))); - if (service->router && service->router_instance) + if (service->router && service->router_instance && service->router->diagnostics_json) { json_t* diag = service->router->diagnostics_json(service->router_instance); if (diag) { - json_object_set_new(attr, "router_diagnostics", diag); + json_object_set_new(attr, CN_ROUTER_DIAGNOSTICS, diag); } }