From fefda70657c4c5f97aaf441e566c6a4ab1ef9f4c Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Tue, 6 Jul 2021 10:49:00 +0200
Subject: [PATCH] Don't fail directly on connection error

---
 documento_printserver/print_server.py | 31 ++++++++++++++++-----------
 1 file changed, 18 insertions(+), 13 deletions(-)

diff --git a/documento_printserver/print_server.py b/documento_printserver/print_server.py
index fe001c5..af1087b 100644
--- a/documento_printserver/print_server.py
+++ b/documento_printserver/print_server.py
@@ -74,19 +74,24 @@ categories_url = base_url + "/api/categories/"
 
 def print_server():
     while True:
-        # Get auth token
-        r = requests.post(
-            login_url,
-            json={
-                "username": settings.get("server.username"),
-                "password": settings.get("server.password"),
-            },
-        )
-        token = r.json()["token"]
-        headers = {"Authorization": f"Token {token}"}
-
-        # Fetch print jobs
-        jobs = requests.get(jobs_url, headers=headers).json()
+        try:
+            # Get auth token
+            r = requests.post(
+                login_url,
+                json={
+                    "username": settings.get("server.username"),
+                    "password": settings.get("server.password"),
+                },
+            )
+            token = r.json()["token"]
+            headers = {"Authorization": f"Token {token}"}
+
+            # Fetch print jobs
+            jobs = requests.get(jobs_url, headers=headers).json()
+        except requests.exceptions.ConnectionError:
+            print("Fetching latest jobs failed due to a connection error.")
+            time.sleep(3)
+            continue
 
         # Fetch categories
         categories = requests.get(categories_url, headers=headers).json()
-- 
GitLab