Skip to content
Snippets Groups Projects
Commit 1879fb18 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

changes for kpi_manager integration with TFS

parent 9fcbc75e
No related branches found
No related tags found
2 merge requests!294Release TeraFlowSDN 4.0,!207Resolve "(CTTC) Separation of Monitoring"
...@@ -28,10 +28,10 @@ from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilt ...@@ -28,10 +28,10 @@ from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilt
from common.tools.service.GenericGrpcService import GenericGrpcService from common.tools.service.GenericGrpcService import GenericGrpcService
from context.client.ContextClient import ContextClient from context.client.ContextClient import ContextClient
from device.service.driver_api.DriverFactory import DriverFactory # from device.service.driver_api.DriverFactory import DriverFactory
from device.service.driver_api.DriverInstanceCache import DriverInstanceCache # from device.service.driver_api.DriverInstanceCache import DriverInstanceCache
from device.service.DeviceService import DeviceService # from device.service.DeviceService import DeviceService
from device.client.DeviceClient import DeviceClient # 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.tests.test_messages import create_kpi_descriptor_request, create_kpi_filter_request, create_kpi_descriptor_request_a
from kpi_manager.service.KpiManagerService import KpiManagerService from kpi_manager.service.KpiManagerService import KpiManagerService
...@@ -47,13 +47,12 @@ from device.service.drivers import DRIVERS ...@@ -47,13 +47,12 @@ from device.service.drivers import DRIVERS
########################### ###########################
LOCAL_HOST = '127.0.0.1' 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_HOST )] = str(LOCAL_HOST)
os.environ[get_env_var_name(ServiceNameEnum.KPIMANAGER, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(KPIMANAGER_SERVICE_PORT) 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__) LOGGER = logging.getLogger(__name__)
...@@ -68,50 +67,50 @@ class MockContextService(GenericGrpcService): ...@@ -68,50 +67,50 @@ class MockContextService(GenericGrpcService):
self.context_servicer = MockServicerImpl_Context() self.context_servicer = MockServicerImpl_Context()
add_ContextServiceServicer_to_server(self.context_servicer, self.server) add_ContextServiceServicer_to_server(self.context_servicer, self.server)
@pytest.fixture(scope='session') # @pytest.fixture(scope='session')
def context_service(): # def context_service():
LOGGER.info('Initializing MockContextService...') # LOGGER.info('Initializing MockContextService...')
_service = MockContextService(MOCKSERVICE_PORT) # _service = MockContextService(MOCKSERVICE_PORT)
_service.start() # _service.start()
LOGGER.info('Yielding MockContextService...') # LOGGER.info('Yielding MockContextService...')
yield _service # yield _service
LOGGER.info('Terminating MockContextService...') # LOGGER.info('Terminating MockContextService...')
_service.context_servicer.msg_broker.terminate() # _service.context_servicer.msg_broker.terminate()
_service.stop() # _service.stop()
LOGGER.info('Terminated MockContextService...') # LOGGER.info('Terminated MockContextService...')
@pytest.fixture(scope='session') # @pytest.fixture(scope='session')
def context_client(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument # def context_client(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument
LOGGER.info('Initializing ContextClient...') # LOGGER.info('Initializing ContextClient...')
_client = ContextClient() # _client = ContextClient()
LOGGER.info('Yielding ContextClient...') # LOGGER.info('Yielding ContextClient...')
yield _client # yield _client
LOGGER.info('Closing ContextClient...') # LOGGER.info('Closing ContextClient...')
_client.close() # _client.close()
LOGGER.info('Closed ContextClient...') # LOGGER.info('Closed ContextClient...')
@pytest.fixture(scope='session') # @pytest.fixture(scope='session')
def device_service(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument # def device_service(context_service : MockContextService): # pylint: disable=redefined-outer-name,unused-argument
LOGGER.info('Initializing DeviceService...') # LOGGER.info('Initializing DeviceService...')
driver_factory = DriverFactory(DRIVERS) # driver_factory = DriverFactory(DRIVERS)
driver_instance_cache = DriverInstanceCache(driver_factory) # driver_instance_cache = DriverInstanceCache(driver_factory)
_service = DeviceService(driver_instance_cache) # _service = DeviceService(driver_instance_cache)
_service.start() # _service.start()
# yield the server, when test finishes, execution will resume to stop it # # yield the server, when test finishes, execution will resume to stop it
LOGGER.info('Yielding DeviceService...') # LOGGER.info('Yielding DeviceService...')
yield _service # yield _service
LOGGER.info('Terminating DeviceService...') # LOGGER.info('Terminating DeviceService...')
_service.stop() # _service.stop()
LOGGER.info('Terminated DeviceService...') # LOGGER.info('Terminated DeviceService...')
# @pytest.fixture(scope='session') # @pytest.fixture(scope='session')
# def device_client(device_service : DeviceService): # pylint: disable=redefined-outer-name,unused-argument # 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 ...@@ -126,25 +125,22 @@ def device_service(context_service : MockContextService): # pylint: disable=rede
# LOGGER.info('Closed DeviceClient...') # LOGGER.info('Closed DeviceClient...')
@pytest.fixture(scope='session') # @pytest.fixture(scope='session')
def device_client(device_service : DeviceService): # pylint: disable=redefined-outer-name,unused-argument # def device_client(device_service : DeviceService): # pylint: disable=redefined-outer-name,unused-argument
LOGGER.info('Initializing DeviceClient...') # LOGGER.info('Initializing DeviceClient...')
_client = DeviceClient() # _client = DeviceClient()
LOGGER.info('Yielding DeviceClient...') # LOGGER.info('Yielding DeviceClient...')
yield _client # yield _client
LOGGER.info('Closing DeviceClient...') # LOGGER.info('Closing DeviceClient...')
_client.close() # _client.close()
LOGGER.info('Closed DeviceClient...') # LOGGER.info('Closed DeviceClient...')
# This fixture will be requested by test cases and last during testing session # This fixture will be requested by test cases and last during testing session
@pytest.fixture(scope='session') @pytest.fixture(scope='session')
def kpi_manager_service( def kpi_manager_service():
context_service : MockContextService, # pylint: disable=redefined-outer-name,unused-argument
device_service : DeviceService # pylint: disable=redefined-outer-name,unused-argument
):
LOGGER.info('Initializing KpiManagerService...') LOGGER.info('Initializing KpiManagerService...')
name_mapping = NameMapping() name_mapping = NameMapping()
# _service = MonitoringService(name_mapping) # _service = MonitoringService(name_mapping)
......
...@@ -52,8 +52,11 @@ class KpiValueWriter: ...@@ -52,8 +52,11 @@ class KpiValueWriter:
'group.id' : __class__, 'group.id' : __class__,
'auto.offset.reset' : 'latest'} 'auto.offset.reset' : 'latest'}
) )
metric_writer_to_prom = MetricWriterToPrometheus()
metric_writer_to_prom = MetricWriterToPrometheus()
kpi_manager_client = KpiManagerClient()
print("Kpi manger client created: {:}".format(kpi_manager_client))
kafka_consumer.subscribe([KafkaTopic.VALUE.value]) kafka_consumer.subscribe([KafkaTopic.VALUE.value])
LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value))
print("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) print("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value))
...@@ -70,9 +73,9 @@ class KpiValueWriter: ...@@ -70,9 +73,9 @@ class KpiValueWriter:
try: try:
kpi_value = KpiValue() kpi_value = KpiValue()
kpi_value.ParseFromString(raw_kpi.value()) 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)) 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 --------------- # -------- Testing section ---------------
# test_kpi_descriptor_obj = create_kpi_descriptor_request() # test_kpi_descriptor_obj = create_kpi_descriptor_request()
# metric_writer_to_prom.create_and_expose_cooked_kpi( # metric_writer_to_prom.create_and_expose_cooked_kpi(
...@@ -85,14 +88,12 @@ class KpiValueWriter: ...@@ -85,14 +88,12 @@ class KpiValueWriter:
continue continue
@staticmethod @staticmethod
def get_kpi_descriptor(kpi_value_uuid: str): def get_kpi_descriptor(kpi_value_uuid: str, kpi_manager_client ):
print("--- START -----") print("--- START -----")
kpi_id = KpiId() kpi_id = KpiId()
kpi_id.kpi_id.uuid = kpi_value_uuid kpi_id.kpi_id.uuid = kpi_value_uuid
print("KpiId generated: {:}".format(kpi_id)) print("KpiId generated: {:}".format(kpi_id))
kpi_manager_client = KpiManagerClient()
print("Kpi manger client created: {:}".format(kpi_manager_client)) print("Kpi manger client created: {:}".format(kpi_manager_client))
try: try:
...@@ -101,8 +102,8 @@ class KpiValueWriter: ...@@ -101,8 +102,8 @@ class KpiValueWriter:
print("kpi descriptor received: {:}".format(kpi_descriptor_object)) print("kpi descriptor received: {:}".format(kpi_descriptor_object))
if isinstance (kpi_descriptor_object, KpiDescriptor): if isinstance (kpi_descriptor_object, KpiDescriptor):
LOGGER.debug("Extracted row: {:}".format(kpi_descriptor_object)) LOGGER.info("Extracted row: {:}".format(kpi_descriptor_object))
else: 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: except Exception as e:
print ("Unable to get Descriptor. Error: {:}".format(e)) print ("Unable to get Descriptor. Error: {:}".format(e))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment