diff --git a/server/core/httprequest.cc b/server/core/httprequest.cc index f8580411b..5027b5a3c 100644 --- a/server/core/httprequest.cc +++ b/server/core/httprequest.cc @@ -105,8 +105,8 @@ HttpRequest::HttpRequest(struct MHD_Connection *connection, string url, string m HttpRequest::~HttpRequest() { - } + bool HttpRequest::validate_api_version() { bool rval = false; diff --git a/server/core/resource.cc b/server/core/resource.cc index 8af160e1e..701388668 100644 --- a/server/core/resource.cc +++ b/server/core/resource.cc @@ -573,5 +573,7 @@ static SpinLock resource_lock; HttpResponse resource_handle_request(const HttpRequest& request) { SpinLockGuard guard(resource_lock); + MXS_DEBUG("%s %s %s", request.get_verb().c_str(), request.get_uri().c_str(), + request.get_json_str().c_str()); return resources.process_request(request); } diff --git a/server/core/test/rest-api/after.sh b/server/core/test/rest-api/after.sh index 2bf7ee21e..de2ac6c55 100755 --- a/server/core/test/rest-api/after.sh +++ b/server/core/test/rest-api/after.sh @@ -9,27 +9,15 @@ test -z "$MAXSCALE_DIR" && exit 1 maxscaledir=$MAXSCALE_DIR -pid=`cat $maxscaledir/maxscale.pid` -echo $pid - for ((i=0;i<60;i++)) do - kill -0 $pid - - if [ $? -eq 0 ] - then - # Process is still up - kill $pid - - if [ $i -gt 3 ] - then - sleep 0.1 - fi - else - break - fi + pkill maxscale || break + sleep 0.5 done +# If it wasn't dead before, now it is +pgrep maxscale && pkill -9 maxscale + rm -r $maxscaledir/lib/maxscale rm -r $maxscaledir/cache/maxscale rm -r $maxscaledir/run/maxscale diff --git a/server/core/test/rest-api/test/schema_validation.js b/server/core/test/rest-api/test/schema_validation.js index 17efcb2ef..a7d363069 100644 --- a/server/core/test/rest-api/test/schema_validation.js +++ b/server/core/test/rest-api/test/schema_validation.js @@ -2,6 +2,8 @@ require("../utils.js")() +before(startMaxScale) + describe("Resource Collections", function(){ var tests = [ @@ -48,3 +50,5 @@ describe("Individual Resources", function(){ }); }) }); + +after(stopMaxScale) diff --git a/server/core/test/rest-api/test/server.js b/server/core/test/rest-api/test/server.js new file mode 100644 index 000000000..0d92eb16c --- /dev/null +++ b/server/core/test/rest-api/test/server.js @@ -0,0 +1,82 @@ +require("../utils.js")() + +var server = { + data: { + id: "test-server", + type: "servers", + attributes: { + parameters: { + port: 3003, + address: "127.0.0.1", + protocol: "MySQLBackend" + } + } + } +}; + +var rel = { + services: { + data: [ + { id: "RW-Split-Router", type: "services" }, + { id: "Read-Connection-Router", type: "services" }, + ] + } +}; + +describe("Creating a Server", function(){ + before(startMaxScale) + + it("create the server", function(){ + return request.post(base_url + "/servers/", {json: server }) + .should.be.fulfilled + }); + + it("request the created server", function(){ + return request.get(base_url + "/servers/" + server.data.id) + .should.be.fulfilled + }); + + it("update the created server", function(){ + server.data.attributes.parameters.weight = 10 + return request.put(base_url + "/servers/" + server.data.id, { json: server}) + .should.be.fulfilled + }); + + it("destroy the server", function(){ + return request.delete(base_url + "/servers/" + server.data.id) + .should.be.fulfilled + }); + + after(stopMaxScale) +}); + +describe("Creating a Server With Relationships", function(){ + before(startMaxScale) + + // We need a deep copy of the original server + var rel_server = JSON.parse(JSON.stringify(server)) + rel_server.data.relationships = rel + + it("create the server", function(){ + return request.post(base_url + "/servers/", {json: rel_server}) + .should.be.fulfilled + }); + + it("request the server", function(){ + return request.get(base_url + "/servers/" + rel_server.data.id) + .should.be.fulfilled + }); + + it("remove relationships", function(){ + delete rel_server.data["relationships"] + return request.put(base_url + "/servers/" + rel_server.data.id, {json: rel_server}) + .should.be.fulfilled + }); + + it("destroy the server", function(){ + return request.delete(base_url + "/servers/" + rel_server.data.id) + .should.be.fulfilled + }); + + after(stopMaxScale) +}); diff --git a/server/core/test/rest-api/utils.js b/server/core/test/rest-api/utils.js index 3c4990ebb..88664616e 100644 --- a/server/core/test/rest-api/utils.js +++ b/server/core/test/rest-api/utils.js @@ -421,7 +421,7 @@ module.exports = function() { this.validate_func = ajv.compile(json_api_schema) this.validate = validate_json this.base_url = "http://localhost:8989/v1" - this.before(function(done) { + this.startMaxScale = function(done) { child_process.execFile("./before.sh", function(err, stdout, stderr) { if (process.env.MAXSCALE_DIR == null) { throw new Error("MAXSCALE_DIR is not set"); @@ -429,10 +429,10 @@ module.exports = function() { done() }) - }); - this.after(function(done) { + }; + this.stopMaxScale = function(done) { child_process.execFile("./after.sh", function(err, stdout, stderr) { done() }) - }); + }; }