diff --git a/maxctrl/test/states.js b/maxctrl/test/states.js index f104df737..502276bd7 100644 --- a/maxctrl/test/states.js +++ b/maxctrl/test/states.js @@ -22,6 +22,20 @@ describe("Set/Clear Commands", function() { }) }) + it('force maintenance mode', function() { + return verifyCommand('set server server1 maintenance --force', 'servers/server1') + .then(function(res) { + res.data.attributes.state.should.match(/Maintenance/) + }) + }) + + it('clear maintenance mode', function() { + return verifyCommand('clear server server1 maintenance', 'servers/server1') + .then(function(res) { + res.data.attributes.state.should.not.match(/Maintenance/) + }) + }) + it('reject set incorrect state', function() { return doCommand('set server server2 something') .should.be.rejected diff --git a/server/core/test/rest-api/test/server.js b/server/core/test/rest-api/test/server.js index 36bc95ec7..ca6cd7da2 100644 --- a/server/core/test/rest-api/test/server.js +++ b/server/core/test/rest-api/test/server.js @@ -156,6 +156,18 @@ describe("Server State", function() { }) }); + it("force server into maintenance", function() { + return request.put(base_url + "/servers/" + server.data.id + "/set?state=maintenance&force=yes") + .then(function(resp) { + return request.get(base_url + "/servers/" + server.data.id) + }) + .then(function(resp) { + var srv = JSON.parse(resp) + srv.data.attributes.state.should.match(/Maintenance/) + srv.data.attributes.statistics.connections.should.be.equal(0) + }) + }); + it("clear maintenance", function() { return request.put(base_url + "/servers/" + server.data.id + "/clear?state=maintenance") .then(function(resp) {