From f4b0ba43a2eae8c308ed6ad6d5cd52c49c812be4 Mon Sep 17 00:00:00 2001 From: feng <1304903146@qq.com> Date: Wed, 21 Dec 2022 20:19:13 +0800 Subject: [PATCH 1/4] perf: filter application --- apps/rbac/const.py | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/rbac/const.py b/apps/rbac/const.py index 541b0b3da..dc9d2592b 100644 --- a/apps/rbac/const.py +++ b/apps/rbac/const.py @@ -94,6 +94,7 @@ exclude_permissions = ( ('terminal', 'sessionsharing', 'view,add,change,delete', 'sessionsharing'), ('terminal', 'session', 'delete,share', 'session'), ('terminal', 'session', 'delete,change', 'command'), + ('applications', '*', '*', '*'), ) From 5d865ffd5433ad1e93de50eeeffe87702471b9e8 Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 21 Dec 2022 18:38:29 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9db=5Fport=5Fmapper?= =?UTF-8?q?=E7=AD=96=E7=95=A5;=20=E5=90=AF=E5=8A=A8=E6=97=B6=E8=BF=9B?= =?UTF-8?q?=E8=A1=8Ccheck=E6=A0=A1=E9=AA=8C;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/signal_handlers.py | 2 +- apps/terminal/utils/db_port_mapper.py | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/terminal/signal_handlers.py b/apps/terminal/signal_handlers.py index d98e21eee..ec7eed45f 100644 --- a/apps/terminal/signal_handlers.py +++ b/apps/terminal/signal_handlers.py @@ -45,7 +45,7 @@ def on_applet_create(sender, instance, created=False, **kwargs): def init_db_port_mapper(sender, **kwargs): logger.info('Init db port mapper') try: - db_port_manager.init() + db_port_manager.check() except (ProgrammingError,) as e: pass diff --git a/apps/terminal/utils/db_port_mapper.py b/apps/terminal/utils/db_port_mapper.py index d343dd3cb..4ca8cebec 100644 --- a/apps/terminal/utils/db_port_mapper.py +++ b/apps/terminal/utils/db_port_mapper.py @@ -34,9 +34,22 @@ class DBPortManager(object): def magnus_listen_port_range(self): return settings.MAGNUS_PORTS - def init(self): + @staticmethod + def fetch_dbs(): with tmp_to_root_org(): - db_ids = Asset.objects.filter(platform__category=Category.DATABASE).values_list('id', flat=True) + dbs = Asset.objects.filter(platform__category=Category.DATABASE).order_by('id') + return dbs + + def check(self): + dbs = self.fetch_dbs() + for db in dbs: + port = self.get_port_by_db(db, raise_exception=False) + if not port: + self.add(db) + + def init(self): + dbs = self.fetch_dbs() + db_ids = dbs.values_list('id', flat=True) db_ids = [str(i) for i in db_ids] mapper = dict(zip(self.all_available_ports, list(db_ids))) self.set_mapper(mapper) From 00c955e8c0eb2708b6806c8a475ba59e20a46dd3 Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 21 Dec 2022 21:07:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=90=8D=20check=5Fdb=5Fport=5Fmapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/terminal/signal_handlers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/terminal/signal_handlers.py b/apps/terminal/signal_handlers.py index ec7eed45f..046c1b122 100644 --- a/apps/terminal/signal_handlers.py +++ b/apps/terminal/signal_handlers.py @@ -42,7 +42,7 @@ def on_applet_create(sender, instance, created=False, **kwargs): @receiver(django_ready) -def init_db_port_mapper(sender, **kwargs): +def check_db_port_mapper(sender, **kwargs): logger.info('Init db port mapper') try: db_port_manager.check() From c39e2e9a8aebb11900336ea782380a9df45d2954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=B0=8F=E7=99=BD?= <296015668@qq.com> Date: Thu, 22 Dec 2022 12:47:46 +0800 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=20procps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 1 + Dockerfile.loong64 | 1 + 2 files changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 37f573be9..cf8f73a29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ ARG TOOLS=" \ default-mysql-client \ locales \ openssh-client \ + procps \ sshpass \ telnet \ unzip \ diff --git a/Dockerfile.loong64 b/Dockerfile.loong64 index 5e942d5a3..f1abd0fe6 100644 --- a/Dockerfile.loong64 +++ b/Dockerfile.loong64 @@ -36,6 +36,7 @@ ARG TOOLS=" \ default-mysql-client \ locales \ openssh-client \ + procps \ sshpass \ telnet \ unzip \