From 0f1e19ba41490d6dbab1da4353ea76ba9435c46b Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 30 Nov 2022 11:28:51 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=B7=BB=E5=8A=A0=20ssl=20=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/api/mixin.py | 19 ++-------- .../migrations/0115_auto_20221130_1118.py | 38 +++++++++++++++++++ apps/assets/models/asset/database.py | 10 +++++ 3 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 apps/assets/migrations/0115_auto_20221130_1118.py diff --git a/apps/assets/api/mixin.py b/apps/assets/api/mixin.py index f7f788e72..59be2b5f5 100644 --- a/apps/assets/api/mixin.py +++ b/apps/assets/api/mixin.py @@ -1,10 +1,10 @@ from typing import List + from rest_framework.request import Request -from common.utils import lazyproperty, timeit -from assets.models import Node, Asset -from assets.pagination import NodeAssetTreePagination +from assets.models import Node from assets.utils import get_node_from_request, is_query_node_all_assets +from common.utils import lazyproperty, timeit class SerializeToTreeNodeMixin: @@ -38,14 +38,6 @@ class SerializeToTreeNodeMixin: ] return data - def get_platform(self, asset: Asset): - default = 'file' - icon = {'windows', 'linux'} - platform = asset.platform.type.lower() - if platform in icon: - return platform - return default - @timeit def serialize_assets(self, assets, node_key=None): if node_key is None: @@ -61,13 +53,11 @@ class SerializeToTreeNodeMixin: 'pId': get_pid(asset), 'isParent': False, 'open': False, - 'iconSkin': self.get_platform(asset), + 'iconSkin': asset.type, 'chkDisabled': not asset.is_active, 'meta': { 'type': 'asset', 'data': { - 'id': asset.id, - 'name': asset.name, 'org_name': asset.org_name }, } @@ -78,7 +68,6 @@ class SerializeToTreeNodeMixin: class NodeFilterMixin: - # pagination_class = NodeAssetTreePagination request: Request @lazyproperty diff --git a/apps/assets/migrations/0115_auto_20221130_1118.py b/apps/assets/migrations/0115_auto_20221130_1118.py new file mode 100644 index 000000000..3d5fc9b20 --- /dev/null +++ b/apps/assets/migrations/0115_auto_20221130_1118.py @@ -0,0 +1,38 @@ +# Generated by Django 3.2.14 on 2022-11-30 03:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('assets', '0114_node_domain'), + ] + + operations = [ + migrations.AddField( + model_name='database', + name='allow_invalid_cert', + field=models.BooleanField(default=False, verbose_name='Allow invalid cert'), + ), + migrations.AddField( + model_name='database', + name='ca_cert', + field=models.TextField(blank=True, verbose_name='CA cert'), + ), + migrations.AddField( + model_name='database', + name='client_cert', + field=models.TextField(blank=True, verbose_name='Client cert'), + ), + migrations.AddField( + model_name='database', + name='client_key', + field=models.TextField(blank=True, verbose_name='Client key'), + ), + migrations.AddField( + model_name='database', + name='use_ssl', + field=models.BooleanField(default=False, verbose_name='Use SSL'), + ), + ] diff --git a/apps/assets/models/asset/database.py b/apps/assets/models/asset/database.py index 6aef15a8f..4772a6b08 100644 --- a/apps/assets/models/asset/database.py +++ b/apps/assets/models/asset/database.py @@ -6,6 +6,11 @@ from .common import Asset class Database(Asset): db_name = models.CharField(max_length=1024, verbose_name=_("Database"), blank=True) + use_ssl = models.BooleanField(default=False, verbose_name=_("Use SSL")) + ca_cert = models.TextField(verbose_name=_("CA cert"), blank=True) + client_cert = models.TextField(verbose_name=_("Client cert"), blank=True) + client_key = models.TextField(verbose_name=_("Client key"), blank=True) + allow_invalid_cert = models.BooleanField(default=False, verbose_name=_('Allow invalid cert')) def __str__(self): return '{}({}://{}/{})'.format(self.name, self.type, self.address, self.db_name) @@ -18,6 +23,11 @@ class Database(Asset): def specific(self): return { 'db_name': self.db_name, + 'use_ssl': self.use_ssl, + 'ca_cert': self.ca_cert, + 'client_cert': self.client_cert, + 'client_key': self.client_key, + 'allow_invalid_cert': self.allow_invalid_cert, } class Meta: