From 40b49e258e4b31f884ac6e9721d3d6b0219bfa49 Mon Sep 17 00:00:00 2001 From: Eric Date: Fri, 17 Feb 2023 20:10:17 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=8E=BB=E6=8E=89=20tunnel=20=E5=92=8C?= =?UTF-8?q?=20command=20=E4=BC=9A=E8=AF=9D=E7=9A=84=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/const.py | 6 ++++++ apps/terminal/models/session/session.py | 6 +++++- apps/terminal/serializers/session.py | 6 +----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/terminal/const.py b/apps/terminal/const.py index a38d026b4..40adb4e82 100644 --- a/apps/terminal/const.py +++ b/apps/terminal/const.py @@ -59,3 +59,9 @@ class PublishStatus(TextChoices): success = 'success', _("Success") failed = 'failed', _("Failed") mismatch = 'mismatch', _("Mismatch") + + +class SessionType(TextChoices): + normal = 'normal', _('Normal') + tunnel = 'tunnel', _('Tunnel') + command = 'command', _('Command') diff --git a/apps/terminal/models/session/session.py b/apps/terminal/models/session/session.py index fd5b2b243..f170b0e33 100644 --- a/apps/terminal/models/session/session.py +++ b/apps/terminal/models/session/session.py @@ -15,6 +15,7 @@ from assets.models import Asset from common.utils import get_object_or_none, lazyproperty from orgs.mixins.models import OrgModelMixin from terminal.backends import get_multi_command_storage +from terminal.const import SessionType from users.models import User @@ -124,6 +125,9 @@ class Session(OrgModelMixin): return False if self.login_from == self.LOGIN_FROM.RT: return False + if self.type != SessionType.normal: + # 会话监控仅支持 normal,不支持 tunnel 和 command + return False if self.protocol in [ Protocol.ssh, Protocol.vnc, Protocol.rdp, Protocol.telnet, Protocol.k8s @@ -153,7 +157,7 @@ class Session(OrgModelMixin): return None, e if settings.SERVER_REPLAY_STORAGE: - from ..tasks import upload_session_replay_to_external_storage + from terminal.tasks import upload_session_replay_to_external_storage upload_session_replay_to_external_storage.delay(str(self.id)) return name, None diff --git a/apps/terminal/serializers/session.py b/apps/terminal/serializers/session.py index 32ff8061e..572c1ecc3 100644 --- a/apps/terminal/serializers/session.py +++ b/apps/terminal/serializers/session.py @@ -1,10 +1,10 @@ -from django.db import models from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers from assets.const import Protocol from common.serializers.fields import LabeledChoiceField from orgs.mixins.serializers import BulkOrgResourceModelSerializer +from ..const import SessionType from ..models import Session __all__ = [ @@ -13,10 +13,6 @@ __all__ = [ ] -class SessionType(models.TextChoices): - normal = 'normal', _('Normal') - tunnel = 'tunnel', _('Tunnel') - command = 'command', _('Command') class SessionSerializer(BulkOrgResourceModelSerializer):