Use portal-data module
This commit is contained in:
parent
3fd18589a9
commit
559df105b6
@ -1,152 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const Hoek = require('hoek');
|
|
||||||
const Penseur = require('penseur');
|
|
||||||
|
|
||||||
|
|
||||||
const internals = {
|
|
||||||
defaults: {
|
|
||||||
name: 'portal'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = class Data {
|
|
||||||
constructor (options) {
|
|
||||||
const settings = Hoek.applyToDefaults(options || {}, internals.defaults);
|
|
||||||
const name = settings.name;
|
|
||||||
delete settings.name;
|
|
||||||
|
|
||||||
// Penseur will assert that the options are correct
|
|
||||||
this._db = new Penseur.Db(name, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
connect (cb) {
|
|
||||||
this._db.establish(['activities', 'datacenters', 'deployments', 'manifests', 'metrics'], cb);
|
|
||||||
}
|
|
||||||
|
|
||||||
createDeployment (deployment) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
deployment.services = [];
|
|
||||||
deployment.state = { current: 'stopped' };
|
|
||||||
|
|
||||||
this._db.deployments.insert(deployment, (err, key) => {
|
|
||||||
if (err) {
|
|
||||||
return reject(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
deployment.id = key;
|
|
||||||
|
|
||||||
resolve(deployment);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getDeployment (id) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.deployments.get(id, (err, deployment) => {
|
|
||||||
return err ? reject(err) : resolve(deployment);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
updateDeployment (deployment) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.deployments.update(deployment.id, deployment, (err) => {
|
|
||||||
return err ? reject(err) : resolve(deployment);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteDeployment (id) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.deployments.remove(id, (err) => {
|
|
||||||
return err ? reject(err) : resolve();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getDeployments () {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.deployments.all((err, deployments) => {
|
|
||||||
return err ? reject(err) : resolve(deployments);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getDatacenters () {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.datacenters.all((err, datacenters) => {
|
|
||||||
return err ? reject(err) : resolve(datacenters || []);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
createManifest (deploymentId, manifest) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
manifest.deploymentId = deploymentId;
|
|
||||||
manifest.created = Date.now();
|
|
||||||
|
|
||||||
this._db.manifests.insert(manifest, (err, id) => {
|
|
||||||
if (err) {
|
|
||||||
return reject(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
manifest.id = id;
|
|
||||||
resolve(manifest);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
getManifest (id) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.manifests.get(id, (err, manifest) => {
|
|
||||||
return err ? reject(err) : resolve(manifest);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getActivities (deploymentId) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.activities.query({ deploymentId }, (err, activities) => {
|
|
||||||
return err ? reject(err) : resolve(activities || []);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getMetrics (deploymentId) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.metrics.query({ deploymentId }, (err, metrics) => {
|
|
||||||
return err ? reject(err) : resolve(metrics || []);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getServices (deploymentId) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.deployments.get(deploymentId, { filter: 'services' }, (err, deployment) => {
|
|
||||||
return err ? reject(err) : resolve(deployment.services);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
updateService (deploymentId, service) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this._db.deployments.get(deploymentId, { filter: 'services' }, (err, deployment) => {
|
|
||||||
if (err) {
|
|
||||||
return reject(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
const services = deployment.services.map((currentService) => {
|
|
||||||
if (currentService.name === service.name) {
|
|
||||||
currentService.count = service.count;
|
|
||||||
}
|
|
||||||
|
|
||||||
return currentService;
|
|
||||||
});
|
|
||||||
|
|
||||||
this._db.deployments.update(deploymentId, { services }, (err, keys) => {
|
|
||||||
return err ? reject(err) : resolve(service);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,14 +1,14 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const GraphqlHapi = require('graphql-server-hapi');
|
const GraphqlHapi = require('graphql-server-hapi');
|
||||||
const Data = require('./data');
|
const PortalData = require('portal-data');
|
||||||
const Graphql = require('./models/graphql');
|
const Graphql = require('./models/graphql');
|
||||||
const Pack = require('../package.json');
|
const Pack = require('../package.json');
|
||||||
const Routes = require('./routes');
|
const Routes = require('./routes');
|
||||||
|
|
||||||
|
|
||||||
module.exports = function (server, options, next) {
|
module.exports = function (server, options, next) {
|
||||||
const data = new Data(options.data);
|
const data = new PortalData(options.data);
|
||||||
data.connect((err) => {
|
data.connect((err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"lint": "belly-button",
|
"lint": "belly-button",
|
||||||
"rethinkdb-up": "docker run -d -p 8080:8080 -p 28015:28015 -p 29015:29015 --name rethinkdb rethinkdb",
|
"rethinkdb-up": "docker run -d -p 8080:8080 -p 28015:28015 -p 29015:29015 --name rethinkdb rethinkdb",
|
||||||
"rethinkdb-down": "docker rm -f rethinkdb",
|
"rethinkdb-down": "docker rm -f rethinkdb",
|
||||||
"test": "npm run lint && lab -t 94"
|
"test": "npm run lint && lab -t 97"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "wyatt",
|
"author": "wyatt",
|
||||||
@ -28,6 +28,6 @@
|
|||||||
"graphql-server-hapi": "^0.7.2",
|
"graphql-server-hapi": "^0.7.2",
|
||||||
"hoek": "^4.1.1",
|
"hoek": "^4.1.1",
|
||||||
"joi": "^10.4.1",
|
"joi": "^10.4.1",
|
||||||
"penseur": "^7.8.1"
|
"portal-data": "^1.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user