mirror of
https://github.com/jumpserver/jumpserver.git
synced 2026-04-04 11:22:44 +00:00
* perf: 支持自定义类型资产 * perf: 改名前 * perf: 优化支持 choices * perf: 优化自定义资产 * perf: 优化资产的详情 * perf: 修改完成自定义平台和资产 --------- Co-authored-by: ibuler <ibuler@qq.com> Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from django.utils.translation import ugettext_lazy as _
|
|
from rest_framework.serializers import ValidationError
|
|
|
|
from assets.models import Database
|
|
from assets.serializers.gateway import GatewayWithAccountSecretSerializer
|
|
from .common import AssetSerializer
|
|
|
|
__all__ = ['DatabaseSerializer', 'DatabaseWithGatewaySerializer']
|
|
|
|
|
|
class DatabaseSerializer(AssetSerializer):
|
|
class Meta(AssetSerializer.Meta):
|
|
model = Database
|
|
extra_fields = [
|
|
'db_name', 'use_ssl', 'ca_cert', 'client_cert',
|
|
'client_key', 'allow_invalid_cert'
|
|
]
|
|
fields = AssetSerializer.Meta.fields + extra_fields
|
|
|
|
def validate(self, attrs):
|
|
platform = attrs.get('platform')
|
|
db_type_required = ('mongodb', 'postgresql')
|
|
if platform and getattr(platform, 'type') in db_type_required \
|
|
and not attrs.get('db_name'):
|
|
raise ValidationError({'db_name': _('This field is required.')})
|
|
return attrs
|
|
|
|
|
|
class DatabaseWithGatewaySerializer(DatabaseSerializer):
|
|
gateway = GatewayWithAccountSecretSerializer()
|
|
|
|
class Meta(DatabaseSerializer.Meta):
|
|
fields = DatabaseSerializer.Meta.fields + ['gateway']
|