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
```
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
@ -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:
```
POST /v1/servers/db-server-1/set?status=maintenance
PUT /v1/servers/db-server-1/set?status=maintenance
```
#### Response

View File

@ -727,8 +727,6 @@ public:
"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", "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 */
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_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_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_monitor, 2, "monitors", ":monitor")));

View File

@ -90,7 +90,7 @@ describe("Server Status", 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) {
return request.get(base_url + "/servers/" + server.data.id)
})
@ -101,7 +101,7 @@ describe("Server Status", 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) {
return request.get(base_url + "/servers/" + server.data.id)
})
@ -112,12 +112,12 @@ describe("Server Status", 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
});
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
});