mirror of https://github.com/jumpserver/jumpserver
perf: applet host tips
parent
7973239424
commit
cf1dc79c68
|
@ -9,9 +9,9 @@ from rest_framework.decorators import action
|
|||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
from common.api.mixin import CommonApiMixin
|
||||
from common.const.http import GET
|
||||
from common.drf.filters import BaseFilterSet
|
||||
from common.api.mixin import CommonApiMixin
|
||||
from terminal import const
|
||||
from terminal.filters import CommandStorageFilter, CommandFilter, CommandFilterForStorageTree
|
||||
from terminal.models import CommandStorage, ReplayStorage
|
||||
|
@ -30,8 +30,10 @@ class BaseStorageViewSetMixin(CommonApiMixin):
|
|||
if instance.type_null_or_server or instance.is_default:
|
||||
data = {'msg': _('Deleting the default storage is not allowed')}
|
||||
return Response(data=data, status=status.HTTP_400_BAD_REQUEST)
|
||||
if instance.is_use():
|
||||
data = {'msg': _('Cannot delete storage that is being used')}
|
||||
used_by = instance.used_by()
|
||||
if used_by:
|
||||
names = ', '.join(list(used_by.values_list('name', flat=True)))
|
||||
data = {'msg': _('Cannot delete storage that is being used: {}').format(names)}
|
||||
return Response(data=data, status=status.HTTP_400_BAD_REQUEST)
|
||||
return super().destroy(request, *args, **kwargs)
|
||||
|
||||
|
|
|
@ -105,10 +105,10 @@ class CommandStorage(CommonStorageModelMixin, JMSBaseModel):
|
|||
store = engine_mod.CommandStore(self.config)
|
||||
return store.ping(timeout=3)
|
||||
|
||||
def is_use(self):
|
||||
def used_by(self):
|
||||
return Terminal.objects.filter(
|
||||
command_storage=self.name, is_deleted=False
|
||||
).exists()
|
||||
)
|
||||
|
||||
def get_command_queryset(self):
|
||||
if self.type_null:
|
||||
|
|
|
@ -158,7 +158,6 @@ class Terminal(StorageMixin, TerminalStatusMixin, JMSBaseModel):
|
|||
self.user = None
|
||||
self.is_deleted = True
|
||||
self.save()
|
||||
return
|
||||
|
||||
def __str__(self):
|
||||
status = "Active"
|
||||
|
|
|
@ -18,11 +18,13 @@ __all__ = [
|
|||
'AppletHostStartupSerializer', 'AppletSetupSerializer'
|
||||
]
|
||||
|
||||
RDS_LICENSE_DOC_URL = 'https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/rds-client-access-license'
|
||||
|
||||
|
||||
class DeployOptionsSerializer(serializers.Serializer):
|
||||
LICENSE_MODE_CHOICES = (
|
||||
(4, _('Per Session')),
|
||||
(2, _('Per Device')),
|
||||
(2, _('Per Device (Device number limit)')),
|
||||
(4, _('Per User (User number limit)')),
|
||||
)
|
||||
|
||||
# 单用户单会话,
|
||||
|
@ -44,11 +46,20 @@ class DeployOptionsSerializer(serializers.Serializer):
|
|||
""")
|
||||
)
|
||||
IGNORE_VERIFY_CERTS = serializers.BooleanField(default=True, label=_("Ignore Certificate Verification"))
|
||||
RDS_Licensing = serializers.BooleanField(default=False, label=_("Existing RDS license"))
|
||||
RDS_Licensing = serializers.BooleanField(
|
||||
default=False, label=_("Existing RDS license"),
|
||||
help_text=_('If not exist, the RDS will be in trial mode, and the trial period is 120 days. '
|
||||
'<a href={}>Detail</a>').format(RDS_LICENSE_DOC_URL)
|
||||
)
|
||||
RDS_LicenseServer = serializers.CharField(default='127.0.0.1', label=_('RDS License Server'), max_length=1024)
|
||||
RDS_LicensingMode = serializers.ChoiceField(choices=LICENSE_MODE_CHOICES, default=2, label=_('RDS Licensing Mode'))
|
||||
RDS_fSingleSessionPerUser = serializers.ChoiceField(choices=SESSION_PER_USER, default=1,
|
||||
label=_("RDS Single Session Per User"))
|
||||
RDS_LicensingMode = serializers.ChoiceField(
|
||||
choices=LICENSE_MODE_CHOICES, default=2, label=_('RDS Licensing Mode'),
|
||||
)
|
||||
RDS_fSingleSessionPerUser = serializers.ChoiceField(
|
||||
choices=SESSION_PER_USER, default=1, label=_("RDS Single Session Per User"),
|
||||
help_text=_('Tips: A RDS user can have only one session at a time. If set, when next login connected, '
|
||||
'previous session will be disconnected.')
|
||||
)
|
||||
RDS_MaxDisconnectionTime = serializers.IntegerField(
|
||||
default=60000, label=_("RDS Max Disconnection Time (ms)"),
|
||||
help_text=_(
|
||||
|
|
Loading…
Reference in New Issue