jumpserver/apps/applications/serializers/database_app.py

51 lines
1.5 KiB
Python
Raw Normal View History

# coding: utf-8
#
2020-10-19 12:13:01 +00:00
from rest_framework import serializers
from django.utils.translation import ugettext_lazy as _
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
from common.serializers import AdaptedBulkListSerializer
from .. import models
2020-10-19 12:13:01 +00:00
class DatabaseCategorySerializer(serializers.Serializer):
host = serializers.CharField(label=_('Host'))
port = serializers.IntegerField(label=_('Port'))
database = serializers.CharField(allow_blank=True, allow_null=True, label=_('Database'))
2020-10-19 12:13:01 +00:00
class DatabaseAttrsSerializer(DatabaseCategorySerializer):
pass
2020-10-19 12:13:01 +00:00
class MySQLAttrsSerializer(DatabaseAttrsSerializer):
port = serializers.IntegerField(default=3306, label=_('Port'))
class PostgreAttrsSerializer(DatabaseAttrsSerializer):
port = serializers.IntegerField(default=5432, label=_('Port'))
2020-10-19 12:13:01 +00:00
class OracleAttrsSerializer(DatabaseAttrsSerializer):
port = serializers.IntegerField(default=1521, label=_('Port'))
2020-10-19 12:13:01 +00:00
class MariaDBAttrsSerializer(MySQLAttrsSerializer):
pass
class DatabaseAppSerializer(BulkOrgResourceModelSerializer):
class Meta:
model = models.DatabaseApp
list_serializer_class = AdaptedBulkListSerializer
fields = [
'id', 'name', 'type', 'get_type_display', 'host', 'port',
'database', 'comment', 'created_by', 'date_created', 'date_updated',
]
read_only_fields = [
'created_by', 'date_created', 'date_updated'
'get_type_display',
]