From f13db5c69be3392369da20383511f81a936aaa7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Mon, 20 Nov 2023 17:57:45 +0100
Subject: [PATCH] shorter external request timeout

---
 contracts/admin.py | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/contracts/admin.py b/contracts/admin.py
index 6240321..ad19a97 100644
--- a/contracts/admin.py
+++ b/contracts/admin.py
@@ -5,6 +5,7 @@ import typing
 import uuid
 
 import requests
+import threading
 from admin_auto_filters.filters import AutocompleteFilterFactory
 from django.conf import settings
 from django.contrib import admin
@@ -295,6 +296,8 @@ class ContractAdmin(
         FieldsetInlineOrder.FIELDSET,
     ]
 
+    external_requests_timeout = 20
+
     def get_queryset(self, request):
         queryset = super().get_queryset(request)
 
@@ -360,6 +363,7 @@ class ContractAdmin(
                         }
                     ),
                     headers=headers,
+                    timeout=external_requests_timeout,
                 )
 
                 notice.raise_for_status()
@@ -372,6 +376,7 @@ class ContractAdmin(
                     requests.post(
                         f"{settings.NASTENKA_API_URL}/{obj.after_approval_nastenka_notice_id}/all-hidden",
                         headers=headers,
+                        timeout=external_requests_timeout,
                     ).raise_for_status()
 
                     obj.after_approval_nastenka_notice_id = None
@@ -381,6 +386,7 @@ class ContractAdmin(
                     requests.post(
                         f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}/all-hidden",
                         headers=headers,
+                        timeout=external_requests_timeout,
                     ).raise_for_status()
 
                     obj.to_be_approved_nastenka_notice_id = None
@@ -416,6 +422,7 @@ class ContractAdmin(
                             }
                         ),
                         headers=headers,
+                        timeout=external_requests_timeout,
                     )
 
                     notice.raise_for_status()
@@ -428,6 +435,7 @@ class ContractAdmin(
                         requests.post(
                             f"{settings.NASTENKA_API_URL}/{obj.work_in_progress_nastenka_notice_id}/all-hidden",
                             headers=headers,
+                            timeout=external_requests_timeout,
                         ).raise_for_status()
 
                         obj.work_in_progress_nastenka_notice_id = None
@@ -456,6 +464,7 @@ class ContractAdmin(
                             }
                         ),
                         headers=headers,
+                        timeout=external_requests_timeout,
                     )
 
                     notice.raise_for_status()
@@ -468,6 +477,7 @@ class ContractAdmin(
                         requests.post(
                             f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}/all-hidden",
                             headers=headers,
+                            timeout=external_requests_timeout,
                         ).raise_for_status()
 
                         obj.to_be_approved_nastenka_notice_id = None
@@ -496,6 +506,7 @@ class ContractAdmin(
                             }
                         ),
                         headers=headers,
+                        timeout=external_requests_timeout,
                     )
 
                     notice.raise_for_status()
@@ -508,6 +519,7 @@ class ContractAdmin(
                         requests.post(
                             f"{settings.NASTENKA_API_URL}/{obj.to_be_approved_nastenka_notice_id}/all-hidden",
                             headers=headers,
+                            timeout=external_requests_timeout,
                         ).raise_for_status()
 
                         obj.to_be_approved_nastenka_notice_id = None
-- 
GitLab