From 0778cc077fa7a7c4491958962891166ec59526de Mon Sep 17 00:00:00 2001
From: Reid 'arrdem' McKenzie <me@arrdem.com>
Date: Thu, 20 Jul 2023 00:13:38 -0600
Subject: [PATCH 1/2] Fix: Need to return user_id here for the jobs list

---
 projects/tentacles/src/python/tentacles/sql/jobs.sql | 1 +
 1 file changed, 1 insertion(+)

diff --git a/projects/tentacles/src/python/tentacles/sql/jobs.sql b/projects/tentacles/src/python/tentacles/sql/jobs.sql
index 748846e..86bc233 100644
--- a/projects/tentacles/src/python/tentacles/sql/jobs.sql
+++ b/projects/tentacles/src/python/tentacles/sql/jobs.sql
@@ -83,6 +83,7 @@ SELECT
  , j.started_at
  , j.cancelled_at
  , j.finished_at
+ , j.user_id
 FROM jobs j
 INNER JOIN files f
   ON j.file_id = f.id

From 2645fa909b005b535052f0dda4bddd0d414e2b3a Mon Sep 17 00:00:00 2001
From: Reid 'arrdem' McKenzie <me@arrdem.com>
Date: Thu, 20 Jul 2023 00:18:03 -0600
Subject: [PATCH 2/2] Fix: do not try to re-map assigned and pending jobs

---
 projects/tentacles/src/python/tentacles/sql/jobs.sql | 1 +
 projects/tentacles/src/python/tentacles/workers.py   | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/projects/tentacles/src/python/tentacles/sql/jobs.sql b/projects/tentacles/src/python/tentacles/sql/jobs.sql
index 86bc233..0eba47c 100644
--- a/projects/tentacles/src/python/tentacles/sql/jobs.sql
+++ b/projects/tentacles/src/python/tentacles/sql/jobs.sql
@@ -84,6 +84,7 @@ SELECT
  , j.cancelled_at
  , j.finished_at
  , j.user_id
+ , j.printer_id
 FROM jobs j
 INNER JOIN files f
   ON j.file_id = f.id
diff --git a/projects/tentacles/src/python/tentacles/workers.py b/projects/tentacles/src/python/tentacles/workers.py
index 0b97635..e3f500c 100644
--- a/projects/tentacles/src/python/tentacles/workers.py
+++ b/projects/tentacles/src/python/tentacles/workers.py
@@ -152,6 +152,11 @@ def assign_jobs(app: App, db: Db) -> None:
     """Assign jobs to printers. Uploading files and job state management is handled separately."""
 
     for job in db.list_job_queue(uid=None):
+        # FIXME: Jobs which have been mapped are still in the "queue" until they finish
+        # Ignore such as they have already been mapped
+        if job.printer_id:
+            continue
+
         for printer in db.list_idle_printers():
             if (
                 job.analysis_id is not None