mirror of
https://github.com/yldio/copilot.git
synced 2024-12-01 07:30:07 +02:00
chore(portal-data): add manifest and versions support
This commit is contained in:
parent
af86c0a4c4
commit
b6c6139023
@ -68,7 +68,7 @@ module.exports = class Data {
|
|||||||
this.getDatacenter({ id: portal.datacenter_id }, next);
|
this.getDatacenter({ id: portal.datacenter_id }, next);
|
||||||
},
|
},
|
||||||
(next) => {
|
(next) => {
|
||||||
this.getDeploymentGroups(portal.deployment_group_ids, next);
|
this.getDeploymentGroups({ ids: portal.deployment_group_ids }, next);
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}, (err, results) => {
|
}, (err, results) => {
|
||||||
@ -112,7 +112,7 @@ module.exports = class Data {
|
|||||||
|
|
||||||
// deployment_groups
|
// deployment_groups
|
||||||
|
|
||||||
createDeploymentGroup ({ name }, cb) {
|
createDeploymentGroup (clientDeploymentGroup, cb) {
|
||||||
// trigger deployment
|
// trigger deployment
|
||||||
// create deployment queue (we should think about what is a deployment queue)
|
// create deployment queue (we should think about what is a deployment queue)
|
||||||
// create the ConvergencePlans
|
// create the ConvergencePlans
|
||||||
@ -120,12 +120,14 @@ module.exports = class Data {
|
|||||||
// create a Version
|
// create a Version
|
||||||
// update the DeploymentGroup
|
// update the DeploymentGroup
|
||||||
|
|
||||||
this._db.deployment_groups.insert({ name }, (err, key) => {
|
const deploymentGroup = Transform.toDeploymentGroup(clientDeploymentGroup);
|
||||||
|
this._db.deployment_groups.insert(deploymentGroup, (err, key) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
cb(null, Transform.fromDeploymentGroup({ id: key, name }));
|
deploymentGroup.id = key;
|
||||||
|
cb(null, Transform.fromDeploymentGroup(deploymentGroup));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,19 +141,29 @@ module.exports = class Data {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getDeploymentGroups (ids, cb) {
|
getDeploymentGroups ({ ids, name, slug }, cb) {
|
||||||
this._db.deployment_groups.get(ids, (err, deploymentGroups) => {
|
const finish = (err, deploymentGroups) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
deploymentGroups = deploymentGroups || [];
|
deploymentGroups = deploymentGroups || [];
|
||||||
cb(null, deploymentGroups.map(Transform.fromDeploymentGroup));
|
cb(null, deploymentGroups.map(Transform.fromDeploymentGroup));
|
||||||
});
|
};
|
||||||
|
|
||||||
|
if (ids) {
|
||||||
|
return this._db.deployment_groups.get(ids, finish);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name) {
|
||||||
|
return this._db.deployment_groups.query({ name }, finish);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._db.deployment_groups.query({ slug }, finish);
|
||||||
}
|
}
|
||||||
|
|
||||||
getDeploymentGroup (id, cb) {
|
getDeploymentGroup (query, cb) {
|
||||||
this._db.deployment_groups.single({ id }, (err, deploymentGroup) => {
|
this._db.deployment_groups.single(query, (err, deploymentGroup) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
@ -164,24 +176,102 @@ module.exports = class Data {
|
|||||||
// versions
|
// versions
|
||||||
|
|
||||||
createVersion (clientVersion, cb) {
|
createVersion (clientVersion, cb) {
|
||||||
const version = Transform.toVersion(clientVersion);
|
Hoek.assert(clientVersion && clientVersion.manifestId, 'manifestId is required');
|
||||||
this._db.versions.insert(version, (err, key) => {
|
|
||||||
|
// go get the manifest to find the deployment group id so we can update it
|
||||||
|
this.getManifest({ id: clientVersion.manifestId }, (err, manifest) => {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!manifest) {
|
||||||
|
return cb(new Error('manifest not found for version'));
|
||||||
|
}
|
||||||
|
|
||||||
|
const version = Transform.toVersion(clientVersion);
|
||||||
|
this._db.versions.insert(version, (err, key) => {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._db.deployment_groups.update(manifest.deploymentGroupId, { history_version_ids: this._db.append(key) }, (err) => {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
version.id = key;
|
||||||
|
cb(null, Transform.fromVersion(version));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getVersion ({ id, manifestId }, cb) {
|
||||||
|
const query = id ? { id } : { manifest_id: manifestId };
|
||||||
|
this._db.versions.single(query, (err, version) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
version.id = key;
|
|
||||||
cb(null, Transform.fromVersion(version));
|
cb(null, Transform.fromVersion(version));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getVersion (id, cb) {
|
getVersions ({ manifestId, deploymentGroupId }, cb) {
|
||||||
this._db.versions.single({ id }, (err, version) => {
|
const finish = (err, versions) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return cb(err);
|
return cb(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
cb(null, Transform.fromVersion(version));
|
versions = versions || [];
|
||||||
|
cb(null, versions.map(Transform.fromVersion));
|
||||||
|
};
|
||||||
|
|
||||||
|
if (manifestId) {
|
||||||
|
return this._db.versions.query({ manifest_id: manifestId }, finish);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getDeploymentGroup({ id: deploymentGroupId }, (err, deploymentGroup) => {
|
||||||
|
if (err) {
|
||||||
|
return finish(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._db.versions.get(deploymentGroup.history, finish);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// manifests
|
||||||
|
|
||||||
|
provisionManifest (clientManifest, cb) {
|
||||||
|
this._db.manifests.insert(Transform.toManifest(clientManifest), (err, key) => {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getManifest({ id: key }, cb);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getManifest ({ id }, cb) {
|
||||||
|
this._db.manifests.single({ id }, (err, manifest) => {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
cb(null, Transform.fromManifest(manifest || {}));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getManifests ({ type, deploymentGroupId }, cb) {
|
||||||
|
const query = type ? { type } : { deployment_group_id: deploymentGroupId };
|
||||||
|
this._db.manifests.query(query, (err, manifests) => {
|
||||||
|
if (err) {
|
||||||
|
return cb(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
manifests = manifests || [];
|
||||||
|
cb(null, manifests.map(Transform.fromManifest));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -37,6 +37,16 @@ exports.fromDeploymentGroup = function (deploymentGroup, services) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.toDeploymentGroup = function ({ name }) {
|
||||||
|
return {
|
||||||
|
name,
|
||||||
|
slug: '',
|
||||||
|
services: [],
|
||||||
|
version_id: '',
|
||||||
|
history_version_ids: []
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
exports.fromService = function (service) {
|
exports.fromService = function (service) {
|
||||||
|
|
||||||
@ -92,3 +102,28 @@ exports.fromPlan = function (plan) {
|
|||||||
actions: plan.actions
|
actions: plan.actions
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
exports.toManifest = function (clientManifest) {
|
||||||
|
return {
|
||||||
|
id: clientManifest.id,
|
||||||
|
deployment_group_id: clientManifest.deploymentGroupId,
|
||||||
|
created: clientManifest.created || Date.now(),
|
||||||
|
type: clientManifest.type,
|
||||||
|
format: clientManifest.format,
|
||||||
|
raw: clientManifest.raw,
|
||||||
|
json: clientManifest.json
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.fromManifest = function (manifest) {
|
||||||
|
return {
|
||||||
|
id: manifest.id,
|
||||||
|
deploymentGroupId: manifest.deployment_group_id,
|
||||||
|
created: manifest.created,
|
||||||
|
type: manifest.type,
|
||||||
|
format: manifest.format,
|
||||||
|
raw: manifest.raw,
|
||||||
|
json: manifest.json
|
||||||
|
};
|
||||||
|
};
|
||||||
|
@ -101,7 +101,7 @@ describe('deployment groups', () => {
|
|||||||
data.createDeploymentGroup({ name }, (err, createdDeploymentGroup) => {
|
data.createDeploymentGroup({ name }, (err, createdDeploymentGroup) => {
|
||||||
expect(err).to.not.exist();
|
expect(err).to.not.exist();
|
||||||
expect(createdDeploymentGroup.id).to.exist();
|
expect(createdDeploymentGroup.id).to.exist();
|
||||||
data.getDeploymentGroup(createdDeploymentGroup.id, (err, deploymentGroup) => {
|
data.getDeploymentGroup({ id: createdDeploymentGroup.id }, (err, deploymentGroup) => {
|
||||||
expect(err).to.not.exist();
|
expect(err).to.not.exist();
|
||||||
expect(deploymentGroup).to.equal(createdDeploymentGroup);
|
expect(deploymentGroup).to.equal(createdDeploymentGroup);
|
||||||
done();
|
done();
|
||||||
@ -125,10 +125,14 @@ describe('deployment groups', () => {
|
|||||||
expect(err).to.not.exist();
|
expect(err).to.not.exist();
|
||||||
expect(createdDeploymentGroup1.id).to.exist();
|
expect(createdDeploymentGroup1.id).to.exist();
|
||||||
|
|
||||||
data.getDeploymentGroups([createdDeploymentGroup1.id, createdDeploymentGroup2.id], (err, deploymentGroups) => {
|
data.getDeploymentGroups({ ids: [createdDeploymentGroup1.id, createdDeploymentGroup2.id] }, (err, deploymentGroups) => {
|
||||||
expect(err).to.not.exist();
|
expect(err).to.not.exist();
|
||||||
expect(deploymentGroups.length).to.equal(2);
|
expect(deploymentGroups.length).to.equal(2);
|
||||||
done();
|
data.getDeploymentGroups({ name }, (err, deploymentGroups) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(deploymentGroups.length).to.equal(2);
|
||||||
|
done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -235,27 +239,277 @@ describe('versions', () => {
|
|||||||
const data = new PortalData(internals.options);
|
const data = new PortalData(internals.options);
|
||||||
data.connect((err) => {
|
data.connect((err) => {
|
||||||
expect(err).to.not.exist();
|
expect(err).to.not.exist();
|
||||||
const clientVersion = {
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
manifestId: 'something',
|
|
||||||
scales: [{
|
|
||||||
serviceName: 'consul',
|
|
||||||
replicas: 3
|
|
||||||
}],
|
|
||||||
plan: {
|
|
||||||
running: true,
|
|
||||||
actions: [{
|
|
||||||
type: 'start',
|
|
||||||
service: 'consul',
|
|
||||||
machines: ['vmid', 'vmid']
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
data.createVersion(clientVersion, (err, result) => {
|
|
||||||
expect(err).to.not.exist();
|
expect(err).to.not.exist();
|
||||||
expect(result.id).to.exist();
|
const clientManifest = {
|
||||||
expect(result.scales).to.equal(clientVersion.scales);
|
deploymentGroupId: deploymentGroup.id,
|
||||||
done();
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, manifest) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
|
||||||
|
const clientVersion = {
|
||||||
|
manifestId: manifest.id,
|
||||||
|
scales: [{
|
||||||
|
serviceName: 'consul',
|
||||||
|
replicas: 3
|
||||||
|
}],
|
||||||
|
plan: {
|
||||||
|
running: true,
|
||||||
|
actions: [{
|
||||||
|
type: 'start',
|
||||||
|
service: 'consul',
|
||||||
|
machines: ['vmid', 'vmid']
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
data.createVersion(clientVersion, (err, result) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(result.id).to.exist();
|
||||||
|
expect(result.scales).to.equal(clientVersion.scales);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getVersion()', () => {
|
||||||
|
it('retrieves a version record with an id or manifestId', (done) => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
data.connect((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
const clientManifest = {
|
||||||
|
deploymentGroupId: deploymentGroup.id,
|
||||||
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, manifest) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
|
||||||
|
const clientVersion = {
|
||||||
|
manifestId: manifest.id,
|
||||||
|
scales: [{
|
||||||
|
serviceName: 'consul',
|
||||||
|
replicas: 3
|
||||||
|
}],
|
||||||
|
plan: {
|
||||||
|
running: true,
|
||||||
|
actions: [{
|
||||||
|
type: 'start',
|
||||||
|
service: 'consul',
|
||||||
|
machines: ['vmid', 'vmid']
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
data.createVersion(clientVersion, (err, result) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(result.id).to.exist();
|
||||||
|
expect(result.scales).to.equal(clientVersion.scales);
|
||||||
|
data.getVersion({ id: result.id }, (err, retrievedVersion1) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(retrievedVersion1.id).to.equal(result.id);
|
||||||
|
data.getVersion({ manifestId: result.manifestId }, (err, retrievedVersion2) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(retrievedVersion1.id).to.equal(retrievedVersion2.id);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getVersions()', () => {
|
||||||
|
it('retrieve versions records with a manifestId', (done) => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
data.connect((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
const clientManifest = {
|
||||||
|
deploymentGroupId: deploymentGroup.id,
|
||||||
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, manifest) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
|
||||||
|
const clientVersion = {
|
||||||
|
manifestId: manifest.id,
|
||||||
|
scales: [{
|
||||||
|
serviceName: 'consul',
|
||||||
|
replicas: 3
|
||||||
|
}],
|
||||||
|
plan: {
|
||||||
|
running: true,
|
||||||
|
actions: [{
|
||||||
|
type: 'start',
|
||||||
|
service: 'consul',
|
||||||
|
machines: ['vmid', 'vmid']
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
data.createVersion(clientVersion, (err, result) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(result.id).to.exist();
|
||||||
|
expect(result.scales).to.equal(clientVersion.scales);
|
||||||
|
data.getVersions({ manifestId: clientVersion.manifestId }, (err, versions) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(versions.length).to.equal(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('retrieve versions records with a deployment group id', (done) => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
data.connect((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
const clientManifest = {
|
||||||
|
deploymentGroupId: deploymentGroup.id,
|
||||||
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, manifest) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
|
||||||
|
const clientVersion = {
|
||||||
|
manifestId: manifest.id,
|
||||||
|
scales: [{
|
||||||
|
serviceName: 'consul',
|
||||||
|
replicas: 3
|
||||||
|
}],
|
||||||
|
plan: {
|
||||||
|
running: true,
|
||||||
|
actions: [{
|
||||||
|
type: 'start',
|
||||||
|
service: 'consul',
|
||||||
|
machines: ['vmid', 'vmid']
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
data.createVersion(clientVersion, (err, version) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
|
||||||
|
data.getVersions({ deploymentGroupId: deploymentGroup.id }, (err, versions) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(versions.length).to.equal(1);
|
||||||
|
expect(versions[0].id).to.equal(version.id);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
describe('manifests', () => {
|
||||||
|
describe('provisionManifest()', () => {
|
||||||
|
it('creates a new manifest record in the manifests table', (done) => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
data.connect((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
const clientManifest = {
|
||||||
|
deploymentGroupId: deploymentGroup.id,
|
||||||
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, result) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(result.id).to.exist();
|
||||||
|
expect(result.created).to.exist();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getManifests()', () => {
|
||||||
|
it('retrieves manifests using from a manifest type', (done) => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
data.connect((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
const clientManifest = {
|
||||||
|
deploymentGroupId: deploymentGroup.id,
|
||||||
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, result) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.getManifests({ type: clientManifest.type }, (err, manifests) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(manifests.length).to.equal(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('retrieves manifests using from a deployment group id', (done) => {
|
||||||
|
const data = new PortalData(internals.options);
|
||||||
|
data.connect((err) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.createDeploymentGroup({ name: 'something' }, (err, deploymentGroup) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
const clientManifest = {
|
||||||
|
deploymentGroupId: deploymentGroup.id,
|
||||||
|
type: 'compose',
|
||||||
|
format: 'yml',
|
||||||
|
raw: 'docker compose raw contents',
|
||||||
|
json: { services: [] }
|
||||||
|
};
|
||||||
|
|
||||||
|
data.provisionManifest(clientManifest, (err, result) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
data.getManifests({ type: clientManifest.type }, (err, manifests) => {
|
||||||
|
expect(err).to.not.exist();
|
||||||
|
expect(manifests.length).to.equal(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
48
yarn.lock
48
yarn.lock
@ -64,14 +64,14 @@ ansi-escapes@^1.1.0, ansi-escapes@^1.3.0:
|
|||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||||
|
|
||||||
ansi-regex@*, ansi-regex@^2.0.0:
|
|
||||||
version "2.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
|
||||||
|
|
||||||
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
|
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
|
||||||
version "0.2.1"
|
version "0.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
|
||||||
|
|
||||||
|
ansi-regex@^2.0.0:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
||||||
|
|
||||||
ansi-styles@^1.1.0:
|
ansi-styles@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de"
|
||||||
@ -1074,7 +1074,7 @@ debug@^2.1.1, debug@^2.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
debuglog@*, debuglog@^1.0.1:
|
debuglog@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
||||||
|
|
||||||
@ -1975,11 +1975,7 @@ hoek@2.x.x:
|
|||||||
version "2.16.3"
|
version "2.16.3"
|
||||||
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
|
||||||
|
|
||||||
hosted-git-info@^2.1.4, hosted-git-info@^2.1.5:
|
hosted-git-info@^2.1.4, hosted-git-info@^2.1.5, hosted-git-info@~2.1.5:
|
||||||
version "2.4.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67"
|
|
||||||
|
|
||||||
hosted-git-info@~2.1.5:
|
|
||||||
version "2.1.5"
|
version "2.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
|
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
|
||||||
|
|
||||||
@ -2012,7 +2008,7 @@ ignore@^3.2.0:
|
|||||||
version "3.3.3"
|
version "3.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
|
||||||
|
|
||||||
imurmurhash@*, imurmurhash@^0.1.4:
|
imurmurhash@^0.1.4:
|
||||||
version "0.1.4"
|
version "0.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||||
|
|
||||||
@ -2554,10 +2550,6 @@ lockfile@~1.0.2:
|
|||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79"
|
resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79"
|
||||||
|
|
||||||
lodash._baseindexof@*:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c"
|
|
||||||
|
|
||||||
lodash._baseuniq@~4.6.0:
|
lodash._baseuniq@~4.6.0:
|
||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
|
resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
|
||||||
@ -2565,28 +2557,10 @@ lodash._baseuniq@~4.6.0:
|
|||||||
lodash._createset "~4.0.0"
|
lodash._createset "~4.0.0"
|
||||||
lodash._root "~3.0.0"
|
lodash._root "~3.0.0"
|
||||||
|
|
||||||
lodash._bindcallback@*:
|
|
||||||
version "3.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e"
|
|
||||||
|
|
||||||
lodash._cacheindexof@*:
|
|
||||||
version "3.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92"
|
|
||||||
|
|
||||||
lodash._createcache@*:
|
|
||||||
version "3.1.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093"
|
|
||||||
dependencies:
|
|
||||||
lodash._getnative "^3.0.0"
|
|
||||||
|
|
||||||
lodash._createset@~4.0.0:
|
lodash._createset@~4.0.0:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
|
resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
|
||||||
|
|
||||||
lodash._getnative@*, lodash._getnative@^3.0.0:
|
|
||||||
version "3.9.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
|
|
||||||
|
|
||||||
lodash._reinterpolate@~3.0.0:
|
lodash._reinterpolate@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
|
||||||
@ -2659,10 +2633,6 @@ lodash.mergewith@^4.3.1:
|
|||||||
version "4.6.0"
|
version "4.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
|
resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55"
|
||||||
|
|
||||||
lodash.restparam@*:
|
|
||||||
version "3.6.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
|
|
||||||
|
|
||||||
lodash.sortby@^4.7.0:
|
lodash.sortby@^4.7.0:
|
||||||
version "4.7.0"
|
version "4.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
|
||||||
@ -3695,7 +3665,7 @@ readable-stream@~2.1.5:
|
|||||||
string_decoder "~0.10.x"
|
string_decoder "~0.10.x"
|
||||||
util-deprecate "~1.0.1"
|
util-deprecate "~1.0.1"
|
||||||
|
|
||||||
readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0:
|
readdir-scoped-modules@^1.0.0:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
|
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4781,7 +4751,7 @@ uuid@^3.0.1:
|
|||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
|
||||||
|
|
||||||
validate-npm-package-license@*, validate-npm-package-license@^3.0.1:
|
validate-npm-package-license@^3.0.1:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
|
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
Loading…
Reference in New Issue
Block a user