From 3a3b57c15f646e126c60019e7d4107be874db139 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Mon, 3 May 2021 17:57:53 +0300 Subject: [PATCH] Support mongodb authentication --- apiserver/database/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apiserver/database/__init__.py b/apiserver/database/__init__.py index 8c5b4ea..d35710e 100644 --- a/apiserver/database/__init__.py +++ b/apiserver/database/__init__.py @@ -37,6 +37,10 @@ class DatabaseEntry(models.Base): class DatabaseFactory: _entries = [] + @classmethod + def _create_db_entry(cls, alias: str, settings: dict) -> DatabaseEntry: + return DatabaseEntry(alias=alias, **settings) + @classmethod def initialize(cls): db_entries = config.get("hosts.mongo", {}) @@ -56,7 +60,7 @@ class DatabaseFactory: missing.append(key) continue - entry = DatabaseEntry(alias=alias, **db_entries.get(key)) + entry = cls._create_db_entry(alias=alias, settings=db_entries.get(key)) if override_hostname: entry.host = furl(entry.host).set(host=override_hostname).url @@ -69,7 +73,7 @@ class DatabaseFactory: log.info( "Registering connection to %(alias)s (%(host)s)" % entry.to_struct() ) - register_connection(alias=alias, host=entry.host) + register_connection(**entry.to_struct()) cls._entries.append(entry) except ValidationError as ex: @@ -98,7 +102,7 @@ class DatabaseFactory: # reconnection from work so workaround this # get_connection(entry.alias, reconnect=True) disconnect(entry.alias) - register_connection(alias=entry.alias, host=entry.host) + register_connection(**entry.to_struct()) get_connection(entry.alias)