Created start_client.py and moved server_proxy.py to server directory

This commit is contained in:
Brett Williams
2023-06-03 12:49:04 -05:00
parent 77aa40c4cc
commit af24bc6beb
5 changed files with 19 additions and 42 deletions

View File

@@ -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'):

View File

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

View File

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

@@ -0,0 +1,4 @@
from lib.client.client import start_client
if __name__ == '__main__':
start_client()