MXS-1929: Add runtime creation of filters

Filters can now be created at runtime. This is not yet a usable feature
since the filters can't be added to services at runtime.
This commit is contained in:
Markus Mäkelä
2018-07-17 09:49:34 +03:00
parent d6c378187c
commit 2c1f79c5d1
5 changed files with 239 additions and 15 deletions

View File

@ -325,6 +325,18 @@ HttpResponse cb_create_monitor(const HttpRequest& request)
return HttpResponse(MHD_HTTP_FORBIDDEN, runtime_get_json_error());
}
HttpResponse cb_create_filter(const HttpRequest& request)
{
ss_dassert(request.get_json());
if (runtime_create_filter_from_json(request.get_json()))
{
return HttpResponse(MHD_HTTP_NO_CONTENT);
}
return HttpResponse(MHD_HTTP_FORBIDDEN, runtime_get_json_error());
}
HttpResponse cb_create_service_listener(const HttpRequest& request)
{
SERVICE* service = service_find(request.uri_part(1).c_str());
@ -859,6 +871,7 @@ public:
/** Create new resources */
m_post.push_back(SResource(new Resource(cb_create_server, 1, "servers")));
m_post.push_back(SResource(new Resource(cb_create_monitor, 1, "monitors")));
m_post.push_back(SResource(new Resource(cb_create_filter, 1, "filters")));
m_post.push_back(SResource(new Resource(cb_create_service_listener, 3,
"services", ":service", "listeners")));
m_post.push_back(SResource(new Resource(cb_create_user, 2, "users", "inet")));