mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-16 07:18:22 +00:00
refacter: 重构application
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from .application import *
|
||||
from .remote_app import *
|
||||
from .database_app import *
|
||||
from .k8s_app import *
|
||||
|
46
apps/applications/serializers/application.py
Normal file
46
apps/applications/serializers/application.py
Normal file
@@ -0,0 +1,46 @@
|
||||
# coding: utf-8
|
||||
#
|
||||
|
||||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
||||
|
||||
from .. import models
|
||||
|
||||
__all__ = [
|
||||
'ApplicationSerializer',
|
||||
]
|
||||
|
||||
|
||||
class ApplicationSerializer(BulkOrgResourceModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = models.Application
|
||||
fields = [
|
||||
'id', 'name', 'category', 'type', 'get_type_display', 'attrs',
|
||||
'created_by', 'date_created', 'date_updated', 'comment'
|
||||
]
|
||||
read_only_fields = [
|
||||
'created_by', 'date_created', 'date_updated', 'get_type_display',
|
||||
]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
app_type = ''
|
||||
attrs_data = {}
|
||||
if self.instance:
|
||||
app_type = self.instance.type
|
||||
attrs_data = self.instance.attrs
|
||||
request = self.context.get('request')
|
||||
if request:
|
||||
app_type = request.query_params.get('type')
|
||||
if hasattr(self, 'initial_data'):
|
||||
app_type = self.initial_data.get('type')
|
||||
attrs_data = self.initial_data.get('attrs')
|
||||
if not app_type:
|
||||
return
|
||||
attrs_cls = models.Category.get_type_serializer_cls(app_type)
|
||||
if attrs_data:
|
||||
attrs_serializer = attrs_cls(data=attrs_data)
|
||||
else:
|
||||
attrs_serializer = attrs_cls()
|
||||
self.fields['attrs'] = attrs_serializer
|
||||
|
@@ -1,14 +1,34 @@
|
||||
# coding: utf-8
|
||||
#
|
||||
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
|
||||
|
||||
__all__ = [
|
||||
'DatabaseAppSerializer',
|
||||
]
|
||||
|
||||
class DatabaseAttrsSerializer(serializers.Serializer):
|
||||
host = serializers.CharField()
|
||||
port = serializers.IntegerField()
|
||||
database = serializers.CharField(allow_blank=True, allow_null=True)
|
||||
|
||||
|
||||
class MySQLAttrsSerializer(DatabaseAttrsSerializer):
|
||||
port = serializers.IntegerField(default=3306, label=_('Port'))
|
||||
|
||||
|
||||
class PostgreAttrsSerializer(DatabaseAttrsSerializer):
|
||||
port = serializers.IntegerField(default=5432)
|
||||
|
||||
|
||||
class OracleAttrsSerializer(DatabaseAttrsSerializer):
|
||||
port = serializers.IntegerField(default=1521)
|
||||
|
||||
|
||||
class MariaDBAttrsSerializer(MySQLAttrsSerializer):
|
||||
pass
|
||||
|
||||
|
||||
class DatabaseAppSerializer(BulkOrgResourceModelSerializer):
|
||||
|
@@ -1,11 +1,12 @@
|
||||
from rest_framework import serializers
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
||||
from .. import models
|
||||
|
||||
__all__ = [
|
||||
'K8sAppSerializer',
|
||||
]
|
||||
|
||||
class K8sAttrsSerializer(serializers.Serializer):
|
||||
cluster = serializers.CharField(label=_('Cluster'))
|
||||
|
||||
|
||||
class K8sAppSerializer(BulkOrgResourceModelSerializer):
|
||||
|
@@ -2,19 +2,54 @@
|
||||
#
|
||||
|
||||
import copy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
from common.serializers import AdaptedBulkListSerializer
|
||||
from common.fields.serializer import CustomMetaDictField
|
||||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
||||
from assets.models import Asset
|
||||
|
||||
from .. import const
|
||||
from ..models import RemoteApp
|
||||
|
||||
|
||||
__all__ = [
|
||||
'RemoteAppSerializer', 'RemoteAppConnectionInfoSerializer',
|
||||
]
|
||||
class RemoteAppAttrsSerializer(serializers.Serializer):
|
||||
asset = serializers.PrimaryKeyRelatedField(queryset=Asset.objects, label=_("Assets"))
|
||||
path = serializers.CharField(label=_('Remote App path'))
|
||||
|
||||
|
||||
class ChromeAttrsSerializer(RemoteAppAttrsSerializer):
|
||||
REMOTE_APP_PATH = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
|
||||
path = serializers.CharField(label=_('Remote App path'), default=REMOTE_APP_PATH)
|
||||
chrome_target = serializers.CharField(label=_('Target URL'))
|
||||
chrome_username = serializers.CharField(label=_('Username'))
|
||||
chrome_password = serializers.CharField(write_only=True, label=_('Password'))
|
||||
|
||||
|
||||
class MySQLWorkbenchAttrsSerializer(RemoteAppAttrsSerializer):
|
||||
REMOTE_APP_PATH = 'C:\Program Files\MySQL\MySQL Workbench 8.0 CE\MySQLWorkbench.exe'
|
||||
path = serializers.CharField(label=_('Remote App path'), default=REMOTE_APP_PATH)
|
||||
mysql_workbench_ip = serializers.CharField(label=_('IP'))
|
||||
mysql_workbench_port = serializers.IntegerField(label=_('Port'))
|
||||
mysql_workbench_name = serializers.CharField(label=_('Database'))
|
||||
mysql_workbench_username = serializers.CharField(label=_('Username'))
|
||||
mysql_workbench_password = serializers.CharField(write_only=True, label=_('Password'))
|
||||
|
||||
|
||||
class VMwareClientAttrsSerializer(RemoteAppAttrsSerializer):
|
||||
REMOTE_APP_PATH = 'C:\Program Files (x86)\VMware\Infrastructure\Virtual Infrastructure Client\Launcher\VpxClient.exe'
|
||||
path = serializers.CharField(label=_('Remote App path'), default=REMOTE_APP_PATH)
|
||||
vmware_target = serializers.CharField(label=_('Target URL'))
|
||||
vmware_username = serializers.CharField(label=_('Username'))
|
||||
vmware_password = serializers.CharField(write_only=True, label=_('Password'))
|
||||
|
||||
|
||||
class CustomRemoteAppAttrsSeralizers(RemoteAppAttrsSerializer):
|
||||
custom_cmdline = serializers.CharField(label=_('Operating parameter'))
|
||||
custom_target = serializers.CharField(label=_('Target url'))
|
||||
custom_username = serializers.CharField(label=_('Username'))
|
||||
custom_password = serializers.CharField(write_only=True, label=_('Password'))
|
||||
|
||||
|
||||
class RemoteAppParamsDictField(CustomMetaDictField):
|
||||
|
Reference in New Issue
Block a user