fixed stuff, implemented new endpoint '/info'
This commit is contained in:
parent
c1151602b4
commit
2ca7834ba0
6 changed files with 85 additions and 32 deletions
|
@ -8,6 +8,11 @@ control your MODEP pedalboard(s) via http requests
|
||||||
|
|
||||||
## api
|
## api
|
||||||
|
|
||||||
|
### info
|
||||||
|
| url | GET | POST |
|
||||||
|
| - | - | - |
|
||||||
|
| /info | get information about the host | |
|
||||||
|
|
||||||
### banks
|
### banks
|
||||||
| url | GET | POST |
|
| url | GET | POST |
|
||||||
| - | - | - |
|
| - | - | - |
|
||||||
|
|
|
@ -2,6 +2,7 @@ const logger = require('./logger.js');
|
||||||
const util = require('./util.js');
|
const util = require('./util.js');
|
||||||
const constants = require('./constants.js');
|
const constants = require('./constants.js');
|
||||||
const modep = require('./modep.js');
|
const modep = require('./modep.js');
|
||||||
|
const info = require('./info.js');
|
||||||
|
|
||||||
const endpoints = new Map();
|
const endpoints = new Map();
|
||||||
|
|
||||||
|
@ -78,6 +79,7 @@ function setupEndpoints() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
.then(setEndpoint(constants.API_INFO, { method: info.getHostInfo }))
|
||||||
.then(function () {
|
.then(function () {
|
||||||
logger.debug('setting up ' + endpoints.size + ' endpoints took ' + util.timeDiff(startTime) + 'ms');
|
logger.debug('setting up ' + endpoints.size + ' endpoints took ' + util.timeDiff(startTime) + 'ms');
|
||||||
resolve();
|
resolve();
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
const logger = require('../libs/logger.js');
|
|
||||||
const { spawn } = require('child_process')
|
|
||||||
|
|
||||||
function execute(endpoint) {
|
|
||||||
if (!endpoint || !endpoint.command) {
|
|
||||||
logger.warn('no command defined');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
logger.debug('executing command \'' + endpoint.command + '\' with args \'' + endpoint.args + '\'...');
|
|
||||||
var cmd = spawn(endpoint.command, endpoint.args);
|
|
||||||
cmd.stdout.on('data', function(data) {
|
|
||||||
logger.debug(data);
|
|
||||||
});
|
|
||||||
cmd.stderr.on('data', function(data) {
|
|
||||||
logger.error(data);
|
|
||||||
});
|
|
||||||
cmd.on('close', function(code) {
|
|
||||||
logger.debug('command \'' + endpoint.command + '\' with args \'' + endpoint.args + '\' finished with exit code ' + code);
|
|
||||||
});
|
|
||||||
cmd.on('error', function(err) {
|
|
||||||
logger.error('command \'' + endpoint.command + '\' with args \'' + endpoint.args + '\' encountered an error >>> ' + err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
execute
|
|
||||||
}
|
|
|
@ -1,6 +1,7 @@
|
||||||
exports.HTTP_GET = 'GET';
|
exports.HTTP_GET = 'GET';
|
||||||
exports.HTTP_POST = 'POST';
|
exports.HTTP_POST = 'POST';
|
||||||
|
|
||||||
|
exports.API_INFO = '/info'
|
||||||
exports.API_BANKS = '/banks';
|
exports.API_BANKS = '/banks';
|
||||||
exports.API_PEDALBOARDS = '/pedalboards';
|
exports.API_PEDALBOARDS = '/pedalboards';
|
||||||
exports.API_PEDALBOARDS_DEFAULT = '/pedalboards/default';
|
exports.API_PEDALBOARDS_DEFAULT = '/pedalboards/default';
|
||||||
|
|
75
libs/info.js
Normal file
75
libs/info.js
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
const logger = require('./logger.js');
|
||||||
|
const os = require('os');
|
||||||
|
|
||||||
|
function getHostname() {
|
||||||
|
return os.hostname();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUptime() {
|
||||||
|
return os.uptime();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getLoadAverage(index) {
|
||||||
|
var loadAverage = os.loadavg();
|
||||||
|
if (index <= loadAverage.length) {
|
||||||
|
return os[index];
|
||||||
|
}
|
||||||
|
return os.loadavg();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getArchitecture() {
|
||||||
|
return os.arch;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOperatingSystem() {
|
||||||
|
return os.release();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPlatform() {
|
||||||
|
return os.platform();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getKernelVersion() {
|
||||||
|
return os.version();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCpuInfo() {
|
||||||
|
return os.cpus();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getMemoryInfo() {
|
||||||
|
var free = os.freemem();
|
||||||
|
var total = os.totalmem();
|
||||||
|
return {
|
||||||
|
total: total,
|
||||||
|
free: free,
|
||||||
|
used: total - free
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getHostInfo() {
|
||||||
|
return {
|
||||||
|
hostname: getHostname(),
|
||||||
|
uptime: getUptime(),
|
||||||
|
load: getLoadAverage(),
|
||||||
|
arch: getArchitecture(),
|
||||||
|
os: getOperatingSystem(),
|
||||||
|
platform: getPlatform(),
|
||||||
|
kernel: getKernelVersion(),
|
||||||
|
cpu: getCpuInfo(),
|
||||||
|
memory: getMemoryInfo()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getHostname,
|
||||||
|
getUptime,
|
||||||
|
getLoadAverage,
|
||||||
|
getArchitecture,
|
||||||
|
getOperatingSystem,
|
||||||
|
getPlatform,
|
||||||
|
getKernelVersion,
|
||||||
|
getCpuInfo,
|
||||||
|
getMemoryInfo,
|
||||||
|
getHostInfo
|
||||||
|
}
|
|
@ -5,12 +5,9 @@ const logger = require('./logger.js');
|
||||||
const cache = require('./cache.js');
|
const cache = require('./cache.js');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const { spawn } = require('child_process')
|
const { spawn } = require('child_process');
|
||||||
const ttl2jsonld = require('@frogcat/ttl2jsonld').parse;
|
const ttl2jsonld = require('@frogcat/ttl2jsonld').parse;
|
||||||
|
|
||||||
// TODO: MOVE TO CACHE.JS
|
|
||||||
|
|
||||||
|
|
||||||
function reset() {
|
function reset() {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
util.httpGET(config.modep.host, config.modep.port, '/reset')
|
util.httpGET(config.modep.host, config.modep.port, '/reset')
|
||||||
|
@ -247,7 +244,7 @@ function parseCurrentPedalboard(currentPedalboard) {
|
||||||
reject('error: could not determine current pedalboard config file');
|
reject('error: could not determine current pedalboard config file');
|
||||||
}
|
}
|
||||||
// FAKE DATA
|
// FAKE DATA
|
||||||
var file = path.resolve('./dev/' + currentPedalboard.uri.substring(currentPedalboard.uri.lastIndexOf('/') + 1));
|
var file = path.resolve(path.dirname(__dirname) + '/dev/' + currentPedalboard.uri.substring(currentPedalboard.uri.lastIndexOf('/') + 1));
|
||||||
// var file = path.resolve(currentPedalboard.uri.replace('file://', ''));
|
// var file = path.resolve(currentPedalboard.uri.replace('file://', ''));
|
||||||
fs.readFile(file, function (err, data) {
|
fs.readFile(file, function (err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|
Loading…
Reference in a new issue