Commit 1879fb18 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

changes for kpi_manager integration with TFS

parent 9fcbc75e
Loading
Loading
Loading
Loading
+49 −53
Original line number Diff line number Diff line
@@ -28,10 +28,10 @@ from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilt
from common.tools.service.GenericGrpcService import GenericGrpcService
from context.client.ContextClient import ContextClient

from device.service.driver_api.DriverFactory import DriverFactory
from device.service.driver_api.DriverInstanceCache import DriverInstanceCache
from device.service.DeviceService import DeviceService
from device.client.DeviceClient import DeviceClient
# from device.service.driver_api.DriverFactory import DriverFactory
# from device.service.driver_api.DriverInstanceCache import DriverInstanceCache
# from device.service.DeviceService import DeviceService
# from device.client.DeviceClient import DeviceClient

from kpi_manager.tests.test_messages import create_kpi_descriptor_request, create_kpi_filter_request, create_kpi_descriptor_request_a
from kpi_manager.service.KpiManagerService import KpiManagerService
@@ -47,13 +47,12 @@ from device.service.drivers import DRIVERS
###########################

LOCAL_HOST = '127.0.0.1'
MOCKSERVICE_PORT = 10000

KPIMANAGER_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_grpc(ServiceNameEnum.KPIMANAGER)  # type: ignore
KPIMANAGER_SERVICE_PORT = get_service_port_grpc(ServiceNameEnum.KPIMANAGER)  # type: ignore
os.environ[get_env_var_name(ServiceNameEnum.KPIMANAGER, ENVVAR_SUFIX_SERVICE_HOST     )] = str(LOCAL_HOST)
os.environ[get_env_var_name(ServiceNameEnum.KPIMANAGER, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(KPIMANAGER_SERVICE_PORT)

# METRICSDB_HOSTNAME = os.environ.get('METRICSDB_HOSTNAME')
# METRICSDB_HOSTNAME = os.environ.get('METRICSDB_HOSTNAME'){}

LOGGER = logging.getLogger(__name__)

@@ -68,50 +67,50 @@ class MockContextService(GenericGrpcService):
        self.context_servicer = MockServicerImpl_Context()
        add_ContextServiceServicer_to_server(self.context_servicer, self.server)

@pytest.fixture(scope='session')
def context_service():
    LOGGER.info('Initializing MockContextService...')
    _service = MockContextService(MOCKSERVICE_PORT)
    _service.start()
# @pytest.fixture(scope='session')
# def context_service():
#     LOGGER.info('Initializing MockContextService...')
#     _service = MockContextService(MOCKSERVICE_PORT)
#     _service.start()
    
    LOGGER.info('Yielding MockContextService...')
    yield _service
#     LOGGER.info('Yielding MockContextService...')
#     yield _service

    LOGGER.info('Terminating MockContextService...')
    _service.context_servicer.msg_broker.terminate()
    _service.stop()
#     LOGGER.info('Terminating MockContextService...')
#     _service.context_servicer.msg_broker.terminate()
#     _service.stop()

    LOGGER.info('Terminated MockContextService...')
#     LOGGER.info('Terminated MockContextService...')

@pytest.fixture(scope='session')
def context_client(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument
    LOGGER.info('Initializing ContextClient...')
    _client = ContextClient()
# @pytest.fixture(scope='session')
# def context_client(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument
#     LOGGER.info('Initializing ContextClient...')
#     _client = ContextClient()
    
    LOGGER.info('Yielding ContextClient...')
    yield _client
#     LOGGER.info('Yielding ContextClient...')
#     yield _client

    LOGGER.info('Closing ContextClient...')
    _client.close()
#     LOGGER.info('Closing ContextClient...')
#     _client.close()

    LOGGER.info('Closed ContextClient...')
#     LOGGER.info('Closed ContextClient...')

@pytest.fixture(scope='session')
def device_service(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument
    LOGGER.info('Initializing DeviceService...')
    driver_factory = DriverFactory(DRIVERS)
    driver_instance_cache = DriverInstanceCache(driver_factory)
    _service = DeviceService(driver_instance_cache)
    _service.start()
# @pytest.fixture(scope='session')
# def device_service(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument
#     LOGGER.info('Initializing DeviceService...')
#     driver_factory = DriverFactory(DRIVERS)
#     driver_instance_cache = DriverInstanceCache(driver_factory)
#     _service = DeviceService(driver_instance_cache)
#     _service.start()

    # yield the server, when test finishes, execution will resume to stop it
    LOGGER.info('Yielding DeviceService...')
    yield _service
#     # yield the server, when test finishes, execution will resume to stop it
#     LOGGER.info('Yielding DeviceService...')
#     yield _service

    LOGGER.info('Terminating DeviceService...')
    _service.stop()
#     LOGGER.info('Terminating DeviceService...')
#     _service.stop()

    LOGGER.info('Terminated DeviceService...')
#     LOGGER.info('Terminated DeviceService...')

# @pytest.fixture(scope='session')
# def device_client(device_service : DeviceService): # pylint: disable=redefined-outer-name,unused-argument
@@ -126,25 +125,22 @@ def device_service(context_service : MockContextService): # pylint: disable=rede

#     LOGGER.info('Closed DeviceClient...')

@pytest.fixture(scope='session')
def device_client(device_service : DeviceService): # pylint: disable=redefined-outer-name,unused-argument
    LOGGER.info('Initializing DeviceClient...')
    _client = DeviceClient()
# @pytest.fixture(scope='session')
# def device_client(device_service : DeviceService): # pylint: disable=redefined-outer-name,unused-argument
#     LOGGER.info('Initializing DeviceClient...')
#     _client = DeviceClient()

    LOGGER.info('Yielding DeviceClient...')
    yield _client
#     LOGGER.info('Yielding DeviceClient...')
#     yield _client

    LOGGER.info('Closing DeviceClient...')
    _client.close()
#     LOGGER.info('Closing DeviceClient...')
#     _client.close()

    LOGGER.info('Closed DeviceClient...')
#     LOGGER.info('Closed DeviceClient...')

# This fixture will be requested by test cases and last during testing session
@pytest.fixture(scope='session')
def kpi_manager_service(
        context_service : MockContextService,  # pylint: disable=redefined-outer-name,unused-argument
        device_service : DeviceService     # pylint: disable=redefined-outer-name,unused-argument
    ):
def kpi_manager_service():
    LOGGER.info('Initializing KpiManagerService...')
    name_mapping = NameMapping()
    # _service = MonitoringService(name_mapping)
+9 −8
Original line number Diff line number Diff line
@@ -52,7 +52,10 @@ class KpiValueWriter:
              'group.id'          : __class__,
              'auto.offset.reset' : 'latest'}
        )
        
        metric_writer_to_prom = MetricWriterToPrometheus()
        kpi_manager_client = KpiManagerClient()
        print("Kpi manger client created: {:}".format(kpi_manager_client))

        kafka_consumer.subscribe([KafkaTopic.VALUE.value])
        LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value))
@@ -70,9 +73,9 @@ class KpiValueWriter:
            try:
                kpi_value = KpiValue()
                kpi_value.ParseFromString(raw_kpi.value())
                LOGGER.debug("Received KPI : {:}".format(kpi_value))
                LOGGER.info("Received KPI : {:}".format(kpi_value))
                print("Received KPI : {:}".format(kpi_value))
                KpiValueWriter.get_kpi_descriptor(kpi_value.kpi_id.kpi_id.uuid)
                KpiValueWriter.get_kpi_descriptor(kpi_value.kpi_id.kpi_id.uuid, kpi_manager_client)
                # -------- Testing section ---------------
                # test_kpi_descriptor_obj = create_kpi_descriptor_request()
                # metric_writer_to_prom.create_and_expose_cooked_kpi(
@@ -85,14 +88,12 @@ class KpiValueWriter:
                continue

    @staticmethod
    def get_kpi_descriptor(kpi_value_uuid: str):
    def get_kpi_descriptor(kpi_value_uuid: str, kpi_manager_client ):
        print("--- START -----")

        kpi_id = KpiId()
        kpi_id.kpi_id.uuid = kpi_value_uuid
        print("KpiId generated: {:}".format(kpi_id))
        
        kpi_manager_client = KpiManagerClient()
        print("Kpi manger client created: {:}".format(kpi_manager_client))

        try:
@@ -101,8 +102,8 @@ class KpiValueWriter:

            print("kpi descriptor received: {:}".format(kpi_descriptor_object))
            if isinstance (kpi_descriptor_object, KpiDescriptor):
                LOGGER.debug("Extracted row: {:}".format(kpi_descriptor_object))
                LOGGER.info("Extracted row: {:}".format(kpi_descriptor_object))
            else:
                LOGGER.debug("Error in extracting row {:}".format(kpi_descriptor_object))
                LOGGER.info("Error in extracting row {:}".format(kpi_descriptor_object))
        except Exception as e:
            print ("Unable to get Descriptor. Error: {:}".format(e))