From a19c0bde60e1be3f9569e20568de862b404eb755 Mon Sep 17 00:00:00 2001 From: Bai Date: Wed, 21 Dec 2022 18:43:44 +0800 Subject: [PATCH] =?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 537d90bce..c0b65c094 100644 --- a/apps/terminal/signal_handlers.py +++ b/apps/terminal/signal_handlers.py @@ -19,7 +19,7 @@ logger = get_logger(__file__) 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 973e25c2a..7ad669aae 100644 --- a/apps/terminal/utils/db_port_mapper.py +++ b/apps/terminal/utils/db_port_mapper.py @@ -35,9 +35,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 = Application.objects.filter(category=AppCategory.db).values_list('id', flat=True) + dbs = Application.objects.filter(category=AppCategory.db) + 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)