mirror of
https://github.com/blw1138/Zordon.git
synced 2026-02-05 05:36:09 +00:00
Job submission code and API cleanup (#127)
* Refactor add jobs and make add_job api only be one job (instead of a list) * Renamed to JobImportHandler and misc cleanup * Dont bury exceptions in server proxy post_job * Update code to create child jobs in a cleaner manner
This commit is contained in:
29
add_job.py
29
add_job.py
@@ -5,10 +5,9 @@ import logging
|
||||
import os
|
||||
import socket
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
|
||||
from server import start_server
|
||||
from server import ZordonServer
|
||||
from src.api.serverproxy_manager import ServerProxyManager
|
||||
|
||||
logger = logging.getLogger()
|
||||
@@ -84,23 +83,30 @@ def main():
|
||||
found_proxy = ServerProxyManager.get_proxy_for_hostname(local_hostname)
|
||||
|
||||
is_connected = found_proxy.check_connection()
|
||||
adhoc_server = None
|
||||
if not is_connected:
|
||||
local_server_thread = threading.Thread(target=start_server, args=[True], daemon=True)
|
||||
local_server_thread.start()
|
||||
adhoc_server = ZordonServer()
|
||||
adhoc_server.start_server()
|
||||
found_proxy = ServerProxyManager.get_proxy_for_hostname(adhoc_server.server_hostname)
|
||||
while not is_connected:
|
||||
# todo: add timeout
|
||||
# is_connected = found_proxy.check_connection()
|
||||
is_connected = found_proxy.check_connection()
|
||||
time.sleep(1)
|
||||
|
||||
new_job = {"name": job_name, "engine": args.engine}
|
||||
response = found_proxy.post_job_to_server(file_path, [new_job])
|
||||
new_job = {"name": job_name, "engine_name": args.engine}
|
||||
try:
|
||||
response = found_proxy.post_job_to_server(file_path, new_job)
|
||||
except Exception as e:
|
||||
print(f"Error creating job: {e}")
|
||||
exit(1)
|
||||
|
||||
if response and response.ok:
|
||||
print(f"Uploaded to {found_proxy.hostname} successfully!")
|
||||
running_job_data = response.json()[0]
|
||||
running_job_data = response.json()
|
||||
job_id = running_job_data.get('id')
|
||||
print(f"Job {job_id} Summary:")
|
||||
print(f" Status : {running_job_data.get('status')}")
|
||||
print(f" Engine : {running_job_data.get('engine')}-{running_job_data.get('engine_version')}")
|
||||
print(f" Engine : {running_job_data.get('engine_name')}-{running_job_data.get('engine_version')}")
|
||||
|
||||
print("\nWaiting for render to complete...")
|
||||
percent_complete = 0.0
|
||||
@@ -114,6 +120,11 @@ def main():
|
||||
print(f"Percent Complete: {percent_complete:.2%}")
|
||||
sys.stdout.flush()
|
||||
print("Finished rendering successfully!")
|
||||
else:
|
||||
print(f"Failed to upload job. {response.text} !")
|
||||
|
||||
if adhoc_server:
|
||||
adhoc_server.stop_server()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user