Skip to content

Commit

Permalink
Add django-constance to save settings
Browse files Browse the repository at this point in the history
  • Loading branch information
MathieuMoalic committed Mar 7, 2024
1 parent d29a55d commit 604dd78
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 70 deletions.
1 change: 0 additions & 1 deletion frontend/src/lib/Navbar/NavBar.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
<NavLi href="/jobs">Jobs</NavLi>
<NavLi href="/nodes">Nodes</NavLi>
<NavLi href="/gpus">GPUs</NavLi>
<NavLi href="/settings">Settings</NavLi>
<Logout />
<Github />
</NavUl>
Expand Down
15 changes: 0 additions & 15 deletions frontend/src/routes/settings/+page.svelte

This file was deleted.

58 changes: 36 additions & 22 deletions manager/amuman/settings.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
import logging
import logging.config
import os
from datetime import timedelta
from pathlib import Path

from rich.logging import RichHandler

DEBUG = os.environ.get("DEBUG", "True") != "FALSE"
if DEBUG:
ALLOWED_HOSTS = ["*"]
Expand All @@ -25,24 +21,36 @@
SECURE_HSTS_PRELOAD = True
CORS_ALLOW_ALL_ORIGINS = False

logging.basicConfig(
level=LOGLEVEL,
format="%(name)s - %(message)s",
datefmt="[%X]",
handlers=[RichHandler(rich_tracebacks=True)],
)

log = logging.getLogger("rich")
logging.getLogger("django.utils.autoreload").setLevel(logging.WARNING)
logging.getLogger("django.channels.server").setLevel(logging.WARNING)
logging.getLogger("django.request").setLevel(logging.WARNING)
logging.getLogger("django.db.backends").setLevel(logging.WARNING)
logging.getLogger("asyncio").setLevel(logging.WARNING)
logging.getLogger("daphne.server").setLevel(logging.WARNING)
logging.getLogger("daphne.ws_protocol").setLevel(logging.WARNING)
logging.getLogger("daphne.http_protocol").setLevel(logging.WARNING)


LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"django_rich_logging": {
"class": "django_rich_logging.logging.DjangoRequestHandler",
"columns": [
{"header": "Masdethod", "forawdmat": "[white]{method}", "style": "{"},
{"header": "Path", "format": "[white bold]{path}", "style": "{"},
{"header": "Size", "format": "[white]{size}", "style": "{"},
{"header": "Status", "format": "{status_code}", "style": "{"},
{
"header": "Time",
"format": "[white]{created}",
"style": "{",
"datefmt": "%H:%M:%S",
},
],
},
},
"loggers": {
"django.server": {"level": "DEBUG", "handlers": ["django_rich_logging"]},
"django.request": {"level": "CRITICAL"},
"rich": {
"handlers": ["django_rich_logging"],
"level": "DEBUG",
"propagate": True,
},
},
}
BASE_DIR = Path(__file__).resolve().parent.parent

INSTALLED_APPS = [
Expand All @@ -59,8 +67,14 @@
"rest_framework_simplejwt.token_blacklist",
"drf_spectacular",
"channels",
"constance",
]

CONSTANCE_CONFIG = {
"autorun_jobs": (True, ""),
}


# Needed for the admin panel
STATIC_URL = "/static/"
STATICFILES_DIRS = [
Expand Down
10 changes: 0 additions & 10 deletions manager/manager/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from enum import Enum

from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.db import models
from django.utils import timezone

Expand Down Expand Up @@ -134,12 +133,3 @@ class GPUPartition(Enum):

def __str__(self):
return f"{self.pk}"


class ManagerSettings(models.Model):
queue_watchdog = models.BooleanField(default=False)

def save(self, *args, **kwargs):
if not self.pk and ManagerSettings.objects.exists():
raise ValidationError("There can only be one entry of ManagerSettings.")
return super().save(*args, **kwargs)
13 changes: 1 addition & 12 deletions manager/manager/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from django.utils import timezone
from rest_framework import serializers

from .models import CustomUser, Gpu, Job, ManagerSettings, Node
from .models import CustomUser, Gpu, Job, Node


class AuthUserSerializer(serializers.ModelSerializer):
Expand Down Expand Up @@ -120,14 +120,3 @@ def save(self, **kwargs):
return self.update(gpu, self.validated_data)
else:
return super().save(**kwargs)


class ManagerSettingsSerializer(serializers.ModelSerializer):
class Meta:
model = ManagerSettings
fields = "__all__"

def create(self, validated_data):
if ManagerSettings.objects.exists():
raise serializers.ValidationError("You cannoc duplicate this entrypoint.")
return ManagerSettings.objects.create(**validated_data)
10 changes: 1 addition & 9 deletions manager/manager/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@
from rest_framework.response import Response

from .components.run_job import RunJob
from .models import CustomUser, Gpu, Job, ManagerSettings, Node
from .models import CustomUser, Gpu, Job, Node
from .serializers import (
CustomUserSerializer,
GpuSerializer,
JobSerializer,
ManagerSettingsSerializer,
NodeSerializer,
RefreshNodeSerializer,
)
Expand Down Expand Up @@ -254,10 +253,3 @@ def create(self, request, *_args, **_kwargs):
)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


class ManagerSettingsViewSet(viewsets.ModelViewSet):
queryset = ManagerSettings.objects.all()
serializer_class = ManagerSettingsSerializer
permission_classes: ClassVar = [permissions.IsAuthenticated]
http_method_names = ["patch", "head", "options"]
4 changes: 3 additions & 1 deletion manager/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ channels==4.0.0
schedule==1.2.1
tzdata==2024.1
channels-redis==4.2.0
drf-spectacular==0.27.1
drf-spectacular==0.27.1
django-constance==3.1.0
django-rich-logging==0.3.0

0 comments on commit 604dd78

Please sign in to comment.