Support mongodb authentication

This commit is contained in:
allegroai 2021-05-03 17:57:53 +03:00
parent 8ea8ad34e6
commit 3a3b57c15f

View File

@ -37,6 +37,10 @@ class DatabaseEntry(models.Base):
class DatabaseFactory: class DatabaseFactory:
_entries = [] _entries = []
@classmethod
def _create_db_entry(cls, alias: str, settings: dict) -> DatabaseEntry:
return DatabaseEntry(alias=alias, **settings)
@classmethod @classmethod
def initialize(cls): def initialize(cls):
db_entries = config.get("hosts.mongo", {}) db_entries = config.get("hosts.mongo", {})
@ -56,7 +60,7 @@ class DatabaseFactory:
missing.append(key) missing.append(key)
continue continue
entry = DatabaseEntry(alias=alias, **db_entries.get(key)) entry = cls._create_db_entry(alias=alias, settings=db_entries.get(key))
if override_hostname: if override_hostname:
entry.host = furl(entry.host).set(host=override_hostname).url entry.host = furl(entry.host).set(host=override_hostname).url
@ -69,7 +73,7 @@ class DatabaseFactory:
log.info( log.info(
"Registering connection to %(alias)s (%(host)s)" % entry.to_struct() "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) cls._entries.append(entry)
except ValidationError as ex: except ValidationError as ex:
@ -98,7 +102,7 @@ class DatabaseFactory:
# reconnection from work so workaround this # reconnection from work so workaround this
# get_connection(entry.alias, reconnect=True) # get_connection(entry.alias, reconnect=True)
disconnect(entry.alias) disconnect(entry.alias)
register_connection(alias=entry.alias, host=entry.host) register_connection(**entry.to_struct())
get_connection(entry.alias) get_connection(entry.alias)