Fix calls to diagnostics_json
Add missing listener JSON diagnostics call. Check that the diagnostics_json function exists before calling it. As the protocol modules don't have diagnostics functions, they aren't called. Replace hard-coded strings with constant parameters. This makes it slightly cleaner.
This commit is contained in:
parent
94f29a11c5
commit
dcf9d7f152
@ -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[];
|
||||
|
@ -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";
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user