mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Add zeroconf to job_server and listener to client
This commit is contained in:
@@ -5,11 +5,12 @@ import tkinter as tk
|
|||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import socket
|
import socket
|
||||||
import os
|
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 new_job_window import NewJobWindow
|
||||||
from server_proxy import RenderServerProxy
|
from server_proxy import RenderServerProxy
|
||||||
|
sys.path.append("../")
|
||||||
from lib.server.zeroconf_server import ZeroconfServer
|
from lib.server.zeroconf_server import ZeroconfServer
|
||||||
|
|
||||||
|
|
||||||
@@ -53,8 +54,8 @@ class ZordonClient:
|
|||||||
self.job_cache = []
|
self.job_cache = []
|
||||||
|
|
||||||
# Setup zeroconf
|
# Setup zeroconf
|
||||||
self.zeroconf = ZeroconfServer("_zordon._tcp.local.", self.server_proxy.hostname, self.server_proxy.port)
|
self.zeroconf = ZeroconfServer("_zordon._tcp.local.", socket.gethostname(), 8080)
|
||||||
self.zeroconf.start()
|
self.zeroconf.start(listen_only=True)
|
||||||
|
|
||||||
# Setup photo preview
|
# Setup photo preview
|
||||||
photo_pad = tk.Frame(self.root, background="gray")
|
photo_pad = tk.Frame(self.root, background="gray")
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import yaml
|
|||||||
from flask import Flask, request, render_template, send_file, after_this_request, Response, redirect, url_for, abort
|
from flask import Flask, request, render_template, send_file, after_this_request, Response, redirect, url_for, abort
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
|
from lib.server.zeroconf_server import ZeroconfServer
|
||||||
from lib.render_queue import RenderQueue, JobNotFoundError
|
from lib.render_queue import RenderQueue, JobNotFoundError
|
||||||
from lib.render_workers.worker_factory import RenderWorkerFactory
|
from lib.render_workers.worker_factory import RenderWorkerFactory
|
||||||
from lib.render_workers.base_worker import string_to_status, RenderStatus
|
from lib.render_workers.base_worker import string_to_status, RenderStatus
|
||||||
@@ -504,6 +505,9 @@ def start_server(background_thread=False):
|
|||||||
|
|
||||||
logging.info(f"Starting Zordon Render Server - Hostname: '{RenderQueue.hostname}'")
|
logging.info(f"Starting Zordon Render Server - Hostname: '{RenderQueue.hostname}'")
|
||||||
|
|
||||||
|
zeroconf_server = ZeroconfServer("_zordon._tcp.local.", RenderQueue.hostname, RenderQueue.port)
|
||||||
|
zeroconf_server.start()
|
||||||
|
|
||||||
if background_thread:
|
if background_thread:
|
||||||
server_thread = threading.Thread(
|
server_thread = threading.Thread(
|
||||||
target=lambda: server.run(host='0.0.0.0', port=RenderQueue.port, debug=False, use_reloader=False))
|
target=lambda: server.run(host='0.0.0.0', port=RenderQueue.port, debug=False, use_reloader=False))
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
import logging
|
import logging
|
||||||
import socket
|
import socket
|
||||||
import time
|
|
||||||
|
|
||||||
from zeroconf import Zeroconf, ServiceInfo, ServiceBrowser, ServiceStateChange
|
from zeroconf import Zeroconf, ServiceInfo, ServiceBrowser, ServiceStateChange
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class ZeroconfServer:
|
class ZeroconfServer():
|
||||||
def __init__(self, service_type, server_name, server_port):
|
def __init__(self, service_type, server_name, server_port):
|
||||||
self.service_type = service_type
|
self.service_type = service_type
|
||||||
self.server_name = server_name
|
self.server_name = server_name
|
||||||
@@ -16,8 +15,10 @@ class ZeroconfServer:
|
|||||||
self.zeroconf = Zeroconf()
|
self.zeroconf = Zeroconf()
|
||||||
self.service_info = None
|
self.service_info = None
|
||||||
self.client_cache = {}
|
self.client_cache = {}
|
||||||
|
self.properties = {}
|
||||||
|
|
||||||
def start(self):
|
def start(self, listen_only=False):
|
||||||
|
if not listen_only:
|
||||||
self._register_service()
|
self._register_service()
|
||||||
self._browse_services()
|
self._browse_services()
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ class ZeroconfServer:
|
|||||||
f"{self.server_name}.{self.service_type}",
|
f"{self.server_name}.{self.service_type}",
|
||||||
addresses=[socket.inet_aton(self.server_ip)],
|
addresses=[socket.inet_aton(self.server_ip)],
|
||||||
port=self.server_port,
|
port=self.server_port,
|
||||||
properties={},
|
properties=self.properties,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.service_info = info
|
self.service_info = info
|
||||||
@@ -61,7 +62,7 @@ class ZeroconfServer:
|
|||||||
|
|
||||||
# Example usage:
|
# Example usage:
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
server = ZeroconfServer("_zordon._tcp.local.", "Zordon", 5000)
|
server = ZeroconfServer("_zordon._tcp.local.", "deathstar.local", 8080)
|
||||||
server.start()
|
server.start()
|
||||||
|
|
||||||
# Run your Flask application or perform other tasks
|
# Run your Flask application or perform other tasks
|
||||||
|
|||||||
Reference in New Issue
Block a user