MXS-2363 Skeleton of /v1/maxscale/query_classifier/cache
URL routing in place, callback exists, but no actual information.
This commit is contained in:
@ -105,6 +105,7 @@ extern const char CN_AUTH_CONNECT_TIMEOUT[];
|
|||||||
extern const char CN_AUTH_READ_TIMEOUT[];
|
extern const char CN_AUTH_READ_TIMEOUT[];
|
||||||
extern const char CN_AUTH_WRITE_TIMEOUT[];
|
extern const char CN_AUTH_WRITE_TIMEOUT[];
|
||||||
extern const char CN_AUTO[];
|
extern const char CN_AUTO[];
|
||||||
|
extern const char CN_CACHE[];
|
||||||
extern const char CN_CACHE_SIZE[];
|
extern const char CN_CACHE_SIZE[];
|
||||||
extern const char CN_CLASSIFY[];
|
extern const char CN_CLASSIFY[];
|
||||||
extern const char CN_CONNECTION_TIMEOUT[];
|
extern const char CN_CONNECTION_TIMEOUT[];
|
||||||
|
|||||||
@ -36,6 +36,7 @@
|
|||||||
#define MXS_JSON_API_QC_STATS "/maxscale/qc_stats/"
|
#define MXS_JSON_API_QC_STATS "/maxscale/qc_stats/"
|
||||||
#define MXS_JSON_API_QC "/maxscale/query_classifier/"
|
#define MXS_JSON_API_QC "/maxscale/query_classifier/"
|
||||||
#define MXS_JSON_API_QC_CLASSIFY "/maxscale/query_classifier/classify"
|
#define MXS_JSON_API_QC_CLASSIFY "/maxscale/query_classifier/classify"
|
||||||
|
#define MXS_JSON_API_QC_CACHE "/maxscale/query_classifier/cache"
|
||||||
#define MXS_JSON_API_USERS "/users/"
|
#define MXS_JSON_API_USERS "/users/"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -92,6 +92,7 @@ const char CN_AUTH_CONNECT_TIMEOUT[] = "auth_connect_timeout";
|
|||||||
const char CN_AUTH_READ_TIMEOUT[] = "auth_read_timeout";
|
const char CN_AUTH_READ_TIMEOUT[] = "auth_read_timeout";
|
||||||
const char CN_AUTH_WRITE_TIMEOUT[] = "auth_write_timeout";
|
const char CN_AUTH_WRITE_TIMEOUT[] = "auth_write_timeout";
|
||||||
const char CN_AUTO[] = "auto";
|
const char CN_AUTO[] = "auto";
|
||||||
|
const char CN_CACHE[] = "cache";
|
||||||
const char CN_CACHE_SIZE[] = "cache_size";
|
const char CN_CACHE_SIZE[] = "cache_size";
|
||||||
const char CN_CLASSIFY[] = "classify";
|
const char CN_CLASSIFY[] = "classify";
|
||||||
const char CN_CLUSTER[] = "cluster";
|
const char CN_CLUSTER[] = "cluster";
|
||||||
|
|||||||
@ -66,4 +66,13 @@ bool qc_alter_from_json(json_t* pJson);
|
|||||||
*/
|
*/
|
||||||
std::unique_ptr<json_t> qc_classify_as_json(const char* zHost, const std::string& statement);
|
std::unique_ptr<json_t> qc_classify_as_json(const char* zHost, const std::string& statement);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return query classifier cache content.
|
||||||
|
*
|
||||||
|
* @param zHost The MaxScale host.
|
||||||
|
*
|
||||||
|
* @return A json object containing information about the query classifier cache.
|
||||||
|
*/
|
||||||
|
std::unique_ptr<json_t> qc_cache_as_json(const char* zHost);
|
||||||
|
|
||||||
MXS_END_DECLS
|
MXS_END_DECLS
|
||||||
|
|||||||
@ -1504,3 +1504,15 @@ std::unique_ptr<json_t> qc_classify_as_json(const char* zHost, const std::string
|
|||||||
|
|
||||||
return std::unique_ptr<json_t>(mxs_json_resource(zHost, MXS_JSON_API_QC_CLASSIFY, pSelf));
|
return std::unique_ptr<json_t>(mxs_json_resource(zHost, MXS_JSON_API_QC_CLASSIFY, pSelf));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<json_t> qc_cache_as_json(const char* zHost)
|
||||||
|
{
|
||||||
|
json_t* pAttributes = json_object();
|
||||||
|
|
||||||
|
json_t* pSelf = json_object();
|
||||||
|
json_object_set_new(pSelf, CN_ID, json_string(CN_CACHE));
|
||||||
|
json_object_set_new(pSelf, CN_TYPE, json_string(CN_CACHE));
|
||||||
|
json_object_set_new(pSelf, CN_ATTRIBUTES, pAttributes);
|
||||||
|
|
||||||
|
return std::unique_ptr<json_t>(mxs_json_resource(zHost, MXS_JSON_API_QC_CACHE, pSelf));
|
||||||
|
}
|
||||||
|
|||||||
@ -691,6 +691,11 @@ HttpResponse cb_qc_classify(const HttpRequest& request)
|
|||||||
return HttpResponse(MHD_HTTP_OK, qc_classify_as_json(request.host(), sql).release());
|
return HttpResponse(MHD_HTTP_OK, qc_classify_as_json(request.host(), sql).release());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HttpResponse cb_qc_cache(const HttpRequest& request)
|
||||||
|
{
|
||||||
|
return HttpResponse(MHD_HTTP_OK, qc_cache_as_json(request.host()).release());
|
||||||
|
}
|
||||||
|
|
||||||
HttpResponse cb_thread(const HttpRequest& request)
|
HttpResponse cb_thread(const HttpRequest& request)
|
||||||
{
|
{
|
||||||
int id = atoi(request.last_uri_part().c_str());
|
int id = atoi(request.last_uri_part().c_str());
|
||||||
@ -969,6 +974,8 @@ public:
|
|||||||
m_get.push_back(SResource(new Resource(cb_qc, 2, "maxscale", "query_classifier")));
|
m_get.push_back(SResource(new Resource(cb_qc, 2, "maxscale", "query_classifier")));
|
||||||
m_get.push_back(SResource(new Resource(cb_qc_classify, 3,
|
m_get.push_back(SResource(new Resource(cb_qc_classify, 3,
|
||||||
"maxscale", "query_classifier", "classify")));
|
"maxscale", "query_classifier", "classify")));
|
||||||
|
m_get.push_back(SResource(new Resource(cb_qc_cache, 3,
|
||||||
|
"maxscale", "query_classifier", "cache")));
|
||||||
m_get.push_back(SResource(new Resource(cb_all_threads, 2, "maxscale", "threads")));
|
m_get.push_back(SResource(new Resource(cb_all_threads, 2, "maxscale", "threads")));
|
||||||
m_get.push_back(SResource(new Resource(cb_thread, 3, "maxscale", "threads", ":thread")));
|
m_get.push_back(SResource(new Resource(cb_thread, 3, "maxscale", "threads", ":thread")));
|
||||||
m_get.push_back(SResource(new Resource(cb_logs, 2, "maxscale", "logs")));
|
m_get.push_back(SResource(new Resource(cb_logs, 2, "maxscale", "logs")));
|
||||||
|
|||||||
Reference in New Issue
Block a user