MXS-1220: Add POST handling for servers
New servers can now be created by POSTing a new server definition to the /servers/ resource.
This commit is contained in:
committed by
Markus Mäkelä
parent
46344b204a
commit
80104d6dad
@ -25,6 +25,7 @@
|
||||
#include "maxscale/filter.h"
|
||||
#include "maxscale/monitor.h"
|
||||
#include "maxscale/service.h"
|
||||
#include "maxscale/config_runtime.h"
|
||||
|
||||
using std::list;
|
||||
|
||||
@ -103,6 +104,23 @@ bool Resource::matching_variable_path(const string& path, const string& target)
|
||||
return rval;
|
||||
}
|
||||
|
||||
HttpResponse cb_create_server(HttpRequest& request)
|
||||
{
|
||||
json_t* json = request.get_json();
|
||||
|
||||
if (json)
|
||||
{
|
||||
SERVER* server = runtime_create_server_from_json(json);
|
||||
|
||||
if (server)
|
||||
{
|
||||
return HttpResponse(MHD_HTTP_OK, server_to_json(server, request.host()));
|
||||
}
|
||||
}
|
||||
|
||||
return HttpResponse(MHD_HTTP_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
|
||||
HttpResponse cb_all_servers(HttpRequest& request)
|
||||
{
|
||||
return HttpResponse(MHD_HTTP_OK, server_list_to_json(request.host()));
|
||||
@ -262,12 +280,13 @@ public:
|
||||
m_get.push_back(Resource(cb_modules, 2, "maxscale", "modules"));
|
||||
|
||||
m_post.push_back(Resource(cb_flush, 3, "maxscale", "logs", "flush"));
|
||||
m_post.push_back(Resource(cb_create_server, 1, "servers"));
|
||||
}
|
||||
|
||||
HttpResponse process_request_type(ResourceList& list, HttpRequest& request)
|
||||
{
|
||||
for (ResourceList::iterator it = m_get.begin();
|
||||
it != m_get.end(); it++)
|
||||
for (ResourceList::iterator it = list.begin();
|
||||
it != list.end(); it++)
|
||||
{
|
||||
if (it->match(request))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user