small conflicts

This commit is contained in:
Jonathan Rainville 2018-08-01 11:14:02 -04:00 committed by Pascal Precht
parent 7e4f5dbdab
commit 459d0cc2d6
No known key found for this signature in database
GPG Key ID: 0EE28D8D6FD85D7D
7 changed files with 65 additions and 7 deletions

View File

@ -26,7 +26,7 @@ Logger.prototype.registerAPICall = function (plugins) {
plugin.registerAPICall( plugin.registerAPICall(
'ws', 'ws',
'/embark-api/logs', '/embark-api/logs',
(ws, req) => { (ws, _req) => {
self.events.on("log", function(logLevel, logMsg) { self.events.on("log", function(logLevel, logMsg) {
ws.send(JSON.stringify({msg: logMsg, msg_clear: logMsg.stripColors, logLevel: logLevel}), () => {}); ws.send(JSON.stringify({msg: logMsg, msg_clear: logMsg.stripColors, logLevel: logLevel}), () => {});
}); });
@ -34,7 +34,7 @@ Logger.prototype.registerAPICall = function (plugins) {
); );
}; };
Logger.prototype.writeToFile = function (txt) { Logger.prototype.writeToFile = function (_txt) {
if (!this.logfile) { if (!this.logfile) {
return; return;
} }

View File

@ -24,6 +24,7 @@ var Plugin = function(options) {
this.pluginTypes = []; this.pluginTypes = [];
this.uploadCmds = []; this.uploadCmds = [];
this.apiCalls = []; this.apiCalls = [];
this.processes = [];
this.imports = []; this.imports = [];
this.embarkjs_code = []; this.embarkjs_code = [];
this.embarkjs_init_code = {}; this.embarkjs_init_code = {};
@ -228,7 +229,12 @@ Plugin.prototype.registerActionForEvent = function(eventName, cb) {
Plugin.prototype.registerAPICall = function(method, endpoint, cb) { Plugin.prototype.registerAPICall = function(method, endpoint, cb) {
console.dir("registerAPICall " + method + " " + endpoint); console.dir("registerAPICall " + method + " " + endpoint);
this.apiCalls.push({method: method, endpoint: endpoint, cb: cb}); this.apiCalls.push({method: method, endpoint: endpoint, cb: cb});
this.pluginTypes.push('apiCalls'); this.addPluginType('apiCalls');
};
Plugin.prototype.registerProcess = function(processName) {
this.processes.push({processName});
this.addPluginType('processes');
}; };
Plugin.prototype.runFilePipeline = function() { Plugin.prototype.runFilePipeline = function() {

View File

@ -28,9 +28,13 @@ class ProcessLauncher {
this.events = options.events; this.events = options.events;
this.silent = options.silent; this.silent = options.silent;
this.exitCallback = options.exitCallback; this.exitCallback = options.exitCallback;
this.embark = options.embark;
this.subscriptions = {}; this.subscriptions = {};
this._subscribeToMessages(); this._subscribeToMessages();
if (this.embark) {
this._registerAsPlugin();
}
} }
_isDebug() { _isDebug() {
@ -61,8 +65,22 @@ class ProcessLauncher {
}); });
} }
_registerAsPlugin() {
const self = this;
self.embark.registerAPICall(
'ws',
'/embark/process-logs/' + self.name,
(ws, _req) => {
self.events.on('log-' + self.name, function(logLevel, msg) {
ws.send(JSON.stringify({msg, msg_clear: msg.stripColors, logLevel}), () => {});
});
}
);
}
// Translates logs from the child process to the logger // Translates logs from the child process to the logger
_handleLog(msg) { _handleLog(msg) {
this.events.emit('log-' + this.name, msg.type, msg.message);
if (this.silent && msg.type !== 'error') { if (this.silent && msg.type !== 'error') {
return; return;
} }

View File

@ -1,12 +1,35 @@
class ProcessManager { class ProcessManager {
constructor(options) { constructor(options) {
const self = this;
this.logger = options.logger; this.logger = options.logger;
this.events = options.events; this.events = options.events;
this.plugins = options.plugins; this.plugins = options.plugins;
this.processes = {}; this.processes = {};
this._registerAsPlugin();
this._registerEvents();
}
_registerAsPlugin() {
const self =this;
self.plugin = this.plugins.createPlugin('processManager', {});
self.plugin.registerAPICall(
'get',
'/embark/processes',
(req, res) => {
let parsedProcesses = {};
Object.keys(self.processes).forEach(processName => {
parsedProcesses[processName] = {
state: self.processes[processName]
};
});
res.send(parsedProcesses);
}
);
}
_registerEvents() {
const self = this;
self.events.setCommandHandler('processes:register', (name, cb) => { self.events.setCommandHandler('processes:register', (name, cb) => {
this.processes[name] = { this.processes[name] = {
state: 'unstarted', state: 'unstarted',
@ -16,7 +39,7 @@ class ProcessManager {
self.events.setCommandHandler('processes:launch', (name, cb) => { self.events.setCommandHandler('processes:launch', (name, cb) => {
let process = self.processes[name]; let process = self.processes[name];
if (process.state != 'unstarted') { if (process.state !== 'unstarted') {
return cb(); return cb();
} }
process.state = 'starting'; process.state = 'starting';
@ -28,7 +51,6 @@ class ProcessManager {
]); ]);
}); });
} }
} }
module.exports = ProcessManager; module.exports = ProcessManager;

View File

@ -34,6 +34,7 @@ class IPFS {
this.listenToCommands(); this.listenToCommands();
this.registerConsoleCommands(); this.registerConsoleCommands();
self.startProcess(() => {}); self.startProcess(() => {});
this.events.request("processes:launch", "ipfs", () => {});
}); });
} }
} }
@ -123,8 +124,15 @@ class IPFS {
events: self.events, events: self.events,
storageConfig: self.storageConfig, storageConfig: self.storageConfig,
webServerConfig: self.webServerConfig, webServerConfig: self.webServerConfig,
<<<<<<< HEAD
blockchainConfig: self.blockchainConfig, blockchainConfig: self.blockchainConfig,
corsParts: self.embark.config.corsParts corsParts: self.embark.config.corsParts
||||||| merged common ancestors
blockchainConfig: self.blockchainConfig
=======
blockchainConfig: self.blockchainConfig,
embark: self.embark
>>>>>>> small conflicts
}); });
self.logger.trace(`Storage module: Launching ipfs process...`); self.logger.trace(`Storage module: Launching ipfs process...`);
return storageProcessesLauncher.launchProcess('ipfs', callback); return storageProcessesLauncher.launchProcess('ipfs', callback);

View File

@ -18,6 +18,7 @@ class StorageProcessesLauncher {
this.storageConfig = options.storageConfig; this.storageConfig = options.storageConfig;
this.webServerConfig = options.webServerConfig; this.webServerConfig = options.webServerConfig;
this.blockchainConfig = options.blockchainConfig; this.blockchainConfig = options.blockchainConfig;
this.embark = options.embark;
this.processes = {}; this.processes = {};
this.corsParts = options.corsParts || []; this.corsParts = options.corsParts || [];
@ -106,8 +107,10 @@ class StorageProcessesLauncher {
self.logger.info(__(`Starting %s process`, storageName).cyan); self.logger.info(__(`Starting %s process`, storageName).cyan);
self.processes[storageName] = new ProcessLauncher({ self.processes[storageName] = new ProcessLauncher({
modulePath: filePath, modulePath: filePath,
name: storageName,
logger: self.logger, logger: self.logger,
events: self.events, events: self.events,
embark: self.embark,
silent: self.logger.logLevel !== 'trace', silent: self.logger.logLevel !== 'trace',
exitCallback: self.processExited.bind(this, storageName) exitCallback: self.processExited.bind(this, storageName)
}); });

View File

@ -65,6 +65,7 @@ class Server {
next(); next();
}); });
this.app.use(main); this.app.use(main);
this.app.use(cors());
this.app.use('/coverage', coverage); this.app.use('/coverage', coverage);
this.app.use(coverageStyle); this.app.use(coverageStyle);
@ -73,7 +74,7 @@ class Server {
this.app.use(cors()); this.app.use(cors());
app.use(bodyParser.json()); // support json encoded bodies app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies app.use(bodyParser.urlencoded({extended: true})); // support encoded bodies
expressWebSocket(this.app); expressWebSocket(this.app);