From 5b498650cb461ad744143fbd5a6965551ce71aa4 Mon Sep 17 00:00:00 2001
From: ibuler <ibuler@qq.com>
Date: Thu, 24 Aug 2023 18:02:56 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=B0=E6=B7=BB?=
 =?UTF-8?q?=E5=8A=A0=E5=8F=91=E5=B8=83=E6=9C=BA=E4=B8=8D=E8=A2=AB=E8=B0=83?=
 =?UTF-8?q?=E5=BA=A6=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 apps/terminal/models/applet/applet.py   | 5 +++++
 apps/terminal/signal_handlers/applet.py | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/apps/terminal/models/applet/applet.py b/apps/terminal/models/applet/applet.py
index ccd1a8e52..cfc496397 100644
--- a/apps/terminal/models/applet/applet.py
+++ b/apps/terminal/models/applet/applet.py
@@ -148,6 +148,11 @@ class Applet(JMSBaseModel):
         shutil.copytree(path, pkg_path)
         return instance, serializer
 
+    @classmethod
+    def clear_host_prefer(cls):
+        prefer_key = 'applet_host_prefer_{}'.format("*")
+        cache.delete_pattern(prefer_key)
+
     def select_host(self, user, asset):
         hosts = self.hosts.filter(is_active=True)
         hosts = [host for host in hosts if host.load != 'offline']
diff --git a/apps/terminal/signal_handlers/applet.py b/apps/terminal/signal_handlers/applet.py
index 3b1239901..db02f4b0c 100644
--- a/apps/terminal/signal_handlers/applet.py
+++ b/apps/terminal/signal_handlers/applet.py
@@ -20,6 +20,8 @@ logger = get_logger(__file__)
 def on_applet_host_create(sender, instance, created=False, **kwargs):
     if not created:
         return
+    Applet.clear_host_prefer()
+
     applets = Applet.objects.all()
     instance.applets.set(applets)