Commit d660243d authored by MacFarland's avatar MacFarland
Browse files

fixing connection info

parent b08d0961
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -178,3 +178,27 @@ class Database(ABC):
        :param value: the value for the connection variable
        """
        self.connection_info[variable] = value

    @staticmethod
    def create_connection_info(
            db_name=None,
            db_user=None,
            db_password=None,
            db_host=None,
            db_port=None,
            db_schema=None,
            db_engine=None,
            db_timeout=None
    ):
        connection_info = {
            "dbName": db_name if db_name is not None else Database.DEFAULT_DB,
            "dbUser": db_user if db_user is not None else Database.DEFAULT_USER,
            "dbPassword": db_password if db_password is not None else Database.DEFAULT_PW,
            "dbHost": db_host if db_host is not None else Database.DEFAULT_HOST,
            "dbPort": db_port if db_port is not None else Database.DEFAULT_PORT,
            "dbTimeout": db_timeout if db_timeout is not None else Database.DEFAULT_TIMEOUT,
            "dbSchema": db_schema if db_schema is not None else Database.DEFAULT_SCHEMA,
            "dbEngine": db_engine if db_engine is not None else Database.DEFAULT_ENGINE,
            "uri": f"{db_engine if db_engine is not None else Database.DEFAULT_ENGINE}://{db_user if db_user is not None else Database.DEFAULT_USER}:{db_password if db_password is not None else Database.DEFAULT_PW}@{db_host if db_host is not None else Database.DEFAULT_HOST}/{db_name if db_name is not None else Database.DEFAULT_DB}",
        }
        return connection_info
+11 −5
Original line number Diff line number Diff line
@@ -16,14 +16,20 @@ class InfluxMixin:

    def open(self):
        """Create the InfluxDB client instance."""
        db_name = self.connection_info.get("dbName", InfluxMixin.DEFAULT_DB)
        db_user = self.connection_info.get("dbUser", InfluxMixin.DEFAULT_USER)
        db_password = self.connection_info.get("dbPassword", InfluxMixin.DEFAULT_PASSWORD)
        db_host = self.connection_info.get("dbHost", InfluxMixin.DEFAULT_HOST)
        db_port = self.connection_info.get("dbPort", InfluxMixin.DEFAULT_PORT)

        self.logger.debug("Creating InfluxDB Client Instance")
        try:
            self.client = InfluxDBClient(
                host=self.DEFAULT_HOST,
                port=self.DEFAULT_PORT,
                username=self.DEFAULT_USER,
                password=self.DEFAULT_PASSWORD,
                database=self.DEFAULT_DB,
                host=db_host,
                port=db_port,
                username=db_user,
                password=db_password,
                database=db_name,
            )
            self.logger.debug("Successfully created InfluxDB client instance")
        except Exception as error:
+11 −13
Original line number Diff line number Diff line
@@ -39,26 +39,24 @@ class MSSQLMixin:
        :return: True if connection established, else false"""
        self.logger.debug("Opening Database Object")

        self.modify_connection_info("dbName", MSSQLMixin.DEFAULT_DB)
        self.modify_connection_info("dbUser", MSSQLMixin.DEFAULT_USER)
        self.modify_connection_info("dbPassword", MSSQLMixin.DEFAULT_PW)
        self.modify_connection_info("dbHost", MSSQLMixin.DEFAULT_HOST)
        self.modify_connection_info("dbPort", MSSQLMixin.DEFAULT_PORT)
        # self.modify_connection_info('dbTimeout', MSSQLMixin.DEFAULT_TIMEOUT)
        db_name = self.connection_info.get("dbName", MSSQLMixin.DEFAULT_DB)
        db_user = self.connection_info.get("dbUser", MSSQLMixin.DEFAULT_USER)
        db_password = self.connection_info.get("dbPassword", MSSQLMixin.DEFAULT_PW)
        db_host = self.connection_info.get("dbHost", MSSQLMixin.DEFAULT_HOST)

        try:
            msg = (
                "\nConnecting information\n"
                + f"Database: {self.connection_info['dbName']}\n"
                + f"Host: {self.connection_info['dbHost']}\n"
                + f"User: {self.connection_info['dbUser']}\n"
                + f"Database: {db_name}\n"
                + f"Host: {db_host}\n"
                + f"User: {db_user}\n"
            )
            self.logger.debug(msg)
            self.connection = pymssql.connect(
                database=self.connection_info["dbName"],
                user=self.connection_info["dbUser"],
                password=self.connection_info["dbPassword"],
                host=self.connection_info["dbHost"],
                database=db_name,
                user=db_user,
                password=db_password,
                host=db_user,
            )
            self.logger.debug("Successfully opened database connection")
            self.cursor = self.connection.cursor()
+8 −1
Original line number Diff line number Diff line
@@ -25,7 +25,14 @@ class MultiDatabase:

                mixin = self._get_mixin_for_type(db_type=db_type)
                if mixin:
                    db_instance = type(db_type.capitalize() + "DB", (mixin, Database), {})()
                    conn_info = Database.create_connection_info(
                        db_name=config.get('DATABASE_DB', None),
                        db_user=config.get('DATABASE_USER', None),
                        db_password=config.get('DATABASE_PW', None),
                        db_host=config.get('DATABASE_HOST', None),
                        db_port=config.get('DATABASE_PORT', None),
                    )
                    db_instance = type(db_type.capitalize() + "DB", (mixin, Database), {})(connection_info=conn_info)
                    self.databases[db_id] = db_instance
                else:
                    self.logger.warning(f"Skipping unknown Database type: {db_type}")
+13 −12
Original line number Diff line number Diff line
@@ -55,22 +55,23 @@ class PostgresMixin:
        :param search_path: the search path to default to
        :return: True if connection established, else false
        """
        self.modify_connection_info("dbName", PostgresMixin.DEFAULT_DB)
        self.modify_connection_info("dbUser", PostgresMixin.DEFAULT_USER)
        self.modify_connection_info("dbPassword", PostgresMixin.DEFAULT_PW)
        self.modify_connection_info("dbHost", PostgresMixin.DEFAULT_HOST)
        self.modify_connection_info("dbPort", PostgresMixin.DEFAULT_PORT)
        self.modify_connection_info("dbTimeout", PostgresMixin.DEFAULT_TIMEOUT)
        # Use existing connection info if provided, otherwise default to class attributes
        db_name = self.connection_info.get("dbName", PostgresMixin.DEFAULT_DB)
        db_user = self.connection_info.get("dbUser", PostgresMixin.DEFAULT_USER)
        db_password = self.connection_info.get("dbPassword", PostgresMixin.DEFAULT_PW)
        db_host = self.connection_info.get("dbHost", PostgresMixin.DEFAULT_HOST)
        db_port = self.connection_info.get("dbPort", PostgresMixin.DEFAULT_PORT)
        db_timeout = self.connection_info.get("dbTimeout", PostgresMixin.DEFAULT_TIMEOUT)

        self.logger.debug("Opening Database Connection and creating Cursor")
        try:
            self.connection = psycopg2.connect(
                database=self.connection_info["dbName"],
                user=self.connection_info["dbUser"],
                password=self.connection_info["dbPassword"],
                host=self.connection_info["dbHost"],
                port=self.connection_info["dbPort"],
                connect_timeout=self.connection_info["dbTimeout"],
                database=db_name,
                user=db_user,
                password=db_password,
                host=db_host,
                port=db_port,
                connect_timeout=db_timeout,
            )
            self.connection.set_client_encoding("UTF8")
            self.logger.debug("Successfully opened connection to database")
Loading