From c8d99dcbafccd112385d34467bf0a52e54fbbfef Mon Sep 17 00:00:00 2001
From: Waleed Akbar <wakbar@cttc.es>
Date: Mon, 30 Sep 2024 17:14:07 +0000
Subject: [PATCH] DB_NAME is moved to Generic_Engine class.

---
 src/analytics/database/Analyzer_DB.py         | 2 +-
 src/analytics/frontend/service/__main__.py    | 5 +----
 src/analytics/frontend/tests/test_frontend.py | 2 +-
 src/common/tools/database/GenericDatabase.py  | 5 ++---
 src/common/tools/database/GenericEngine.py    | 4 ++--
 src/kpi_manager/service/__main__.py           | 5 +----
 src/telemetry/frontend/service/__main__.py    | 5 +----
 7 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/src/analytics/database/Analyzer_DB.py b/src/analytics/database/Analyzer_DB.py
index 99e9c62f6..ab0b50f2e 100644
--- a/src/analytics/database/Analyzer_DB.py
+++ b/src/analytics/database/Analyzer_DB.py
@@ -53,4 +53,4 @@ class AnalyzerDB(Database):
             LOGGER.error(f"Error creating filter of {model.__name__} table. ERROR: {e}")
             raise OperationFailedException ("CreateKpiDescriptorFilter", extra_details=["unable to create the filter {:}".format(e)]) 
         
-        return super().select_with_filter(query, session, model)
\ No newline at end of file
+        return super().select_with_filter(query, session, model)
diff --git a/src/analytics/frontend/service/__main__.py b/src/analytics/frontend/service/__main__.py
index cc324e2dc..1df996785 100644
--- a/src/analytics/frontend/service/__main__.py
+++ b/src/analytics/frontend/service/__main__.py
@@ -18,10 +18,7 @@ from common.Settings import get_log_level, get_metrics_port
 from .AnalyticsFrontendService import AnalyticsFrontendService
 from analytics.database.AnalyzerModel import Analyzer as Model
 from common.tools.database.GenericDatabase import Database
-from common.Settings import get_setting
 
-
-DB_NAME   = get_setting('CRDB_DATABASE', default=None)
 terminate = threading.Event()
 LOGGER    = None
 
@@ -42,7 +39,7 @@ def main():
     LOGGER.info('Starting...')
 
     # To create DB 
-    kpiDBobj = Database(DB_NAME, Model)
+    kpiDBobj = Database(Model)
     kpiDBobj.create_database()
     kpiDBobj.create_tables()
 
diff --git a/src/analytics/frontend/tests/test_frontend.py b/src/analytics/frontend/tests/test_frontend.py
index f7a25f4c7..44e84e468 100644
--- a/src/analytics/frontend/tests/test_frontend.py
+++ b/src/analytics/frontend/tests/test_frontend.py
@@ -123,4 +123,4 @@ def test_SelectAnalytics(analyticsFrontend_client):
 #         class_obj = AnalyticsFrontendServiceServicerImpl()
 #         for response in class_obj.StartResponseListener(analyzer_id.analyzer_id.uuid):
 #             LOGGER.debug(response)
-#             assert isinstance(response, tuple)
\ No newline at end of file
+#             assert isinstance(response, tuple)
diff --git a/src/common/tools/database/GenericDatabase.py b/src/common/tools/database/GenericDatabase.py
index 9868401ec..bc73581e3 100644
--- a/src/common/tools/database/GenericDatabase.py
+++ b/src/common/tools/database/GenericDatabase.py
@@ -23,11 +23,10 @@ from common.Settings import get_setting
 from common.method_wrappers.ServiceExceptions import (OperationFailedException, AlreadyExistsException)
 
 LOGGER = logging.getLogger(__name__)
-DB_NAME = get_setting('CRDB_DATABASE', default=None)
 
 class Database:
     def __init__(self, model):
-        self.db_engine = Engine.get_engine(DB_NAME)
+        self.db_engine = Engine.get_engine()
         if self.db_engine is None:
             LOGGER.error('Unable to get SQLAlchemy DB Engine...')
             raise Exception('Failed to initialize the database engine.')
@@ -48,7 +47,7 @@ class Database:
     def create_tables(self):
         try:
             self.db_model.metadata.create_all(self.db_engine)
-            LOGGER.debug("Tables created in the database: {:}".format(self.db_name))
+            LOGGER.debug("Tables created in the database: {:}".format(self.db_table))
         except Exception as e:
             LOGGER.debug("Tables cannot be created in the database. {:s}".format(str(e)))
             raise OperationFailedException ("Tables can't be created", extra_details=["unable to create table {:}".format(e)])
diff --git a/src/common/tools/database/GenericEngine.py b/src/common/tools/database/GenericEngine.py
index ff3def466..8c458285d 100644
--- a/src/common/tools/database/GenericEngine.py
+++ b/src/common/tools/database/GenericEngine.py
@@ -20,12 +20,12 @@ CRDB_URI_TEMPLATE = 'cockroachdb://{:s}:{:s}@cockroachdb-public.{:s}.svc.cluster
 
 class Engine:
     @staticmethod
-    def get_engine(db_name) -> sqlalchemy.engine.Engine:
+    def get_engine() -> sqlalchemy.engine.Engine:
         crdb_uri = get_setting('CRDB_URI', default=None)
         if crdb_uri is None:
             CRDB_NAMESPACE = get_setting('CRDB_NAMESPACE')
             CRDB_SQL_PORT  = get_setting('CRDB_SQL_PORT')
-            CRDB_DATABASE  = db_name
+            CRDB_DATABASE  = get_setting('CRDB_DATABASE', default=None)
             CRDB_USERNAME  = get_setting('CRDB_USERNAME')
             CRDB_PASSWORD  = get_setting('CRDB_PASSWORD')
             CRDB_SSLMODE   = get_setting('CRDB_SSLMODE')
diff --git a/src/kpi_manager/service/__main__.py b/src/kpi_manager/service/__main__.py
index 6a3d078e2..05e32bb58 100644
--- a/src/kpi_manager/service/__main__.py
+++ b/src/kpi_manager/service/__main__.py
@@ -18,10 +18,7 @@ from .KpiManagerService import KpiManagerService
 
 from kpi_manager.database.KpiModel import Kpi as Model
 from common.tools.database.GenericDatabase import Database
-from common.Settings import get_setting
 
-
-DB_NAME   = get_setting('CRDB_DATABASE', default=None)
 terminate = threading.Event()
 LOGGER    = None
 
@@ -42,7 +39,7 @@ def main():
     LOGGER.debug('Starting...')
 
     # To create DB 
-    kpiDBobj = Database(DB_NAME, Model)
+    kpiDBobj = Database(Model)
     kpiDBobj.create_database()
     kpiDBobj.create_tables()
     
diff --git a/src/telemetry/frontend/service/__main__.py b/src/telemetry/frontend/service/__main__.py
index c18f7ba4c..6697ff5f1 100644
--- a/src/telemetry/frontend/service/__main__.py
+++ b/src/telemetry/frontend/service/__main__.py
@@ -18,10 +18,7 @@ from common.Settings import get_log_level, get_metrics_port
 from .TelemetryFrontendService import TelemetryFrontendService
 from telemetry.database.TelemetryModel import Collector as Model
 from common.tools.database.GenericDatabase import Database
-from common.Settings import get_setting
 
-
-DB_NAME   = get_setting('CRDB_DATABASE', default=None)
 terminate = threading.Event()
 LOGGER = None
 
@@ -42,7 +39,7 @@ def main():
     LOGGER.info('Starting...')
 
     # To create DB 
-    kpiDBobj = Database(DB_NAME, Model)
+    kpiDBobj = Database(Model)
     kpiDBobj.create_database()
     kpiDBobj.create_tables()
     
-- 
GitLab