Skip to content
This repository has been archived by the owner on Oct 30, 2018. It is now read-only.

Commit

Permalink
Merge pull request #248 from aleitner/master
Browse files Browse the repository at this point in the history
Added bridge connected status
  • Loading branch information
braydonf committed Sep 8, 2017
2 parents 96d46a9 + 13d6cb0 commit b4b4894
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 5 deletions.
49 changes: 44 additions & 5 deletions bin/storjshare-status.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ if (storjshare_status.remote) {

// Prepare json formatted status for each share
function prepareJson(shares) {
/*jshint maxcomplexity:7 */
/*jshint maxcomplexity:11 */
/*jshint maxstatements:23 */
let json = [];

for (let i = 0; i < shares.length; i++) {
Expand Down Expand Up @@ -89,13 +90,31 @@ function prepareJson(shares) {
json[i].port = share.meta.farmerState.portStatus.listenPort;
json[i].shared = share.meta.farmerState.spaceUsed;
json[i].sharedPercent = share.meta.farmerState.percentUsed;

var bridgeCxStat = share.meta.farmerState.bridgesConnectionStatus;
switch (bridgeCxStat) {
case 0:
json[i].bridgeConnectionStatus = 'disconnected';
break;
case 1:
json[i].bridgeConnectionStatus = 'connecting';
break;
case 2:
json[i].bridgeConnectionStatus = 'confirming';
break;
case 3:
json[i].bridgeConnectionStatus = 'connected';
break;
default:
break;
}
}

return JSON.stringify(json);
}

utils.connectToDaemon(port, function(rpc, sock) {
/*jshint maxcomplexity:7 */
/*jshint maxcomplexity:10 */
rpc.status(function(err, shares) {
if (storjshare_status.json) {
// Print out json formatted share statuses
Expand All @@ -104,12 +123,12 @@ utils.connectToDaemon(port, function(rpc, sock) {
} else {
let table = new Table({
head: ['Share', 'Status', 'Uptime', 'Restarts', 'Peers',
'Offers', 'Delta', 'Port', 'Shared'],
'Offers', 'Delta', 'Port', 'Shared', 'Bridges'],
style: {
head: ['cyan', 'bold'],
border: []
},
colWidths: [45, 9, 10, 10, 9, 15, 9, 10, 11]
colWidths: [45, 9, 10, 10, 9, 15, 9, 10, 11, 14]
});
shares.forEach((share) => {
let status = '?';
Expand Down Expand Up @@ -141,6 +160,25 @@ utils.connectToDaemon(port, function(rpc, sock) {
let dataReceived = fixContractValue(
share.meta.farmerState.dataReceivedCount);

var bridgeCxStat = share.meta.farmerState.bridgesConnectionStatus;
var bridgeCxString = '...';
switch (bridgeCxStat) {
case 0:
bridgeCxString = colors.gray('disconnected');
break;
case 1:
bridgeCxString = colors.yellow('connecting');
break;
case 2:
bridgeCxString = colors.orange('confirming');
break;
case 3:
bridgeCxString = colors.green('connected');
break;
default:
break;
}

table.push([
`${share.id}\n → ${share.config.storagePath}`,
status,
Expand All @@ -151,7 +189,8 @@ utils.connectToDaemon(port, function(rpc, sock) {
ntpStatus,
port + '\n' + connectionType,
share.meta.farmerState.spaceUsed + '\n' +
`(${share.meta.farmerState.percentUsed}%)`
`(${share.meta.farmerState.percentUsed}%)`,
bridgeCxString
]);
});
console.log('\n' + table.toString());
Expand Down
13 changes: 13 additions & 0 deletions script/farmer.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const processIsManaged = typeof process.send === 'function';

let spaceAllocation = bytes.parse(config.storageAllocation);
let farmerState = {
bridges: {},
bridgesConnectionStatus: 0,
percentUsed: '...',
spaceUsed: '...',
totalPeers: 0,
Expand Down Expand Up @@ -51,10 +53,21 @@ farmer.join((err) => {
}
})
farmer.on('bridgeConnected', (bridge) => {
farmerState.bridges[bridge.extendedKey] = bridge;
config.logger.info('Connected to bridge: %s', bridge.url);
});
farmer.runSpaceCheck(); // Check if we can accept offers
farmer.connectBridges();
farmer.on('bridgesConnecting', function() {
farmerState.bridgesConnectionStatus = 1;
});
farmer.on('bridgeChallenge', (bridge) => {
farmerState.bridgesConnectionStatus = 2;
});
farmer.on('bridgesConnected', function() {
farmerState.bridgesConnectionStatus = 3;
});


function transportInitialized() {
return farmer.transport._requiresTraversal !== undefined
Expand Down

0 comments on commit b4b4894

Please sign in to comment.