mirror of
https://github.com/blw1138/Zordon.git
synced 2025-12-17 16:58:12 +00:00
Improved how jobs are converted to JSON
This commit is contained in:
@@ -22,13 +22,13 @@ server = Flask(__name__)
|
||||
|
||||
@server.get('/jobs')
|
||||
def jobs_json():
|
||||
return [json.loads(x.json()) for x in RenderQueue.job_queue if not x.archived]
|
||||
return [x.json_safe_copy() for x in RenderQueue.job_queue if not x.archived]
|
||||
|
||||
|
||||
@server.get('/jobs/<status_val>')
|
||||
def filtered_jobs_json(status_val):
|
||||
state = string_to_status(status_val)
|
||||
jobs = [json.loads(x.json()) for x in RenderQueue.jobs_with_status(state)]
|
||||
jobs = [x.json_safe_copy() for x in RenderQueue.jobs_with_status(state)]
|
||||
if jobs:
|
||||
return jobs
|
||||
else:
|
||||
@@ -39,7 +39,7 @@ def filtered_jobs_json(status_val):
|
||||
def get_job_status(job_id):
|
||||
found_job = RenderQueue.job_with_id(job_id)
|
||||
if found_job:
|
||||
return found_job.json()
|
||||
return found_job.json_safe_copy()
|
||||
else:
|
||||
return f'Cannot find job with ID {job_id}', 400
|
||||
|
||||
@@ -130,17 +130,13 @@ def full_status():
|
||||
@server.get('/snapshot')
|
||||
def snapshot():
|
||||
server_status = RenderQueue.status()
|
||||
server_jobs = [json.loads(x.json()) for x in RenderQueue.job_queue if not x.archived]
|
||||
server_jobs = [x.json_safe_copy() for x in RenderQueue.job_queue if not x.archived]
|
||||
server_data = {'status': server_status, 'jobs': server_jobs, 'timestamp': datetime.now().isoformat()}
|
||||
return server_data
|
||||
|
||||
|
||||
@server.post('/add_job')
|
||||
def add_job():
|
||||
def remove_job_dir():
|
||||
if job_dir and os.path.exists(job_dir):
|
||||
logger.debug(f"Removing job dir: {job_dir}")
|
||||
shutil.rmtree(job_dir)
|
||||
def add_job_handler():
|
||||
|
||||
try:
|
||||
"""Create new job and add to server render queue"""
|
||||
@@ -148,25 +144,7 @@ def add_job():
|
||||
if not json_string:
|
||||
return 'missing json data', 400
|
||||
|
||||
request_params = json.loads(json_string)
|
||||
job_owner = request_params.get("owner", None)
|
||||
renderer = request_params.get("renderer", None)
|
||||
input_path = request_params.get("input", None)
|
||||
output_path = request_params.get("output", None)
|
||||
priority = int(request_params.get('priority', 2))
|
||||
args = request_params.get('args', {})
|
||||
client = request_params.get('client', RenderQueue.host_name)
|
||||
force_start = request_params.get('force_start', False)
|
||||
uploaded_file = request.files.get('file', None)
|
||||
html_origin = request_params.get('origin', None) == 'html'
|
||||
custom_id = None
|
||||
job_dir = None
|
||||
|
||||
# check for minimum render requirements
|
||||
if None in [renderer, input_path or (uploaded_file and uploaded_file.filename), output_path]:
|
||||
err_msg = 'Cannot add job: Missing required parameters'
|
||||
logger.error(err_msg)
|
||||
return err_msg, 400
|
||||
print(json_string)
|
||||
|
||||
# handle uploaded files
|
||||
if uploaded_file and uploaded_file.filename:
|
||||
|
||||
Reference in New Issue
Block a user