def get_dsn()

in services/utils/__init__.py [0:0]


    def get_dsn(self, type=None):
        if self._dsn is None:
            ssl_mode = self._ssl_mode
            sslcert = self._ssl_cert_path
            sslkey = self._ssl_key_path
            sslrootcert = self._ssl_root_cert_path
            if (ssl_mode not in ['allow', 'prefer', 'require', 'verify-ca', 'verify-full']):
                ssl_mode = None
                sslcert = None
                sslkey = None
                sslrootcert = None
            kwargs = {
                'dbname': self._database_name,
                'user': self._user,
                'host': self._host,
                'port': self._port,
                'password': self._password,
                'sslmode': ssl_mode,
                'sslcert': sslcert,
                'sslkey': sslkey,
                'sslrootcert': sslrootcert
            }

            if type == DBType.READER:
                # We assume that everything except the hostname remains the same for a reader.
                # At the moment this is a fair assumption for Postgres read replicas.
                kwargs.update({"host": self._read_replica_host})

            return psycopg2.extensions.make_dsn(**{k: v for k, v in kwargs.items() if v is not None})
        else:
            return self._dsn