Skip to content

Commit d3d603a

Browse files
committed
update print_collators
1 parent c2e60b5 commit d3d603a

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

modules/validator.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,20 @@ def delete_collator(self, args: list):
234234
self.set_collators_list(collators_list)
235235
color_print("delete_collator - {green}OK{endc}")
236236

237+
def _get_collators_stats(self):
238+
output = self.ton.validatorConsole.Run('collation-manager-stats')
239+
if 'No stats' in output:
240+
return {}
241+
result = {}
242+
lines = output.split('\n')
243+
prev_line = lines[0].strip()
244+
for line in lines[1:]:
245+
line = line.strip()
246+
if line.startswith('alive'):
247+
result[prev_line] = bool(int(line.split()[0].split('=')[1]))
248+
prev_line = line
249+
return result
250+
237251
def print_collators(self, args: list):
238252
if '--json' in args:
239253
print(json.dumps(self.get_collators_list(), indent=2))
@@ -243,7 +257,12 @@ def print_collators(self, args: list):
243257
if 'collators list is empty' in result:
244258
print("No collators found")
245259
return
246-
print(result)
260+
collators_stats = self._get_collators_stats()
261+
for adnl, alive in collators_stats.items():
262+
if adnl in result:
263+
status = '{green}online{endc}' if alive else '{red}offline{endc}'
264+
result = result.replace(adnl, f"{adnl} ({status})")
265+
color_print(result)
247266

248267
def reset_collators(self, args: list):
249268
if not self.get_collators_list():

0 commit comments

Comments
 (0)