perf: 修改基础 model,继承同一个

This commit is contained in:
ibuler
2022-12-20 20:23:42 +08:00
parent a7815dc9e5
commit 58909ee67d
58 changed files with 1135 additions and 344 deletions

View File

@@ -1,22 +1,23 @@
from __future__ import unicode_literals
import copy
import os
from importlib import import_module
import jms_storage
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
from common.mixins import CommonModelMixin
from common.db.fields import EncryptJsonDictTextField
from common.db.models import JMSBaseModel
from common.plugins.es import QuerySet as ESQuerySet
from common.utils import get_logger
from common.db.fields import EncryptJsonDictTextField
from common.utils.timezone import local_now_date_display
from terminal import const
from terminal.backends import TYPE_ENGINE_MAPPING
from .terminal import Terminal
from ..session.command import Command
from terminal import const
logger = get_logger(__file__)
@@ -25,7 +26,6 @@ class CommonStorageModelMixin(models.Model):
name = models.CharField(max_length=128, verbose_name=_("Name"), unique=True)
meta = EncryptJsonDictTextField(default={})
is_default = models.BooleanField(default=False, verbose_name=_('Default storage'))
comment = models.TextField(default='', blank=True, verbose_name=_('Comment'))
class Meta:
abstract = True
@@ -51,7 +51,7 @@ class CommonStorageModelMixin(models.Model):
return objs.first()
class CommandStorage(CommonStorageModelMixin, CommonModelMixin):
class CommandStorage(CommonStorageModelMixin, JMSBaseModel):
type = models.CharField(
max_length=16, choices=const.CommandStorageType.choices,
default=const.CommandStorageType.server.value, verbose_name=_('Type'),
@@ -140,7 +140,7 @@ class CommandStorage(CommonStorageModelMixin, CommonModelMixin):
verbose_name = _("Command storage")
class ReplayStorage(CommonStorageModelMixin, CommonModelMixin):
class ReplayStorage(CommonStorageModelMixin, JMSBaseModel):
type = models.CharField(
max_length=16, choices=const.ReplayStorageType.choices,
default=const.ReplayStorageType.server.value, verbose_name=_('Type')

View File

@@ -1,27 +1,24 @@
from __future__ import unicode_literals
import uuid
from django.db import models
from django.utils.translation import ugettext_lazy as _
from common.db.models import JMSBaseModel
from .terminal import Terminal
class Task(models.Model):
class Task(JMSBaseModel):
NAME_CHOICES = (
("kill_session", "Kill Session"),
)
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
name = models.CharField(max_length=128, choices=NAME_CHOICES, verbose_name=_("Name"))
args = models.CharField(max_length=1024, verbose_name=_("Args"))
kwargs = models.JSONField(default=dict, verbose_name=_("Kwargs"))
terminal = models.ForeignKey(Terminal, null=True, on_delete=models.SET_NULL)
is_finished = models.BooleanField(default=False)
date_created = models.DateTimeField(auto_now_add=True)
date_finished = models.DateTimeField(null=True)
class Meta:
db_table = "terminal_task"
verbose_name = _("Task")

View File

@@ -1,11 +1,11 @@
import time
import uuid
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from common.const.signals import SKIP_SIGNAL
from common.db.models import JMSBaseModel
from common.utils import get_logger, lazyproperty
from orgs.utils import tmp_to_root_org
from terminal.const import TerminalType as TypeChoices
@@ -75,8 +75,7 @@ class StorageMixin:
return {"TERMINAL_REPLAY_STORAGE": config}
class Terminal(StorageMixin, TerminalStatusMixin, models.Model):
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
class Terminal(StorageMixin, TerminalStatusMixin, JMSBaseModel):
name = models.CharField(max_length=128, verbose_name=_('Name'))
type = models.CharField(
choices=TypeChoices.choices, default=TypeChoices.koko,
@@ -88,8 +87,6 @@ class Terminal(StorageMixin, TerminalStatusMixin, models.Model):
user = models.OneToOneField(User, related_name='terminal', verbose_name=_('Application User'), null=True,
on_delete=models.CASCADE)
is_deleted = models.BooleanField(default=False)
date_created = models.DateTimeField(auto_now_add=True)
comment = models.TextField(blank=True, verbose_name=_('Comment'))
@property
def is_active(self):