Skip to content

Commit 8f0fc26

Browse files
committed
CHANGES:
- try to display all servers in the dashboard
1 parent 1ed8aed commit 8f0fc26

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

services/dashboard/service.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def __rich__(self) -> Panel:
4646
else:
4747
message += "Cluster Agent | "
4848
message += (f"DCSServerBot Version {self.node.bot_version}.{self.node.sub_version} | "
49-
f"DCS Version {self.service.dcs_version}[/]")
49+
f"DCS Version {self.node.dcs_version}[/]")
5050
grid.add_row(message, datetime.now().ctime().replace(":", "[blink]:[/]"))
5151
return Panel(grid, style=config.get("background", "white on navy_blue"),
5252
border_style=config.get("border", "white"))
@@ -225,23 +225,26 @@ def __init__(self, node):
225225
self.queue = None
226226
self.log_handler = None
227227
self.old_handler = None
228-
self.dcs_branch = None
229-
self.dcs_version = None
230228
self.update_task = None
229+
self.header_widget = None
230+
self.servers_widget = None
231+
self.log_widget = None
231232
self.stop_event = asyncio.Event()
232233

233234
def is_multinode(self):
234235
return len(self.node.all_nodes) > 1
235236

237+
def create_widgets(self):
238+
self.header_widget = HeaderWidget(self)
239+
self.servers_widget = ServersWidget(self)
240+
self.log_widget = LogWidget(self)
241+
236242
def create_layout(self):
237-
header = HeaderWidget(self)
238-
servers = ServersWidget(self)
239-
log = LogWidget(self)
240243
layout = Layout()
241244
layout.split(
242-
Layout(header, name="header", size=3),
243-
Layout(servers, name="main", size=len(self.bus.servers) + 6),
244-
Layout(log, name="log", ratio=2, minimum_size=5)
245+
Layout(self.header_widget, name="header", size=3),
246+
Layout(self.servers_widget, name="main", size=len(self.bus.servers) + 6),
247+
Layout(self.log_widget, name="log", ratio=2, minimum_size=5)
245248
)
246249
if self.node.master and self.is_multinode():
247250
servers = ServersWidget(self)
@@ -270,7 +273,7 @@ async def start(self):
270273
await super().start()
271274
self.bus = ServiceRegistry.get(ServiceBus)
272275
self.hook_logging()
273-
self.dcs_branch, self.dcs_version = await self.node.get_dcs_branch_and_version()
276+
self.create_widgets()
274277
self.layout = self.create_layout()
275278
self.stop_event.clear()
276279
self.update_task = asyncio.create_task(self.update())
@@ -291,8 +294,14 @@ async def switch(self):
291294

292295
async def update(self):
293296
try:
297+
previous_server_count = len(self.bus.servers)
294298
with Live(self.layout, refresh_per_second=1, screen=True):
295-
await self.stop_event.wait()
299+
while not self.stop_event.is_set():
300+
current_server_count = len(self.bus.servers)
301+
if current_server_count != previous_server_count:
302+
self.layout = self.create_layout()
303+
previous_server_count = current_server_count
304+
await asyncio.sleep(1)
296305
except Exception as ex:
297306
self.log.exception(ex)
298307
await self.stop()

0 commit comments

Comments
 (0)