From 1e07cba54500d65a59a6660ae94f05b0609d6d7f Mon Sep 17 00:00:00 2001 From: ibuler Date: Mon, 9 Jun 2025 11:50:22 +0800 Subject: [PATCH] perf: open svc account register on deploy --- apps/common/permissions.py | 3 +++ apps/terminal/models/applet/host.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/common/permissions.py b/apps/common/permissions.py index d63b7780a..72948d4b1 100644 --- a/apps/common/permissions.py +++ b/apps/common/permissions.py @@ -3,6 +3,7 @@ import time from django.conf import settings +from django.core.cache import cache from rest_framework import permissions @@ -30,6 +31,8 @@ class WithBootstrapToken(permissions.BasePermission): def check_can_register(self): enabled = settings.SECURITY_SERVICE_ACCOUNT_REGISTRATION if enabled == 'auto': + if cache.get(f'APPLET_HOST_DELOYING'): + return True return time.time() - settings.JUMPSERVER_UPTIME < 300 elif enabled: return True diff --git a/apps/terminal/models/applet/host.py b/apps/terminal/models/applet/host.py index 0259e7640..4be59f2d4 100644 --- a/apps/terminal/models/applet/host.py +++ b/apps/terminal/models/applet/host.py @@ -1,5 +1,5 @@ from collections import defaultdict - +from django.core.cache import cache from django.db import models from django.utils import timezone from django.utils.translation import gettext_lazy as _ @@ -155,6 +155,8 @@ class AppletHostDeployment(JMSBaseModel): self.host.terminal = None self.host.save() terminal.delete() + + cache.set(f'APPLET_HOST_DELOYING', str(self.id), timeout=300) from ...automations.deploy_applet_host import DeployAppletHostManager manager = DeployAppletHostManager(self, **kwargs) manager.run()