mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Combine RenderWorker creation into RenderJob creation. Misc cleanup.
This commit is contained in:
32
dashboard.py
32
dashboard.py
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
import datetime
|
||||
import os.path
|
||||
import socket
|
||||
@@ -18,7 +18,7 @@ from rich.text import Text
|
||||
from rich.tree import Tree
|
||||
|
||||
from utilities.render_worker import RenderStatus, string_to_status
|
||||
from server import start_server
|
||||
from start_server import start_server
|
||||
|
||||
"""
|
||||
The RenderDashboard is designed to be run on a remote machine or on the local server
|
||||
@@ -32,7 +32,7 @@ status_colors = {RenderStatus.ERROR: "red", RenderStatus.CANCELLED: 'orange1', R
|
||||
categories = [RenderStatus.RUNNING, RenderStatus.ERROR, RenderStatus.NOT_STARTED, RenderStatus.SCHEDULED,
|
||||
RenderStatus.COMPLETED, RenderStatus.CANCELLED]
|
||||
|
||||
renderer_colors = {'ffmpeg': '[magenta]', 'Blender': '[orange1]', 'aerender':'[purple'}
|
||||
renderer_colors = {'ffmpeg': '[magenta]', 'Blender': '[orange1]', 'aerender': '[purple]'}
|
||||
|
||||
local_hostname = socket.gethostname()
|
||||
|
||||
@@ -90,9 +90,9 @@ def create_node_tree(all_server_data) -> Tree:
|
||||
|
||||
for job in jobs_to_display:
|
||||
renderer = f"{renderer_colors[job['renderer']]}{job['renderer']}[default]"
|
||||
filename = os.path.basename(job['render']['input']).split('.')[0]
|
||||
filename = os.path.basename(job['worker']['input_path']).split('.')[0]
|
||||
if job['status'] == 'running':
|
||||
jobs_tree.add(f"[bold]{renderer} {filename} ({job['id']}) - {status_string_to_color(job['status'])}{(float(job['render']['percent_complete']) * 100):.1f}%")
|
||||
jobs_tree.add(f"[bold]{renderer} {filename} ({job['id']}) - {status_string_to_color(job['status'])}{(float(job['worker']['percent_complete']) * 100):.1f}%")
|
||||
else:
|
||||
jobs_tree.add(f"{filename} ({job['id']}) - {status_string_to_color(job['status'])}{job['status'].title()}")
|
||||
|
||||
@@ -129,18 +129,18 @@ def create_jobs_table(all_server_data) -> Table:
|
||||
job_color = '[{}]'.format(status_colors[job_status])
|
||||
job_text = f"{job_color}" + job_status.value.title()
|
||||
|
||||
if job_status == RenderStatus.ERROR and job['render']['errors']:
|
||||
job_text = job_text + "\n" + "\n".join(job['render']['errors'])
|
||||
if job_status == RenderStatus.ERROR and job['worker']['errors']:
|
||||
job_text = job_text + "\n" + "\n".join(job['worker']['errors'])
|
||||
|
||||
elapsed_time = job['render'].get('time_elapsed', 'unknown')
|
||||
elapsed_time = job['worker'].get('time_elapsed', 'unknown')
|
||||
|
||||
# Project name
|
||||
project_name = job_color + os.path.basename(job['render']['input'])
|
||||
project_name = job_color + os.path.basename(job['worker']['input_path'])
|
||||
project_name = project_name.replace(".", "[default].")
|
||||
|
||||
if job_status == RenderStatus.RUNNING:
|
||||
job_text = f"{job_color}[bold]Running - {float(job['render']['percent_complete']) * 100:.1f}%"
|
||||
delta = datetime.datetime.now() - datetime.datetime.fromisoformat(job['render']['start_time'])
|
||||
job_text = f"{job_color}[bold]Running - {float(job['worker']['percent_complete']) * 100:.1f}%"
|
||||
delta = datetime.datetime.now() - datetime.datetime.fromisoformat(job['worker']['start_time'])
|
||||
elapsed_time = "[bold]" + str(delta)
|
||||
project_name = "[bold]" + project_name
|
||||
elif job_status == RenderStatus.CANCELLED or job_status == RenderStatus.ERROR:
|
||||
@@ -156,12 +156,12 @@ def create_jobs_table(all_server_data) -> Table:
|
||||
table.add_row(
|
||||
job['id'],
|
||||
project_name,
|
||||
os.path.basename(job['render']['output']),
|
||||
renderer_colors.get(job['renderer'], '[cyan]') + job['renderer'] + '[default]-' + job['render']['renderer_version'],
|
||||
os.path.basename(job['worker']['output_path']),
|
||||
renderer_colors.get(job['renderer'], '[cyan]') + job['renderer'] + '[default]-' + job['worker']['renderer_version'],
|
||||
f"[{priority_color}]{job['priority']}",
|
||||
job_text,
|
||||
elapsed_time,
|
||||
str(max(int(job['render']['total_frames']), 1)),
|
||||
str(max(int(job['worker']['total_frames']), 1)),
|
||||
client_title
|
||||
)
|
||||
|
||||
@@ -256,8 +256,8 @@ if __name__ == '__main__':
|
||||
# Divide the "screen" in to three parts
|
||||
layout.split(
|
||||
Layout(name="header", size=3),
|
||||
Layout(ratio=1, name="main"),
|
||||
Layout(size=10, name="footer"),
|
||||
Layout(ratio=1, name="main")
|
||||
# Layout(size=10, name="footer"),
|
||||
)
|
||||
# Divide the "main" layout in to "side" and "body"
|
||||
layout["main"].split_row(
|
||||
|
||||
Reference in New Issue
Block a user