MXS-1220: Add server test
The test creates, alters and destroys servers.
This commit is contained in:
parent
a3c683ab87
commit
9495438f2b
@ -105,8 +105,8 @@ HttpRequest::HttpRequest(struct MHD_Connection *connection, string url, string m
|
||||
|
||||
HttpRequest::~HttpRequest()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool HttpRequest::validate_api_version()
|
||||
{
|
||||
bool rval = false;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
82
server/core/test/rest-api/test/server.js
Normal file
82
server/core/test/rest-api/test/server.js
Normal file
@ -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)
|
||||
});
|
@ -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()
|
||||
})
|
||||
});
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user