@@ -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