File redis-unix-socket.patch of Package netbox

--- a/netbox/netbox/settings.py	2024-05-04 21:35:18.459236034 +0200
+++ b/netbox/netbox/settings.py	2024-05-04 21:35:05.462490445 +0200
@@ -277,6 +277,7 @@
 TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False)
 TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False)
 TASKS_REDIS_CA_CERT_PATH = TASKS_REDIS.get('CA_CERT_PATH', False)
+TASKS_REDIS_USE_UNIX_SOCKET = TASKS_REDIS.get('USE_UNIX_SOCKET', False)
 
 # Caching
 if 'caching' not in REDIS:
@@ -292,13 +293,21 @@
 CACHING_REDIS_SENTINELS = REDIS['caching'].get('SENTINELS', [])
 CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'default')
 CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis'
+CACHING_REDIS_PROTO = 'unix' if REDIS['caching'].get('USE_UNIX_SOCKET', False) else CACHING_REDIS_PROTO
 CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False)
 CACHING_REDIS_CA_CERT_PATH = REDIS['caching'].get('CA_CERT_PATH', False)
 
+if CACHING_REDIS_PROTO == 'unix':
+    CACHING_REDIS_PORT=''
+    CACHING_REDIS_DATABASE=f'?db={CACHING_REDIS_DATABASE}'
+else:
+    CACHING_REDIS_PORT=f':{CACHING_REDIS_PORT}'
+    CACHING_REDIS_DATABASE=f'/{CACHING_REDIS_DATABASE}'
+
 CACHES = {
     'default': {
         'BACKEND': 'django_redis.cache.RedisCache',
-        'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_USERNAME_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}',
+        'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_USERNAME_HOST}{CACHING_REDIS_PORT}{CACHING_REDIS_DATABASE}',
         'OPTIONS': {
             'CLIENT_CLASS': 'django_redis.client.DefaultClient',
             'PASSWORD': CACHING_REDIS_PASSWORD,
@@ -688,12 +697,18 @@
         },
     }
 else:
-    RQ_PARAMS = {
-        'HOST': TASKS_REDIS_HOST,
-        'PORT': TASKS_REDIS_PORT,
-        'SSL': TASKS_REDIS_SSL,
-        'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required',
-    }
+    if TASKS_REDIS_USE_UNIX_SOCKET:
+        RQ_PARAMS = {
+            'UNIX_SOCKET_PATH': TASKS_REDIS_HOST,
+        }
+    else:
+        RQ_PARAMS = {
+            'HOST': TASKS_REDIS_HOST,
+            'PORT': TASKS_REDIS_PORT,
+            'SSL': TASKS_REDIS_SSL,
+            'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required',
+        }
+
 RQ_PARAMS.update({
     'DB': TASKS_REDIS_DATABASE,
     'USERNAME': TASKS_REDIS_USERNAME,
openSUSE Build Service is sponsored by