mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 08:48:13 +00:00
Created start_client.py and moved server_proxy.py to server directory
This commit is contained in:
37
dashboard.py
37
dashboard.py
@@ -18,6 +18,7 @@ from rich.text import Text
|
|||||||
from rich.tree import Tree
|
from rich.tree import Tree
|
||||||
|
|
||||||
from lib.render_workers.base_worker import RenderStatus, string_to_status
|
from lib.render_workers.base_worker import RenderStatus, string_to_status
|
||||||
|
from lib.server.server_proxy import RenderServerProxy
|
||||||
from start_server import start_server
|
from start_server import start_server
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@@ -177,42 +178,6 @@ def create_status_panel(all_server_data):
|
|||||||
return "no status"
|
return "no status"
|
||||||
|
|
||||||
|
|
||||||
class RenderServerProxy:
|
|
||||||
|
|
||||||
def __init__(self, server_ip=None, server_port="8080"):
|
|
||||||
self.hostname = server_ip
|
|
||||||
self.port = server_port
|
|
||||||
self.local_hostname = local_hostname
|
|
||||||
self.fetched_status_data = None
|
|
||||||
|
|
||||||
def connect(self):
|
|
||||||
status = self.request_data('status')
|
|
||||||
return status
|
|
||||||
|
|
||||||
def request_data(self, payload, timeout=5):
|
|
||||||
try:
|
|
||||||
req = requests.get(f'http://{self.hostname}:{self.port}/api/{payload}', timeout=timeout)
|
|
||||||
if req.ok:
|
|
||||||
return req.json()
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
return None
|
|
||||||
|
|
||||||
def get_jobs(self):
|
|
||||||
all_jobs = self.request_data('jobs')
|
|
||||||
sorted_jobs = []
|
|
||||||
if all_jobs:
|
|
||||||
for status_category in categories:
|
|
||||||
found_jobs = [x for x in all_jobs if x['status'] == status_category.value]
|
|
||||||
if found_jobs:
|
|
||||||
sorted_jobs.extend(found_jobs)
|
|
||||||
return sorted_jobs
|
|
||||||
|
|
||||||
def get_data(self, timeout=5):
|
|
||||||
all_data = self.request_data('full_status', timeout=timeout)
|
|
||||||
return all_data
|
|
||||||
|
|
||||||
|
|
||||||
class KeyboardThread(threading.Thread):
|
class KeyboardThread(threading.Thread):
|
||||||
|
|
||||||
def __init__(self, input_cbk = None, name='keyboard-input-thread'):
|
def __init__(self, input_cbk = None, name='keyboard-input-thread'):
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ import socket
|
|||||||
import os, sys
|
import os, sys
|
||||||
from tkinter import ttk, messagebox
|
from tkinter import ttk, messagebox
|
||||||
from PIL import Image, ImageTk
|
from PIL import Image, ImageTk
|
||||||
from new_job_window import NewJobWindow
|
from lib.client.new_job_window import NewJobWindow
|
||||||
from server_proxy import RenderServerProxy
|
from lib.server.server_proxy import RenderServerProxy
|
||||||
|
|
||||||
sys.path.append("../")
|
sys.path.append("../")
|
||||||
from lib.server.zeroconf_server import ZeroconfServer
|
from lib.server.zeroconf_server import ZeroconfServer
|
||||||
|
|
||||||
@@ -42,7 +43,9 @@ def available_servers():
|
|||||||
|
|
||||||
class ZordonClient:
|
class ZordonClient:
|
||||||
|
|
||||||
default_image = Image.open("../server/static/images/desktop.png")
|
lib_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
|
image_path = os.path.join(lib_path, 'server', 'static', 'images', 'desktop.png')
|
||||||
|
default_image = Image.open(image_path)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
||||||
@@ -239,6 +242,7 @@ class ZordonClient:
|
|||||||
if values[0] == id:
|
if values[0] == id:
|
||||||
tree.item(item, values=new_values, tags=tags)
|
tree.item(item, values=new_values, tags=tags)
|
||||||
break
|
break
|
||||||
|
|
||||||
job_fetch = self.server_proxy.get_jobs()
|
job_fetch = self.server_proxy.get_jobs()
|
||||||
if job_fetch is not None:
|
if job_fetch is not None:
|
||||||
if len(job_fetch) < len(self.job_cache) or len(job_fetch) == 0:
|
if len(job_fetch) < len(self.job_cache) or len(job_fetch) == 0:
|
||||||
@@ -246,7 +250,7 @@ class ZordonClient:
|
|||||||
self.job_cache = job_fetch # update the cache only if its good data
|
self.job_cache = job_fetch # update the cache only if its good data
|
||||||
for job in self.job_cache:
|
for job in self.job_cache:
|
||||||
display_status = job['status'] if job['status'] != 'running' else \
|
display_status = job['status'] if job['status'] != 'running' else \
|
||||||
('%.0f%%' % (job['percent_complete'] * 100)) # if running, show percentage, otherwise just show status
|
('%.0f%%' % (job['percent_complete'] * 100)) # if running, show percent, otherwise just show status
|
||||||
tags = (job['status'],)
|
tags = (job['status'],)
|
||||||
values = (job['id'],
|
values = (job['id'],
|
||||||
job['name'] or os.path.basename(job['input_path']),
|
job['name'] or os.path.basename(job['input_path']),
|
||||||
@@ -279,6 +283,10 @@ class ZordonClient:
|
|||||||
x.pack()
|
x.pack()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
def start_client():
|
||||||
x = ZordonClient()
|
x = ZordonClient()
|
||||||
x.mainloop()
|
x.mainloop()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
start_client()
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import requests
|
|||||||
import sys
|
import sys
|
||||||
sys.path.append('../../')
|
sys.path.append('../../')
|
||||||
from lib.render_workers.blender_worker import Blender
|
from lib.render_workers.blender_worker import Blender
|
||||||
from server_proxy import RenderServerProxy
|
from lib.server.server_proxy import RenderServerProxy
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
|||||||
4
start_client.py
Normal file
4
start_client.py
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
from lib.client.client import start_client
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
start_client()
|
||||||
Reference in New Issue
Block a user