MXS-1220: Use PUT to set/clear server

The correct method for set/clear endpoints is PUT, not POST, as the
resource always ends up in the desired state, regardless of its current
state.
This commit is contained in:
Markus Mäkelä
2017-06-30 16:04:37 +03:00
parent 30a40a090b
commit a8bfdac49c
3 changed files with 8 additions and 8 deletions

View File

@ -504,7 +504,7 @@ Status: 403 Forbidden
### Set server status ### Set server status
``` ```
POST /v1/servers/:name/set PUT /v1/servers/:name/set
``` ```
The _:name_ in the URI must map to a server name with all whitespace replaced The _:name_ in the URI must map to a server name with all whitespace replaced
@ -525,7 +525,7 @@ For example, to set the server _db-server-1_ into maintenance mode, a request to
the following URL must be made: the following URL must be made:
``` ```
POST /v1/servers/db-server-1/set?status=maintenance PUT /v1/servers/db-server-1/set?status=maintenance
``` ```
#### Response #### Response

View File

@ -727,8 +727,6 @@ public:
"services", ":service", "listeners"))); "services", ":service", "listeners")));
m_post.push_back(SResource(new Resource(cb_create_user, 2, "users", "inet"))); m_post.push_back(SResource(new Resource(cb_create_user, 2, "users", "inet")));
m_post.push_back(SResource(new Resource(cb_create_user, 2, "users", "unix"))); m_post.push_back(SResource(new Resource(cb_create_user, 2, "users", "unix")));
m_post.push_back(SResource(new Resource(cb_set_server, 3, "servers", ":server", "set")));
m_post.push_back(SResource(new Resource(cb_clear_server, 3, "servers", ":server", "clear")));
/** For all module commands that modify state/data */ /** For all module commands that modify state/data */
m_post.push_back(SResource(new Resource(cb_modulecmd, 4, "maxscale", "modules", ":module", "?"))); m_post.push_back(SResource(new Resource(cb_modulecmd, 4, "maxscale", "modules", ":module", "?")));
@ -745,6 +743,8 @@ public:
m_put.push_back(SResource(new Resource(cb_start_monitor, 3, "monitors", ":monitor", "start"))); m_put.push_back(SResource(new Resource(cb_start_monitor, 3, "monitors", ":monitor", "start")));
m_put.push_back(SResource(new Resource(cb_stop_service, 3, "services", ":service", "stop"))); m_put.push_back(SResource(new Resource(cb_stop_service, 3, "services", ":service", "stop")));
m_put.push_back(SResource(new Resource(cb_start_service, 3, "services", ":service", "start"))); m_put.push_back(SResource(new Resource(cb_start_service, 3, "services", ":service", "start")));
m_put.push_back(SResource(new Resource(cb_set_server, 3, "servers", ":server", "set")));
m_put.push_back(SResource(new Resource(cb_clear_server, 3, "servers", ":server", "clear")));
m_delete.push_back(SResource(new Resource(cb_delete_server, 2, "servers", ":server"))); m_delete.push_back(SResource(new Resource(cb_delete_server, 2, "servers", ":server")));
m_delete.push_back(SResource(new Resource(cb_delete_monitor, 2, "monitors", ":monitor"))); m_delete.push_back(SResource(new Resource(cb_delete_monitor, 2, "monitors", ":monitor")));

View File

@ -90,7 +90,7 @@ describe("Server Status", function() {
}); });
it("set server into maintenance", function() { it("set server into maintenance", function() {
return request.post(base_url + "/servers/" + server.data.id + "/set?status=maintenance") return request.put(base_url + "/servers/" + server.data.id + "/set?status=maintenance")
.then(function(resp) { .then(function(resp) {
return request.get(base_url + "/servers/" + server.data.id) return request.get(base_url + "/servers/" + server.data.id)
}) })
@ -101,7 +101,7 @@ describe("Server Status", function() {
}); });
it("clear maintenance", function() { it("clear maintenance", function() {
return request.post(base_url + "/servers/" + server.data.id + "/clear?status=maintenance") return request.put(base_url + "/servers/" + server.data.id + "/clear?status=maintenance")
.then(function(resp) { .then(function(resp) {
return request.get(base_url + "/servers/" + server.data.id) return request.get(base_url + "/servers/" + server.data.id)
}) })
@ -112,12 +112,12 @@ describe("Server Status", function() {
}); });
it("set invalid status value", function() { it("set invalid status value", function() {
return request.post(base_url + "/servers/" + server.data.id + "/set?status=somethingstrange") return request.put(base_url + "/servers/" + server.data.id + "/set?status=somethingstrange")
.should.be.rejected .should.be.rejected
}); });
it("clear invalid status value", function() { it("clear invalid status value", function() {
return request.post(base_url + "/servers/" + server.data.id + "/clear?status=somethingstrange") return request.put(base_url + "/servers/" + server.data.id + "/clear?status=somethingstrange")
.should.be.rejected .should.be.rejected
}); });