perf: 修改数据库添加 ssl 字段

pull/9133/head
ibuler 2022-11-30 11:28:51 +08:00
parent 47c405dee5
commit 0f1e19ba41
3 changed files with 52 additions and 15 deletions

View File

@ -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

View File

@ -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'),
),
]

View File

@ -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: