mumui/deployment/models.py
2023-09-22 16:42:34 +02:00

52 lines
1.3 KiB
Python

from enum import Enum
from typing import Any
from django.contrib.auth.models import User
from django.db import models
class Type(Enum):
SLIM = "Slim"
MEDIUM = "Medium"
LARGE = "Large"
@classmethod
def into_choices(cls):
return [(s.name, s.value) for s in cls]
class Status(Enum):
READY = "Ready"
PENDING = "Pending"
RUNNING = "Running"
SUCCESS = "Success"
FAILED = "Failed"
@classmethod
def into_choices(cls):
return [(s.name, s.value) for s in cls]
class Deployment(models.Model):
id = models.UUIDField(primary_key=True)
name = models.TextField(null=False, blank=False)
type = models.CharField(
max_length=6, choices=Type.into_choices(), default=Type.SLIM.name
)
status = models.CharField(
max_length=7, choices=Status.into_choices(), default=Status.READY.name
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
error = models.TextField(null=True, blank=False)
task_id = models.UUIDField(null=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return f"{self.name} | {self.type} | {self.status}"
def __init__(self, *args: Any, **kwargs: Any):
self.progress = None
super().__init__(*args, **kwargs)