Commit 4ad2af23 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

chanegs to sucessfully executes the DB test.

- updated test file to log DEBUG cmd
- change the class name of "TelemetryDBmanager" to "TelemeterDB"
- corrected the DB name
- move messages.py and test files to correcte location.
parent f8eea9ea
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -22,5 +22,5 @@ cd $PROJECTDIR/src
#     kpi_manager/tests/test_unitary.py

RCFILE=$PROJECTDIR/coverage/.coveragerc
python3 -m pytest --log-cli-level=INFO --verbose \
    telemetry/database/tests/telemetryDBtests.py
python3 -m pytest --log-level=DEBUG --log-cli-level=debug --verbose \
    telemetry/tests/test_telemetryDB.py
+2 −2
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ class TelemetryEngine:
        if crdb_uri is None:        
            CRDB_NAMESPACE = "crdb"
            CRDB_SQL_PORT  = "26257"
            CRDB_DATABASE  = "telemetryfrontend"
            CRDB_DATABASE  = "tfs-telemetry"
            CRDB_USERNAME  = "tfs"
            CRDB_PASSWORD  = "tfs123"
            CRDB_SSLMODE   = "require"
@@ -35,7 +35,7 @@ class TelemetryEngine:
                    CRDB_USERNAME, CRDB_PASSWORD, CRDB_SQL_PORT, CRDB_DATABASE, CRDB_SSLMODE)
        try:
            engine = sqlalchemy.create_engine(crdb_uri, echo=False)
            LOGGER.info(' TelemetryDBmanager initalized with DB URL: {:}'.format(crdb_uri))
            LOGGER.info(' TelemetryDB initalized with DB URL: {:}'.format(crdb_uri))
        except: # pylint: disable=bare-except # pragma: no cover
            LOGGER.exception('Failed to connect to database: {:s}'.format(str(crdb_uri)))
            return None # type: ignore
+5 −5
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@

import logging
import sqlalchemy_utils
from sqlalchemy import inspect
from sqlalchemy.orm import sessionmaker
from telemetry.database.TelemetryModel import Collector as CollectorModel
from telemetry.database.TelemetryEngine import TelemetryEngine
@@ -23,7 +24,7 @@ from common.method_wrappers.ServiceExceptions import (
LOGGER = logging.getLogger(__name__)
DB_NAME = "tfs_telemetry"

class TelemetryDBmanager:
class TelemetryDB:
    def __init__(self):
        self.db_engine = TelemetryEngine.get_engine()
        if self.db_engine is None:
@@ -51,10 +52,9 @@ class TelemetryDBmanager:

    def verify_tables(self):
        try:
            with self.db_engine.connect() as connection:
                result = connection.execute("SHOW TABLES;")
                tables = result.fetchall()
                LOGGER.info("Tables in DB: {:}".format(tables))
            inspect_object = inspect(self.db_engine)
            if(inspect_object.has_table('collector', None)):
                LOGGER.info("Table exists in DB: {:}".format(self.db_name))
        except Exception as e:
            LOGGER.info("Unable to fetch Table names. {:s}".format(str(e)))

+0 −13
Original line number Diff line number Diff line
# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
 No newline at end of file
+0 −86
Original line number Diff line number Diff line

# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import logging
from typing import Any
from sqlalchemy.ext.declarative import declarative_base
from telemetry.database.TelemetryDBmanager import TelemetryDBmanager
from telemetry.database.TelemetryEngine import TelemetryEngine
from telemetry.database.tests import temp_DB
from .messages import create_kpi_request, create_collector_request, \
                        create_kpi_id_request, create_kpi_filter_request, \
                        create_collector_id_request, create_collector_filter_request

logging.basicConfig(level=logging.INFO)
LOGGER = logging.getLogger(__name__)


# def test_temp_DB():
#     temp_DB.main()

def test_telemetry_object_creation():
    LOGGER.info('--- test_telemetry_object_creation: START')

    LOGGER.info('>>> Creating TelemetryDBmanager Object <<< ')
    TelemetryDBmanagerObj = TelemetryDBmanager()
    TelemetryEngine.create_database(TelemetryDBmanagerObj.db_engine)        # creates 'frontend' db, if it doesnot exists.

    LOGGER.info('>>> Creating database <<< ')
    TelemetryDBmanagerObj.create_database()

    LOGGER.info('>>> verifing database <<< ')
    TelemetryDBmanagerObj.list_databases()

    # # LOGGER.info('>>> Droping Tables: ')
    # # TelemetryDBmanagerObj.drop_table("table_naem_here")

    LOGGER.info('>>> Creating Tables <<< ')
    TelemetryDBmanagerObj.create_tables()

    LOGGER.info('>>> Verifing Table creation <<< ')
    TelemetryDBmanagerObj.verify_tables()

    # LOGGER.info('>>> TESTING: Row Insertion Operation: kpi Table <<<')
    # kpi_obj = create_kpi_request()
    # TelemetryDBmanagerObj.inser_kpi(kpi_obj)

    # LOGGER.info('>>> TESTING: Row Insertion Operation: collector Table <<<')
    # collector_obj = create_collector_request()
    # TelemetryDBmanagerObj.insert_collector(collector_obj)

    # LOGGER.info('>>> TESTING: Get KpiDescriptor  <<<')
    # kpi_id_obj = create_kpi_id_request()
    # TelemetryDBmanagerObj.get_kpi_descriptor(kpi_id_obj)

    # LOGGER.info('>>> TESTING: Select Collector  <<<')
    # collector_id_obj = create_collector_id_request()
    # TelemetryDBmanagerObj.get_collector(collector_id_obj)

    # LOGGER.info('>>> TESTING: Applying kpi filter  <<< ')
    # kpi_filter : dict[str, Any] = create_kpi_filter_request()
    # TelemetryDBmanagerObj.select_kpi_descriptor(**kpi_filter)

    # LOGGER.info('>>> TESTING: Applying collector filter   <<<')
    # collector_filter : dict[str, Any] = create_collector_filter_request()
    # TelemetryDBmanagerObj.select_collector(**collector_filter)
    
    # LOGGER.info('>>> TESTING: Delete KpiDescriptor ')
    # kpi_id_obj = create_kpi_id_request()
    # TelemetryDBmanagerObj.delete_kpi_descriptor(kpi_id_obj)

    # LOGGER.info('>>> TESTING: Delete Collector ')
    # collector_id_obj = create_collector_id_request()
    # TelemetryDBmanagerObj.delete_collector(collector_id_obj)
    
 No newline at end of file
Loading