Move to settings, add celery, updated styling

This commit is contained in:
shamoon
2024-02-12 10:04:45 -08:00
parent 87c2efef4d
commit c40b2adad7
12 changed files with 179 additions and 113 deletions

View File

@@ -29,6 +29,6 @@ class TestSystemStatusView(APITestCase):
self.assertEqual(response.data["database"]["status"], "OK")
self.assertIsNone(response.data["database"]["error"])
self.assertIsNotNone(response.data["database"]["migration_status"])
self.assertEqual(response.data["redis"]["url"], "redis://localhost:6379")
self.assertEqual(response.data["redis"]["status"], "ERROR")
self.assertIsNotNone(response.data["redis"]["error"])
self.assertEqual(response.data["tasks"]["redis_url"], "redis://localhost:6379")
self.assertEqual(response.data["tasks"]["redis_status"], "ERROR")
self.assertIsNotNone(response.data["tasks"]["redis_error"])

View File

@@ -14,6 +14,7 @@ from unicodedata import normalize
from urllib.parse import quote
import pathvalidate
from celery import Celery
from django.conf import settings
from django.contrib.auth.models import User
from django.db import connections
@@ -1555,6 +1556,12 @@ class SystemStatusView(GenericAPIView, PassUserMixin):
current_version = version.__full_version_str__
install_type = "bare-metal"
if os.environ.get("KUBERNETES_SERVICE_HOST") is not None:
install_type = "kubernetes"
elif os.environ.get("PNGX_CONTAINERIZED") == "1":
install_type = "docker"
media_stats = os.statvfs(settings.MEDIA_ROOT)
db_conn = connections["default"]
@@ -1583,15 +1590,21 @@ class SystemStatusView(GenericAPIView, PassUserMixin):
redis_status = "ERROR"
redis_error = str(e)
try:
app = Celery("paperless")
app.config_from_object("django.conf:settings", namespace="CELERY")
ping = app.control.inspect().ping()
first_worker_ping = ping[next(iter(ping.keys()))]
if first_worker_ping["ok"] == "pong":
celery_active = "OK"
except Exception:
celery_active = "ERROR"
return Response(
{
"pngx_version": current_version,
"server_os": platform.platform(),
"install_type": (
"containerized"
if os.environ.get("PNGX_CONTAINERIZED") == "1"
else "bare-metal"
),
"install_type": install_type,
"storage": {
"total": media_stats.f_frsize * media_stats.f_blocks,
"available": media_stats.f_frsize * media_stats.f_bavail,
@@ -1608,10 +1621,11 @@ class SystemStatusView(GenericAPIView, PassUserMixin):
],
},
},
"redis": {
"url": redis_url,
"status": redis_status,
"error": redis_error,
"tasks": {
"redis_url": redis_url,
"redis_status": redis_status,
"redis_error": redis_error,
"celery_status": celery_active,
},
},
)