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

Commit 13d6cb0

Browse files
committed
Added bridge connected status
1 parent 96d46a9 commit 13d6cb0

File tree

2 files changed

+57
-5
lines changed

2 files changed

+57
-5
lines changed

bin/storjshare-status.js

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ if (storjshare_status.remote) {
4949

5050
// Prepare json formatted status for each share
5151
function prepareJson(shares) {
52-
/*jshint maxcomplexity:7 */
52+
/*jshint maxcomplexity:11 */
53+
/*jshint maxstatements:23 */
5354
let json = [];
5455

5556
for (let i = 0; i < shares.length; i++) {
@@ -89,13 +90,31 @@ function prepareJson(shares) {
8990
json[i].port = share.meta.farmerState.portStatus.listenPort;
9091
json[i].shared = share.meta.farmerState.spaceUsed;
9192
json[i].sharedPercent = share.meta.farmerState.percentUsed;
93+
94+
var bridgeCxStat = share.meta.farmerState.bridgesConnectionStatus;
95+
switch (bridgeCxStat) {
96+
case 0:
97+
json[i].bridgeConnectionStatus = 'disconnected';
98+
break;
99+
case 1:
100+
json[i].bridgeConnectionStatus = 'connecting';
101+
break;
102+
case 2:
103+
json[i].bridgeConnectionStatus = 'confirming';
104+
break;
105+
case 3:
106+
json[i].bridgeConnectionStatus = 'connected';
107+
break;
108+
default:
109+
break;
110+
}
92111
}
93112

94113
return JSON.stringify(json);
95114
}
96115

97116
utils.connectToDaemon(port, function(rpc, sock) {
98-
/*jshint maxcomplexity:7 */
117+
/*jshint maxcomplexity:10 */
99118
rpc.status(function(err, shares) {
100119
if (storjshare_status.json) {
101120
// Print out json formatted share statuses
@@ -104,12 +123,12 @@ utils.connectToDaemon(port, function(rpc, sock) {
104123
} else {
105124
let table = new Table({
106125
head: ['Share', 'Status', 'Uptime', 'Restarts', 'Peers',
107-
'Offers', 'Delta', 'Port', 'Shared'],
126+
'Offers', 'Delta', 'Port', 'Shared', 'Bridges'],
108127
style: {
109128
head: ['cyan', 'bold'],
110129
border: []
111130
},
112-
colWidths: [45, 9, 10, 10, 9, 15, 9, 10, 11]
131+
colWidths: [45, 9, 10, 10, 9, 15, 9, 10, 11, 14]
113132
});
114133
shares.forEach((share) => {
115134
let status = '?';
@@ -141,6 +160,25 @@ utils.connectToDaemon(port, function(rpc, sock) {
141160
let dataReceived = fixContractValue(
142161
share.meta.farmerState.dataReceivedCount);
143162

163+
var bridgeCxStat = share.meta.farmerState.bridgesConnectionStatus;
164+
var bridgeCxString = '...';
165+
switch (bridgeCxStat) {
166+
case 0:
167+
bridgeCxString = colors.gray('disconnected');
168+
break;
169+
case 1:
170+
bridgeCxString = colors.yellow('connecting');
171+
break;
172+
case 2:
173+
bridgeCxString = colors.orange('confirming');
174+
break;
175+
case 3:
176+
bridgeCxString = colors.green('connected');
177+
break;
178+
default:
179+
break;
180+
}
181+
144182
table.push([
145183
`${share.id}\n → ${share.config.storagePath}`,
146184
status,
@@ -151,7 +189,8 @@ utils.connectToDaemon(port, function(rpc, sock) {
151189
ntpStatus,
152190
port + '\n' + connectionType,
153191
share.meta.farmerState.spaceUsed + '\n' +
154-
`(${share.meta.farmerState.percentUsed}%)`
192+
`(${share.meta.farmerState.percentUsed}%)`,
193+
bridgeCxString
155194
]);
156195
});
157196
console.log('\n' + table.toString());

script/farmer.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ const processIsManaged = typeof process.send === 'function';
1111

1212
let spaceAllocation = bytes.parse(config.storageAllocation);
1313
let farmerState = {
14+
bridges: {},
15+
bridgesConnectionStatus: 0,
1416
percentUsed: '...',
1517
spaceUsed: '...',
1618
totalPeers: 0,
@@ -51,10 +53,21 @@ farmer.join((err) => {
5153
}
5254
})
5355
farmer.on('bridgeConnected', (bridge) => {
56+
farmerState.bridges[bridge.extendedKey] = bridge;
5457
config.logger.info('Connected to bridge: %s', bridge.url);
5558
});
5659
farmer.runSpaceCheck(); // Check if we can accept offers
5760
farmer.connectBridges();
61+
farmer.on('bridgesConnecting', function() {
62+
farmerState.bridgesConnectionStatus = 1;
63+
});
64+
farmer.on('bridgeChallenge', (bridge) => {
65+
farmerState.bridgesConnectionStatus = 2;
66+
});
67+
farmer.on('bridgesConnected', function() {
68+
farmerState.bridgesConnectionStatus = 3;
69+
});
70+
5871

5972
function transportInitialized() {
6073
return farmer.transport._requiresTraversal !== undefined

0 commit comments

Comments
 (0)