ping (cb) { this.dockerCon.ping(function (err, data) { if (err) { return cb(err, {}) } return cb(null, data) }) }
function handleWsSignal(receiver, sender) { receiver.onping = sender.ping.bind(sender); receiver.onpong = sender.pong.bind(sender); receiver.onclose = function(code, message, opts) { sender.close(code, message, opts.masked); }; }
/* * Post new meta data for metrics. */ api.post('/metrics/v2/:id', handler((req, res) => { return Promise.map(plugins, plugin => { const reporter = new plugin.Reporter(config[plugin.config]); return reporter.ping() .then(() => reporter.report(_.merge({}, req.body, {instance: req.params.id}))) .then(() => log.info('Reported to %s', plugin.name)) .then(() => reporter.close()); }); }));
test('--json', async t => { const {stdout} = await execa('./cli.js', ['--json']); const parsed = JSON.parse(stdout); t.truthy(parsed.ping); t.truthy(parsed.upload); t.truthy(parsed.download); t.falsy(parsed.data); });
/** * The average ping of all WebSocketShards * @type {number} * @readonly */ get ping() { const sum = this.shards.reduce((a, b) => a + b.ping, 0); return sum / this.shards.size; }
it("should ping one node with timeout", () => { broker.transit.sendPing.mockClear(); let p = broker.ping("node-2", 500).catch(protectReject); clock.tick(600); return p.then(res => { expect(res).toEqual(null); expect(broker.transit.sendPing).toHaveBeenCalledTimes(1); expect(broker.transit.sendPing).toHaveBeenCalledWith("node-2"); }); });
function drainData(status, socket, receiver, toServer) { if (!status.sender) { try { status.sender = wsParser.getSender(socket.pipeWriter || socket, toServer); } catch (e) {} } status.sender && status.data.forEach(function(item) { status.sender.send(item.data, item); receiver.onData(item.data, item); }); status.data = []; receiver.ping(); }
broker.start() .then(() => { broker.repl(); setInterval(() => broker.ping(), 10 * 1000); //setInterval(() => broker.broadcast("echo.broadcast"), 5 * 1000); });
it("should ping one node", () => { let p = broker.ping("node-2").catch(protectReject); broker.localBus.emit("$node.pong", { nodeID: "node-2", elapsedTime: 5, timeDiff: 3 }); return p.then(res => { expect(res).toEqual({ nodeID: "node-2", elapsedTime: 5, timeDiff: 3 }); expect(broker.transit.sendPing).toHaveBeenCalledTimes(1); expect(broker.transit.sendPing).toHaveBeenCalledWith("node-2"); }); });
componentWillMount() { this.props.ping(); this.props.getInfos(); this.props.getDiskSpace(); this.props.getContainers(); this.props.getUpgradeDownloadStatus(); this.getTimezone(); this.props.session.dispatcher.addListener(WEBSOCKET_MESSAGE_TYPES.UPGRADE.DOWNLOAD_PROGRESS, payload => this.props.newDownloadProgress(payload) ); this.props.session.dispatcher.addListener(WEBSOCKET_MESSAGE_TYPES.UPGRADE.DOWNLOAD_FINISHED, payload => this.props.downloadFinished() ); this.props.session.dispatcher.addListener(WEBSOCKET_MESSAGE_TYPES.UPGRADE.DOWNLOAD_FAILED, payload => this.props.downloadFailed() ); }
// ======= // PINGING // ======= function attemptPing (db, job, webhookOptions) { if (!(typeof webhookOptions === 'object')) { throw new Error('No webhook is configured.') } return webhook.ping(job, webhookOptions) .then(response => { return _logPing(db, job.id, response) .then(function () { return response }) }) }
it("should ping multiple node", () => { broker.transit.sendPing.mockClear(); let p = broker.ping(["node-2", "node-3"]).catch(protectReject); broker.localBus.emit("$node.pong", { nodeID: "node-2", elapsedTime: 5, timeDiff: 3 }); broker.localBus.emit("$node.pong", { nodeID: "node-3", elapsedTime: 50, timeDiff: 30 }); return p.then(res => { expect(res).toEqual({ "node-2": { "elapsedTime": 5, "nodeID": "node-2", "timeDiff": 3 }, "node-3": { "elapsedTime": 50, "nodeID": "node-3", "timeDiff": 30 } }); expect(broker.transit.sendPing).toHaveBeenCalledTimes(2); expect(broker.transit.sendPing).toHaveBeenCalledWith("node-2"); expect(broker.transit.sendPing).toHaveBeenCalledWith("node-3"); }); });
it("should ping multiple node with timeout", () => { broker.transit.sendPing.mockClear(); let p = broker.ping(["node-2", "node-3"], 1000).catch(protectReject); broker.localBus.emit("$node.pong", { nodeID: "node-3", elapsedTime: 50, timeDiff: 30 }); clock.tick(1100); return p.then(res => { expect(res).toEqual({ "node-2": null, "node-3": { "elapsedTime": 50, "nodeID": "node-3", "timeDiff": 30 } }); expect(broker.transit.sendPing).toHaveBeenCalledTimes(2); expect(broker.transit.sendPing).toHaveBeenCalledWith("node-2"); expect(broker.transit.sendPing).toHaveBeenCalledWith("node-3"); }); });
test('--verbose --json', async t => { const {stdout} = await execa('./cli.js', ['--verbose', '--json']); const parsed = JSON.parse(stdout); t.truthy(parsed.ping); t.truthy(parsed.upload); t.truthy(parsed.download); t.truthy(parsed.data); });
/* * Post new meta data for metrics. */ api.post('/metrics/v2/:id', handler((req, res) => { return Promise.map(plugins, plugin => { const reporter = new plugin.Reporter(config[plugin.config]); return reporter.ping() .then(() => reporter.report(_.merge({}, req.body, {instance: req.params.id}))) .then(() => log.info('Reported to %s', plugin.name)) .then(() => reporter.close()); }); }));