opts.skip for destructive stuff
This commit is contained in:
parent
2eeb68cba5
commit
403e4bd204
@ -12,7 +12,6 @@
|
|||||||
* Test create/start/stop/delete/etc. work flows
|
* Test create/start/stop/delete/etc. work flows
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var assert = require('assert');
|
|
||||||
var f = require('util').format;
|
var f = require('util').format;
|
||||||
|
|
||||||
var vasync = require('vasync');
|
var vasync = require('vasync');
|
||||||
@ -26,12 +25,9 @@ var VM_ALIAS = 'node-triton-test-vm-1';
|
|||||||
var VM_IMAGE = 'base-64@15.2.0';
|
var VM_IMAGE = 'base-64@15.2.0';
|
||||||
var VM_PACKAGE = 't4-standard-128M';
|
var VM_PACKAGE = 't4-standard-128M';
|
||||||
|
|
||||||
// TODO clean this up
|
var opts = {
|
||||||
assert.equal(h.CONFIG.url, 'https://us-east-3b.api.joyent.com');
|
skip: !h.CONFIG.destructiveAllowed
|
||||||
if (h.CONFIG.destructiveAllowed !== true) {
|
};
|
||||||
console.error('skipping manage integration tests - destructive actions disabled');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* h.triton wrapper that:
|
* h.triton wrapper that:
|
||||||
@ -60,78 +56,84 @@ var instance;
|
|||||||
|
|
||||||
// --- Tests
|
// --- Tests
|
||||||
|
|
||||||
// create a test machine (blocking) and output JSON
|
if (opts.skip) {
|
||||||
test('triton create', function (t) {
|
console.error('** skipping manage workflow tests');
|
||||||
triton(t, ['create', '-wjn', VM_ALIAS, VM_IMAGE, VM_PACKAGE],
|
console.error('** set "destructiveAllowed" to enable');
|
||||||
function (stdout) {
|
}
|
||||||
|
test('triton manage workflow', opts, function (t) {
|
||||||
|
// create a test machine (blocking) and output JSON
|
||||||
|
test('triton create', function (t) {
|
||||||
|
triton(t, ['create', '-wjn', VM_ALIAS, VM_IMAGE, VM_PACKAGE],
|
||||||
|
function (stdout) {
|
||||||
|
|
||||||
|
// parse JSON response
|
||||||
|
var lines = stdout.trim().split('\n');
|
||||||
|
t.equal(lines.length, 2, 'correct number of JSON lines');
|
||||||
|
try {
|
||||||
|
lines = lines.map(function (line) {
|
||||||
|
return JSON.parse(line);
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
t.fail('failed to parse JSON');
|
||||||
|
t.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
instance = lines[1];
|
||||||
|
t.equal(lines[0].id, lines[1].id, 'correct UUID given');
|
||||||
|
t.equal(lines[1].state, 'running', 'correct machine state');
|
||||||
|
|
||||||
// parse JSON response
|
|
||||||
var lines = stdout.trim().split('\n');
|
|
||||||
t.equal(lines.length, 2, 'correct number of JSON lines');
|
|
||||||
try {
|
|
||||||
lines = lines.map(function (line) {
|
|
||||||
return JSON.parse(line);
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
t.fail('failed to parse JSON');
|
|
||||||
t.end();
|
t.end();
|
||||||
}
|
|
||||||
|
|
||||||
instance = lines[1];
|
|
||||||
t.equal(lines[0].id, lines[1].id, 'correct UUID given');
|
|
||||||
t.equal(lines[1].state, 'running', 'correct machine state');
|
|
||||||
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// test `triton instance -j` with the UUID, the alias, and the short ID
|
|
||||||
test('triton instance', function (t) {
|
|
||||||
var uuid = instance.id;
|
|
||||||
var shortId = common.uuidToShortId(uuid);
|
|
||||||
vasync.parallel({
|
|
||||||
funcs: [
|
|
||||||
function (cb) {
|
|
||||||
triton(t, ['instance', '-j', VM_ALIAS], function (stdout) {
|
|
||||||
cb(null, stdout);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
function (cb) {
|
|
||||||
triton(t, ['instance', '-j', uuid], function (stdout) {
|
|
||||||
cb(null, stdout);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
function (cb) {
|
|
||||||
triton(t, ['instance', '-j', shortId], function (stdout) {
|
|
||||||
cb(null, stdout);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
],
|
|
||||||
}, function (err, results) {
|
|
||||||
if (h.ifErr(t, err, 'no error'))
|
|
||||||
return t.end();
|
|
||||||
|
|
||||||
var output;
|
|
||||||
try {
|
|
||||||
output = results.operations.map(function (op) {
|
|
||||||
return JSON.parse(op.result);
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
t.fail('failed to parse JSON');
|
|
||||||
t.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
output.forEach(function (res) {
|
|
||||||
t.deepEqual(output[0], res, 'same data');
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
t.end();
|
// test `triton instance -j` with the UUID, the alias, and the short ID
|
||||||
});
|
test('triton instance', function (t) {
|
||||||
});
|
var uuid = instance.id;
|
||||||
|
var shortId = common.uuidToShortId(uuid);
|
||||||
// remove test instance
|
vasync.parallel({
|
||||||
test('triton delete', function (t) {
|
funcs: [
|
||||||
triton(t, ['delete', '-w', instance.id], function (stdout) {
|
function (cb) {
|
||||||
t.end();
|
triton(t, ['instance', '-j', VM_ALIAS], function (stdout) {
|
||||||
|
cb(null, stdout);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function (cb) {
|
||||||
|
triton(t, ['instance', '-j', uuid], function (stdout) {
|
||||||
|
cb(null, stdout);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function (cb) {
|
||||||
|
triton(t, ['instance', '-j', shortId], function (stdout) {
|
||||||
|
cb(null, stdout);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}, function (err, results) {
|
||||||
|
if (h.ifErr(t, err, 'no error'))
|
||||||
|
return t.end();
|
||||||
|
|
||||||
|
var output;
|
||||||
|
try {
|
||||||
|
output = results.operations.map(function (op) {
|
||||||
|
return JSON.parse(op.result);
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
t.fail('failed to parse JSON');
|
||||||
|
t.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
output.forEach(function (res) {
|
||||||
|
t.deepEqual(output[0], res, 'same data');
|
||||||
|
});
|
||||||
|
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// remove test instance
|
||||||
|
test('triton delete', function (t) {
|
||||||
|
triton(t, ['delete', '-w', instance.id], function (stdout) {
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user