TRITON-190 remove node-triton support for passing --brand flag
This commit is contained in:
parent
26b97b5bed
commit
39635cd0a2
@ -6,6 +6,12 @@ Known issues:
|
|||||||
|
|
||||||
## not yet released
|
## not yet released
|
||||||
|
|
||||||
|
## 5.9.0
|
||||||
|
|
||||||
|
- [TRITON-190] remove support for `triton instance create --brand=bhyve ...`.
|
||||||
|
The rest of bhyve support will remain, but selection of bhyve brand will
|
||||||
|
happen via images or packages that are bhyve-specific.
|
||||||
|
|
||||||
## 5.8.0
|
## 5.8.0
|
||||||
|
|
||||||
- [TRITON-124] add node-triton support for bhyve. This adds a `triton instance
|
- [TRITON-124] add node-triton support for bhyve. This adds a `triton instance
|
||||||
|
@ -376,9 +376,6 @@ function do_create(subcmd, opts, args, cb) {
|
|||||||
function (net) { return net.id; })
|
function (net) { return net.id; })
|
||||||
};
|
};
|
||||||
|
|
||||||
if (opts.brand) {
|
|
||||||
createOpts.brand = opts.brand;
|
|
||||||
}
|
|
||||||
if (ctx.volMounts) {
|
if (ctx.volMounts) {
|
||||||
createOpts.volumes = ctx.volMounts;
|
createOpts.volumes = ctx.volMounts;
|
||||||
}
|
}
|
||||||
@ -495,13 +492,6 @@ do_create.options = [
|
|||||||
{
|
{
|
||||||
group: 'Create options'
|
group: 'Create options'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
names: ['brand'],
|
|
||||||
helpArg: 'BRAND',
|
|
||||||
type: 'string',
|
|
||||||
help: 'Override the default brand for this instance. Most users will ' +
|
|
||||||
'not need this option.'
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
names: ['name', 'n'],
|
names: ['name', 'n'],
|
||||||
helpArg: 'NAME',
|
helpArg: 'NAME',
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "triton",
|
"name": "triton",
|
||||||
"description": "Joyent Triton CLI and client (https://www.joyent.com/triton)",
|
"description": "Joyent Triton CLI and client (https://www.joyent.com/triton)",
|
||||||
"version": "5.8.0",
|
"version": "5.9.0",
|
||||||
"author": "Joyent (joyent.com)",
|
"author": "Joyent (joyent.com)",
|
||||||
"homepage": "https://github.com/joyent/node-triton",
|
"homepage": "https://github.com/joyent/node-triton",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -26,11 +26,6 @@
|
|||||||
// to true.
|
// to true.
|
||||||
"skipAffinityTests": false,
|
"skipAffinityTests": false,
|
||||||
|
|
||||||
// Optional. Set to 'true' to skip testing of bhyve things. Some DCs might
|
|
||||||
// not support bhyve (no packages or images available, and/or no CNs with
|
|
||||||
// bhyve compatible hardware).
|
|
||||||
"skipBhyveTests": false,
|
|
||||||
|
|
||||||
// Optional. Set to 'true' to skip testing of KVM things. Some DCs might
|
// Optional. Set to 'true' to skip testing of KVM things. Some DCs might
|
||||||
// not support KVM (no KVM packages or images available).
|
// not support KVM (no KVM packages or images available).
|
||||||
"skipKvmTests": false,
|
"skipKvmTests": false,
|
||||||
@ -41,12 +36,6 @@
|
|||||||
"resizePackage": "<package name>",
|
"resizePackage": "<package name>",
|
||||||
"image": "<image uuid, name or name@version>"
|
"image": "<image uuid, name or name@version>"
|
||||||
|
|
||||||
// The params used for test *bhyve* provisions. By default the tests use:
|
|
||||||
// the smallest RAM package with "kvm" in the name, the latest
|
|
||||||
// ubuntu-certified image.
|
|
||||||
"bhyvePackage": "<package name or uuid>",
|
|
||||||
"bhyveImage": "<image uuid, name or name@version>",
|
|
||||||
|
|
||||||
// The params used for test *KVM* provisions. By default the tests use:
|
// The params used for test *KVM* provisions. By default the tests use:
|
||||||
// the smallest RAM package with "kvm" in the name, the latest
|
// the smallest RAM package with "kvm" in the name, the latest
|
||||||
// ubuntu-certified image.
|
// ubuntu-certified image.
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
/*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2018, Joyent, Inc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Test creating a bhyve VM.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var os = require('os');
|
|
||||||
|
|
||||||
var format = require('util').format;
|
|
||||||
var test = require('tape');
|
|
||||||
|
|
||||||
var h = require('./helpers');
|
|
||||||
|
|
||||||
|
|
||||||
// --- globals
|
|
||||||
|
|
||||||
var INST_ALIAS = 'nodetritontest-instance-create-bhyve-' +
|
|
||||||
os.hostname();
|
|
||||||
|
|
||||||
var testOpts = {
|
|
||||||
skip: !h.CONFIG.allowWriteActions || h.CONFIG.skipBhyveTests
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// --- Tests
|
|
||||||
|
|
||||||
test('triton image ...', testOpts, function (tt) {
|
|
||||||
var imgId;
|
|
||||||
var inst;
|
|
||||||
var pkgId;
|
|
||||||
|
|
||||||
tt.comment('Test config:');
|
|
||||||
Object.keys(h.CONFIG).forEach(function (key) {
|
|
||||||
var value = h.CONFIG[key];
|
|
||||||
tt.comment(format('- %s: %j', key, value));
|
|
||||||
});
|
|
||||||
|
|
||||||
// TODO: `triton rm -f` would be helpful for this
|
|
||||||
tt.test(' setup: rm existing inst ' + INST_ALIAS, function (t) {
|
|
||||||
h.deleteTestInst(t, INST_ALIAS, function onDel() {
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
tt.test(' setup: find image', function (t) {
|
|
||||||
h.getTestBhyveImg(t, function (err, _imgId) {
|
|
||||||
t.ifError(err, 'getTestImg' + (err ? ': ' + err : ''));
|
|
||||||
imgId = _imgId;
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
tt.test(' setup: find test package', function (t) {
|
|
||||||
h.getTestBhyvePkg(t, function (err, _pkgId) {
|
|
||||||
t.ifError(err, 'getTestPkg' + (err ? ': ' + err : ''));
|
|
||||||
pkgId = _pkgId;
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
tt.test(' setup: triton create ... -n ' + INST_ALIAS, function (t) {
|
|
||||||
var argv = ['create', '-wj', '--brand=bhyve', '-n', INST_ALIAS,
|
|
||||||
imgId, pkgId];
|
|
||||||
h.safeTriton(t, argv, function (err, stdout) {
|
|
||||||
var lines = h.jsonStreamParse(stdout);
|
|
||||||
inst = lines[1];
|
|
||||||
t.ok(inst.id, 'inst.id: ' + inst.id);
|
|
||||||
t.equal(lines[1].state, 'running', 'inst is running');
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// TODO: Once have `triton ssh ...` working in test suite without hangs,
|
|
||||||
// then want to check that the created VM works.
|
|
||||||
|
|
||||||
// Remove instance. Add a test timeout, because '-w' on delete doesn't
|
|
||||||
// have a way to know if the attempt failed or if it is just taking a
|
|
||||||
// really long time.
|
|
||||||
tt.test(' cleanup: triton rm', {timeout: 10 * 60 * 1000}, function (t) {
|
|
||||||
h.safeTriton(t, ['rm', '-w', inst.id], function () {
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2018 Joyent, Inc.
|
* Copyright 2017 Joyent, Inc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -211,46 +211,6 @@ function getTestImg(t, cb) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Find and return an image that can be used for test *bhyve* provisions.
|
|
||||||
*
|
|
||||||
* @param {Tape} t - tape test object
|
|
||||||
* @param {Function} cb - `function (err, imgId)`
|
|
||||||
* where `imgId` is an image identifier (an image name, shortid, or id).
|
|
||||||
*/
|
|
||||||
function getTestBhyveImg(t, cb) {
|
|
||||||
if (CONFIG.bhyveImage) {
|
|
||||||
assert.string(CONFIG.bhyvePackage, 'CONFIG.bhyvePackage');
|
|
||||||
t.ok(CONFIG.bhyveImage, 'bhyveImage from config: ' + CONFIG.bhyveImage);
|
|
||||||
cb(null, CONFIG.bhyveImage);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var candidateImageNames = {
|
|
||||||
'ubuntu-certified-16.04': true
|
|
||||||
};
|
|
||||||
safeTriton(t, ['img', 'ls', '-j'], function (err, stdout) {
|
|
||||||
var imgId;
|
|
||||||
var imgs = jsonStreamParse(stdout);
|
|
||||||
// Newest images first.
|
|
||||||
tabula.sortArrayOfObjects(imgs, ['-published_at']);
|
|
||||||
var imgRepr;
|
|
||||||
for (var i = 0; i < imgs.length; i++) {
|
|
||||||
var img = imgs[i];
|
|
||||||
if (candidateImageNames[img.name]) {
|
|
||||||
imgId = img.id;
|
|
||||||
imgRepr = f('%s@%s', img.name, img.version);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
t.ok(imgId,
|
|
||||||
f('latest bhyve image (using subset of supported names): %s (%s)',
|
|
||||||
imgId, imgRepr));
|
|
||||||
cb(err, imgId);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find and return an image that can be used for test *KVM* provisions.
|
* Find and return an image that can be used for test *KVM* provisions.
|
||||||
*
|
*
|
||||||
@ -321,38 +281,6 @@ function getTestPkg(t, cb) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Find and return an package that can be used for *bhyve* test provisions.
|
|
||||||
*
|
|
||||||
* @param {Tape} t - tape test object
|
|
||||||
* @param {Function} cb - `function (err, pkgId)`
|
|
||||||
* where `pkgId` is an package identifier (a name, shortid, or id).
|
|
||||||
*/
|
|
||||||
function getTestBhyvePkg(t, cb) {
|
|
||||||
if (CONFIG.bhyvePackage) {
|
|
||||||
assert.string(CONFIG.bhyvePackage, 'CONFIG.bhyvePackage');
|
|
||||||
t.ok(CONFIG.bhyvePackage, 'bhyvePackage from config: ' +
|
|
||||||
CONFIG.bhyvePackage);
|
|
||||||
cb(null, CONFIG.bhyvePackage);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// bhyve uses the same packages as kvm
|
|
||||||
safeTriton(t, ['pkg', 'ls', '-j'], function (err, stdout) {
|
|
||||||
var pkgs = jsonStreamParse(stdout);
|
|
||||||
// Filter on those with 'kvm' in the name.
|
|
||||||
pkgs = pkgs.filter(function (pkg) {
|
|
||||||
return pkg.name.indexOf('kvm') !== -1;
|
|
||||||
});
|
|
||||||
// Smallest RAM first.
|
|
||||||
tabula.sortArrayOfObjects(pkgs, ['memory']);
|
|
||||||
var pkgId = pkgs[0].id;
|
|
||||||
t.ok(pkgId, f('smallest (RAM) available kvm package: %s (%s)',
|
|
||||||
pkgId, pkgs[0].name));
|
|
||||||
cb(null, pkgId);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Find and return an package that can be used for *KVM* test provisions.
|
* Find and return an package that can be used for *KVM* test provisions.
|
||||||
*
|
*
|
||||||
@ -583,10 +511,8 @@ module.exports = {
|
|||||||
deleteTestImg: deleteTestImg,
|
deleteTestImg: deleteTestImg,
|
||||||
|
|
||||||
getTestImg: getTestImg,
|
getTestImg: getTestImg,
|
||||||
getTestBhyveImg: getTestBhyveImg,
|
|
||||||
getTestKvmImg: getTestKvmImg,
|
getTestKvmImg: getTestKvmImg,
|
||||||
getTestPkg: getTestPkg,
|
getTestPkg: getTestPkg,
|
||||||
getTestBhyvePkg: getTestBhyvePkg,
|
|
||||||
getTestKvmPkg: getTestKvmPkg,
|
getTestKvmPkg: getTestKvmPkg,
|
||||||
getResizeTestPkg: getResizeTestPkg,
|
getResizeTestPkg: getResizeTestPkg,
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user