From 927fe1f1283c2b03f236783c199b89a51100089d Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 2 Nov 2023 19:34:55 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=20xpack?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/const/protocol.py | 14 ++++++++++---- apps/assets/migrations/0071_systemuser_type.py | 2 +- apps/assets/migrations/0081_auto_20211105_1605.py | 2 +- apps/assets/migrations/0084_auto_20220112_1959.py | 2 +- apps/assets/migrations/0087_auto_20220223_1539.py | 2 +- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/apps/assets/const/protocol.py b/apps/assets/const/protocol.py index f61641da9..790899690 100644 --- a/apps/assets/const/protocol.py +++ b/apps/assets/const/protocol.py @@ -27,7 +27,7 @@ class Protocol(ChoicesMixin, models.TextChoices): redis = 'redis', 'Redis' mongodb = 'mongodb', 'MongoDB' - k8s = 'k8s', 'K8S' + k8s = 'k8s', 'K8s' http = 'http', 'HTTP(s)' chatgpt = 'chatgpt', 'ChatGPT' @@ -295,15 +295,21 @@ class Protocol(ChoicesMixin, models.TextChoices): } @classmethod + @cached_method(ttl=600) def protocols(cls): - return cls.settings().keys() + protocols = [] + xpack_enabled = settings.XPACK_ENABLED + for protocol, config in cls.settings().items(): + if not xpack_enabled and config.get('xpack', False): + continue + protocols.append(protocol) + return protocols @classmethod @cached_method(ttl=600) def xpack_protocols(cls): return [ - protocol - for protocol, config in cls.settings().items() + protocol for protocol, config in cls.settings().items() if config.get('xpack', False) ] diff --git a/apps/assets/migrations/0071_systemuser_type.py b/apps/assets/migrations/0071_systemuser_type.py index 8ca48370a..9dc48fa7a 100644 --- a/apps/assets/migrations/0071_systemuser_type.py +++ b/apps/assets/migrations/0071_systemuser_type.py @@ -83,7 +83,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='systemuser', name='protocol', - field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('k8s', 'K8S')], default='ssh', max_length=16, verbose_name='Protocol'), + field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('k8s', 'K8s')], default='ssh', max_length=16, verbose_name='Protocol'), ), migrations.RunPython(migrate_admin_user_to_system_user), migrations.RenameField( diff --git a/apps/assets/migrations/0081_auto_20211105_1605.py b/apps/assets/migrations/0081_auto_20211105_1605.py index d8ab39a78..08e055617 100644 --- a/apps/assets/migrations/0081_auto_20211105_1605.py +++ b/apps/assets/migrations/0081_auto_20211105_1605.py @@ -13,6 +13,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='systemuser', name='protocol', - field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('k8s', 'K8S')], default='ssh', max_length=16, verbose_name='Protocol'), + field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('k8s', 'K8s')], default='ssh', max_length=16, verbose_name='Protocol'), ), ] diff --git a/apps/assets/migrations/0084_auto_20220112_1959.py b/apps/assets/migrations/0084_auto_20220112_1959.py index 5385980e9..25aedef77 100644 --- a/apps/assets/migrations/0084_auto_20220112_1959.py +++ b/apps/assets/migrations/0084_auto_20220112_1959.py @@ -40,7 +40,7 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='systemuser', name='protocol', - field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('redis', 'Redis'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('k8s', 'K8S')], default='ssh', max_length=16, verbose_name='Protocol'), + field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('redis', 'Redis'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('k8s', 'K8s')], default='ssh', max_length=16, verbose_name='Protocol'), ), migrations.CreateModel( name='AccountBackupPlanExecution', diff --git a/apps/assets/migrations/0087_auto_20220223_1539.py b/apps/assets/migrations/0087_auto_20220223_1539.py index 6c3302e51..cf707a495 100644 --- a/apps/assets/migrations/0087_auto_20220223_1539.py +++ b/apps/assets/migrations/0087_auto_20220223_1539.py @@ -13,6 +13,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='systemuser', name='protocol', - field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('redis', 'Redis'), ('mongodb', 'MongoDB'), ('k8s', 'K8S')], default='ssh', max_length=16, verbose_name='Protocol'), + field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('redis', 'Redis'), ('mongodb', 'MongoDB'), ('k8s', 'K8s')], default='ssh', max_length=16, verbose_name='Protocol'), ), ]