Skip to content
Snippets Groups Projects
Commit 39247ce5 authored by Cédric Moreau's avatar Cédric Moreau
Browse files

[enh] `peer` modularized

parent 40a6adbb
No related branches found
No related tags found
No related merge requests found
...@@ -11,15 +11,10 @@ const wizard = require('../app/lib/wizard'); ...@@ -11,15 +11,10 @@ const wizard = require('../app/lib/wizard');
const multicaster = require('../app/lib/streams/multicaster'); const multicaster = require('../app/lib/streams/multicaster');
const pjson = require('../package.json'); const pjson = require('../package.json');
const duniter = require('../index'); const duniter = require('../index');
const Peer = require('../app/lib/entity/peer');
const Block = require('../app/lib/entity/block');
const constants = require('../app/lib/constants'); const constants = require('../app/lib/constants');
module.exports = () => { module.exports = () => {
const ERASE_IF_ALREADY_RECORDED = true;
const NO_LOGS = true;
const options = []; const options = [];
const commands = []; const commands = [];
...@@ -139,34 +134,6 @@ module.exports = () => { ...@@ -139,34 +134,6 @@ module.exports = () => {
.description('Restart Duniter node daemon.') .description('Restart Duniter node daemon.')
.action(subCommand(needsToBeLaunchedByScript)); .action(subCommand(needsToBeLaunchedByScript));
program
.command('peer [host] [port]')
.description('Exchange peerings with another node')
.action(subCommand(service(function (host, port, server) {
return co(function *() {
try {
logger.info('Fetching peering record at %s:%s...', host, port);
let peering = yield contacter.statics.fetchPeer(host, port);
logger.info('Apply peering ...');
yield server.PeeringService.submitP(peering, ERASE_IF_ALREADY_RECORDED, !program.nocautious);
logger.info('Applied');
let selfPeer = yield server.dal.getPeer(server.PeeringService.pubkey);
if (!selfPeer) {
yield Q.nfcall(server.PeeringService.generateSelfPeer, server.conf, 0);
selfPeer = yield server.dal.getPeer(server.PeeringService.pubkey);
}
logger.info('Send self peering ...');
var caster = multicaster();
yield caster.sendPeering(Peer.statics.peerize(peering), Peer.statics.peerize(selfPeer));
logger.info('Sent.');
yield server.disconnect();
} catch(e) {
logger.error(e.code || e.message || e);
throw Error("Exiting");
}
});
})));
program program
.on('*', function (cmd) { .on('*', function (cmd) {
console.log("Unknown command '%s'. Try --help for a listing of commands & options.", cmd); console.log("Unknown command '%s'. Try --help for a listing of commands & options.", cmd);
......
"use strict";
const Q = require('q');
const co = require('co');
const multicaster = require('../lib/streams/multicaster');
const contacter = require('../lib/contacter');
const Peer = require('../lib/entity/peer');
const ERASE_IF_ALREADY_RECORDED = true;
module.exports = {
duniter: {
cli: [{
name: 'peer [host] [port]',
desc: 'Exchange peerings with another node',
onPluggedDALExecute: (server, conf, program, params) => co(function*() {
const host = params[0];
const port = params[1];
const logger = server.logger;
try {
logger.info('Fetching peering record at %s:%s...', host, port);
let peering = yield contacter.statics.fetchPeer(host, port);
logger.info('Apply peering ...');
yield server.PeeringService.submitP(peering, ERASE_IF_ALREADY_RECORDED, !program.nocautious);
logger.info('Applied');
let selfPeer = yield server.dal.getPeer(server.PeeringService.pubkey);
if (!selfPeer) {
yield Q.nfcall(server.PeeringService.generateSelfPeer, server.conf, 0);
selfPeer = yield server.dal.getPeer(server.PeeringService.pubkey);
}
logger.info('Send self peering ...');
const caster = multicaster();
yield caster.sendPeering(Peer.statics.peerize(peering), Peer.statics.peerize(selfPeer));
logger.info('Sent.');
yield server.disconnect();
} catch(e) {
logger.error(e.code || e.message || e);
throw Error("Exiting");
}
})
}]
}
}
...@@ -21,6 +21,7 @@ const checkConfDependency = require('./app/modules/check-config'); ...@@ -21,6 +21,7 @@ const checkConfDependency = require('./app/modules/check-config');
const exportBcDependency = require('./app/modules/export-bc'); const exportBcDependency = require('./app/modules/export-bc');
const reapplyDependency = require('./app/modules/reapply'); const reapplyDependency = require('./app/modules/reapply');
const revertDependency = require('./app/modules/revert'); const revertDependency = require('./app/modules/revert');
const peerDependency = require('./app/modules/peer');
const MINIMAL_DEPENDENCIES = [ const MINIMAL_DEPENDENCIES = [
{ name: 'duniter-config', required: configDependency } { name: 'duniter-config', required: configDependency }
...@@ -36,6 +37,7 @@ const DEFAULT_DEPENDENCIES = [ ...@@ -36,6 +37,7 @@ const DEFAULT_DEPENDENCIES = [
{ name: 'duniter-exportbc', required: exportBcDependency }, { name: 'duniter-exportbc', required: exportBcDependency },
{ name: 'duniter-reapply', required: reapplyDependency }, { name: 'duniter-reapply', required: reapplyDependency },
{ name: 'duniter-revert', required: revertDependency }, { name: 'duniter-revert', required: revertDependency },
{ name: 'duniter-peer', required: peerDependency },
{ name: 'duniter-keypair', required: dkeypairDependency } { name: 'duniter-keypair', required: dkeypairDependency }
]; ];
...@@ -188,9 +190,14 @@ function Stack(dependencies) { ...@@ -188,9 +190,14 @@ function Stack(dependencies) {
if (!isSaving) { if (!isSaving) {
isSaving = true; isSaving = true;
// Save DB // Save DB
return server.disconnect(); try {
} yield server.disconnect();
process.exit(); process.exit();
} catch (e) {
logger.error(e);
process.exit(3);
}
}
}); });
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment