diff --git a/projects/tentacles/src/python/tentacles/workers.py b/projects/tentacles/src/python/tentacles/workers.py index 29e6019..af0dcc5 100644 --- a/projects/tentacles/src/python/tentacles/workers.py +++ b/projects/tentacles/src/python/tentacles/workers.py @@ -12,6 +12,7 @@ import logging from pathlib import Path from typing import Callable from urllib import parse as urlparse +from pprint import pformat from cherrypy.process.plugins import Monitor from fastmail import FastMailSMTP @@ -217,10 +218,7 @@ def pull_jobs(app: App, db: Db) -> None: except HTTPError: printer_state = {"disconnected": True, "error": True} - if printer_state.get("printing"): - pass - - elif job_state.get("progress", {}).get("completion", 0.0) == 100.0: + if job_state.get("progress", {}).get("completion", 0.0) == 100.0: log.info(f"Job {job.id} has succeeded") db.finish_job(jid=job.id, state="success") @@ -232,10 +230,14 @@ def pull_jobs(app: App, db: Db) -> None: log.info(f"Job {job.id} has been acknowledged as cancelled") db.finish_job(jid=job.id, state="cancelled") + if printer_state.get("printing"): + pass + else: log.warn( - f"Job {job.id} is in a weird state {job_state.get('progress')!r} {printer_state!r}" + f"Job {job.id} is in a weird state; assuming error\n{pformat(job_state.get('progress'))}\n{pformat(printer_state)}" ) + db.finish_job(jid=job.id, state="failed") except TimeoutError: pass