Loading proto/monitoring.proto +2 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,8 @@ service MonitoringService { rpc CreateKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} rpc EditKpiAlarm (AlarmDescriptor ) returns (context.Empty ) {} rpc GetAlarms (context.Empty ) returns (AlarmIDList ) {} rpc GetAlarmDescriptor (AlarmSubscription ) returns (AlarmDescriptor ) {} rpc GetAlarmResponseStream(AlarmID ) returns (stream AlarmResponse) {} rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} rpc GetInstantKpi (KpiId ) returns (KpiList ) {} } Loading src/monitoring/client/MonitoringClient.py +2 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.proto.context_pb2 import Empty from common.proto.monitoring_pb2 import Kpi, KpiDescriptor, KpiId, MonitorKpiRequest, EditedKpiDescriptor, \ KpiDescriptorList, BundleKpiDescriptor, KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsIDList, \ AlarmDescriptor, AlarmID, AlarmIDList, AlarmResponse AlarmDescriptor, AlarmID, AlarmIDList, AlarmResponse, AlarmSubscription from common.proto.monitoring_pb2_grpc import MonitoringServiceStub LOGGER = logging.getLogger(__name__) Loading Loading @@ -168,7 +168,7 @@ class MonitoringClient: LOGGER.debug('GetAlarmDescriptor result: {:s}'.format(grpc_message_to_json_string(response))) return response def GetAlarmResponseStream(self, request : AlarmID) -> AlarmResponse: def GetAlarmResponseStream(self, request : AlarmSubscription) -> AlarmResponse: LOGGER.debug('GetAlarmResponseStream: {:s}'.format(grpc_message_to_json_string(request))) response = self.stub.GetAlarmResponseStream(request) LOGGER.debug('GetAlarmResponseStream result: {:s}'.format(grpc_message_to_json_string(response))) Loading src/monitoring/service/MonitoringServiceServicerImpl.py +4 −3 Original line number Diff line number Diff line Loading @@ -24,8 +24,9 @@ from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.proto.monitoring_pb2_grpc import MonitoringServiceServicer from common.proto.monitoring_pb2 import AlarmResponse, AlarmDescriptor, AlarmIDList, SubsIDList, KpiId, \ KpiDescriptor, KpiList, KpiQuery, SubsDescriptor, SubscriptionID, AlarmID, EditedKpiDescriptor, KpiDescriptorList, \ BundleKpiDescriptor, MonitorKpiRequest, Kpi BundleKpiDescriptor, MonitorKpiRequest, Kpi, AlarmSubscription from common.rpc_method_wrapper.ServiceExceptions import ServiceException from common.tools.timestamp.Converters import timestamp_float_to_string from monitoring.service import SqliteTools, InfluxTools from device.client.DeviceClient import DeviceClient Loading Loading @@ -184,7 +185,7 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer): deviceId = kpiDescriptor.device_id.device_uuid.uuid endpointId = kpiDescriptor.endpoint_id.endpoint_uuid.uuid serviceId = kpiDescriptor.service_id.service_uuid.uuid time_stamp = request.timestamp time_stamp = timestamp_float_to_string(request.timestamp.timestamp) kpi_value = getattr(request.kpi_value, request.kpi_value.WhichOneof('value')) # Build the structure to be included as point in the influxDB Loading Loading @@ -346,7 +347,7 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer): except Exception as e: # pragma: no cover LOGGER.exception('GetAlarmDescriptor exception') def GetAlarmResponseStream(self, request : AlarmID, grpc_context : grpc.ServicerContext) -> Iterator[AlarmResponse]: def GetAlarmResponseStream(self, request : AlarmSubscription, grpc_context : grpc.ServicerContext) -> Iterator[AlarmResponse]: LOGGER.info('GetAlarmResponseStream') try: Loading src/monitoring/tests/Messages.py +4 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ from common.proto import monitoring_pb2 from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.tools.timestamp.Converters import timestamp_string_to_float def kpi(): _kpi = monitoring_pb2.Kpi() Loading Loading @@ -44,6 +46,6 @@ def monitor_kpi_request(kpi_uuid, monitoring_window_s, sampling_rate_s): def include_kpi_request(): _include_kpi_request = monitoring_pb2.Kpi() _include_kpi_request.kpi_id.kpi_id.uuid = str(1) # pylint: disable=maybe-no-member _include_kpi_request.timestamp = "2021-10-12T13:14:42Z" _include_kpi_request.kpi_value.intVal = 500 # pylint: disable=maybe-no-member _include_kpi_request.timestamp.timestamp = timestamp_string_to_float("2021-10-12T13:14:42Z") _include_kpi_request.kpi_value.int32Val = 500 # pylint: disable=maybe-no-member return _include_kpi_request src/monitoring/tests/test_unitary.py +8 −7 Original line number Diff line number Diff line Loading @@ -22,10 +22,11 @@ from common.orm.Database import Database from common.orm.Factory import get_database_backend, BackendEnum as DatabaseBackendEnum from common.message_broker.Factory import get_messagebroker_backend, BackendEnum as MessageBrokerBackendEnum from common.message_broker.MessageBroker import MessageBroker from common.proto.monitoring_pb2 import KpiId, KpiDescriptor from context.client.ContextClient import ContextClient from context.service.grpc_server.ContextService import ContextService from common.proto.context_pb2 import EventTypeEnum, DeviceEvent, Device from common.proto.context_pb2 import EventTypeEnum, DeviceEvent, Device, Empty from device.client.DeviceClient import DeviceClient from device.service.DeviceService import DeviceService Loading Loading @@ -166,7 +167,7 @@ def test_create_kpi(monitoring_client): # pylint: disable=redefined-outer-name LOGGER.warning('test_create_kpi requesting') response = monitoring_client.CreateKpi(create_kpi_request()) LOGGER.debug(str(response)) assert isinstance(response, monitoring_pb2.KpiId) assert isinstance(response, KpiId) # Test case that makes use of client fixture to test server's MonitorKpi method def test_monitor_kpi( Loading Loading @@ -201,7 +202,7 @@ def test_monitor_kpi( _monitor_kpi_request = monitor_kpi_request(response.kpi_id.uuid, 120, 5) # pylint: disable=maybe-no-member response = monitoring_client.MonitorKpi(_monitor_kpi_request) LOGGER.debug(str(response)) assert isinstance(response, context_pb2.Empty) assert isinstance(response, Empty) # Test case that makes use of client fixture to test server's IncludeKpi method Loading @@ -210,21 +211,21 @@ def test_include_kpi(monitoring_client): # pylint: disable=redefined-outer-name LOGGER.warning('test_include_kpi requesting') response = monitoring_client.IncludeKpi(include_kpi_request()) LOGGER.debug(str(response)) assert isinstance(response, context_pb2.Empty) assert isinstance(response, Empty) # Test case that makes use of client fixture to test server's GetStreamKpi method def test_get_stream_kpi(monitoring_client): # pylint: disable=redefined-outer-name LOGGER.warning('test_getstream_kpi begin') response = monitoring_client.GetStreamKpi(kpi()) LOGGER.debug(str(response)) #assert isinstance(response, monitoring_pb2.Kpi) #assert isinstance(response, Kpi) # Test case that makes use of client fixture to test server's GetInstantKpi method # def test_get_instant_kpi(monitoring_client): # pylint: disable=redefined-outer-name # LOGGER.warning('test_getinstant_kpi begin') # response = monitoring_client.GetInstantKpi(kpi_id()) # LOGGER.debug(str(response)) # # assert isinstance(response, monitoring_pb2.Kpi) # # assert isinstance(response, Kpi) # Test case that makes use of client fixture to test server's GetInstantKpi method def test_get_kpidescritor_kpi(monitoring_client): # pylint: disable=redefined-outer-name Loading @@ -232,7 +233,7 @@ def test_get_kpidescritor_kpi(monitoring_client): # pylint: disable=redefined-ou response = monitoring_client.CreateKpi(create_kpi_request()) response = monitoring_client.GetKpiDescriptor(response) LOGGER.debug(str(response)) assert isinstance(response, monitoring_pb2.KpiDescriptor) assert isinstance(response, KpiDescriptor) def test_sqlitedb_tools_insert_kpi(sql_db): # pylint: disable=redefined-outer-name LOGGER.warning('test_sqlitedb_tools_insert_kpi begin') Loading Loading
proto/monitoring.proto +2 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,8 @@ service MonitoringService { rpc CreateKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} rpc EditKpiAlarm (AlarmDescriptor ) returns (context.Empty ) {} rpc GetAlarms (context.Empty ) returns (AlarmIDList ) {} rpc GetAlarmDescriptor (AlarmSubscription ) returns (AlarmDescriptor ) {} rpc GetAlarmResponseStream(AlarmID ) returns (stream AlarmResponse) {} rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} rpc GetInstantKpi (KpiId ) returns (KpiList ) {} } Loading
src/monitoring/client/MonitoringClient.py +2 −2 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ from common.tools.grpc.Tools import grpc_message_to_json_string from common.proto.context_pb2 import Empty from common.proto.monitoring_pb2 import Kpi, KpiDescriptor, KpiId, MonitorKpiRequest, EditedKpiDescriptor, \ KpiDescriptorList, BundleKpiDescriptor, KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsIDList, \ AlarmDescriptor, AlarmID, AlarmIDList, AlarmResponse AlarmDescriptor, AlarmID, AlarmIDList, AlarmResponse, AlarmSubscription from common.proto.monitoring_pb2_grpc import MonitoringServiceStub LOGGER = logging.getLogger(__name__) Loading Loading @@ -168,7 +168,7 @@ class MonitoringClient: LOGGER.debug('GetAlarmDescriptor result: {:s}'.format(grpc_message_to_json_string(response))) return response def GetAlarmResponseStream(self, request : AlarmID) -> AlarmResponse: def GetAlarmResponseStream(self, request : AlarmSubscription) -> AlarmResponse: LOGGER.debug('GetAlarmResponseStream: {:s}'.format(grpc_message_to_json_string(request))) response = self.stub.GetAlarmResponseStream(request) LOGGER.debug('GetAlarmResponseStream result: {:s}'.format(grpc_message_to_json_string(response))) Loading
src/monitoring/service/MonitoringServiceServicerImpl.py +4 −3 Original line number Diff line number Diff line Loading @@ -24,8 +24,9 @@ from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.proto.monitoring_pb2_grpc import MonitoringServiceServicer from common.proto.monitoring_pb2 import AlarmResponse, AlarmDescriptor, AlarmIDList, SubsIDList, KpiId, \ KpiDescriptor, KpiList, KpiQuery, SubsDescriptor, SubscriptionID, AlarmID, EditedKpiDescriptor, KpiDescriptorList, \ BundleKpiDescriptor, MonitorKpiRequest, Kpi BundleKpiDescriptor, MonitorKpiRequest, Kpi, AlarmSubscription from common.rpc_method_wrapper.ServiceExceptions import ServiceException from common.tools.timestamp.Converters import timestamp_float_to_string from monitoring.service import SqliteTools, InfluxTools from device.client.DeviceClient import DeviceClient Loading Loading @@ -184,7 +185,7 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer): deviceId = kpiDescriptor.device_id.device_uuid.uuid endpointId = kpiDescriptor.endpoint_id.endpoint_uuid.uuid serviceId = kpiDescriptor.service_id.service_uuid.uuid time_stamp = request.timestamp time_stamp = timestamp_float_to_string(request.timestamp.timestamp) kpi_value = getattr(request.kpi_value, request.kpi_value.WhichOneof('value')) # Build the structure to be included as point in the influxDB Loading Loading @@ -346,7 +347,7 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer): except Exception as e: # pragma: no cover LOGGER.exception('GetAlarmDescriptor exception') def GetAlarmResponseStream(self, request : AlarmID, grpc_context : grpc.ServicerContext) -> Iterator[AlarmResponse]: def GetAlarmResponseStream(self, request : AlarmSubscription, grpc_context : grpc.ServicerContext) -> Iterator[AlarmResponse]: LOGGER.info('GetAlarmResponseStream') try: Loading
src/monitoring/tests/Messages.py +4 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ from common.proto import monitoring_pb2 from common.proto.kpi_sample_types_pb2 import KpiSampleType from common.tools.timestamp.Converters import timestamp_string_to_float def kpi(): _kpi = monitoring_pb2.Kpi() Loading Loading @@ -44,6 +46,6 @@ def monitor_kpi_request(kpi_uuid, monitoring_window_s, sampling_rate_s): def include_kpi_request(): _include_kpi_request = monitoring_pb2.Kpi() _include_kpi_request.kpi_id.kpi_id.uuid = str(1) # pylint: disable=maybe-no-member _include_kpi_request.timestamp = "2021-10-12T13:14:42Z" _include_kpi_request.kpi_value.intVal = 500 # pylint: disable=maybe-no-member _include_kpi_request.timestamp.timestamp = timestamp_string_to_float("2021-10-12T13:14:42Z") _include_kpi_request.kpi_value.int32Val = 500 # pylint: disable=maybe-no-member return _include_kpi_request
src/monitoring/tests/test_unitary.py +8 −7 Original line number Diff line number Diff line Loading @@ -22,10 +22,11 @@ from common.orm.Database import Database from common.orm.Factory import get_database_backend, BackendEnum as DatabaseBackendEnum from common.message_broker.Factory import get_messagebroker_backend, BackendEnum as MessageBrokerBackendEnum from common.message_broker.MessageBroker import MessageBroker from common.proto.monitoring_pb2 import KpiId, KpiDescriptor from context.client.ContextClient import ContextClient from context.service.grpc_server.ContextService import ContextService from common.proto.context_pb2 import EventTypeEnum, DeviceEvent, Device from common.proto.context_pb2 import EventTypeEnum, DeviceEvent, Device, Empty from device.client.DeviceClient import DeviceClient from device.service.DeviceService import DeviceService Loading Loading @@ -166,7 +167,7 @@ def test_create_kpi(monitoring_client): # pylint: disable=redefined-outer-name LOGGER.warning('test_create_kpi requesting') response = monitoring_client.CreateKpi(create_kpi_request()) LOGGER.debug(str(response)) assert isinstance(response, monitoring_pb2.KpiId) assert isinstance(response, KpiId) # Test case that makes use of client fixture to test server's MonitorKpi method def test_monitor_kpi( Loading Loading @@ -201,7 +202,7 @@ def test_monitor_kpi( _monitor_kpi_request = monitor_kpi_request(response.kpi_id.uuid, 120, 5) # pylint: disable=maybe-no-member response = monitoring_client.MonitorKpi(_monitor_kpi_request) LOGGER.debug(str(response)) assert isinstance(response, context_pb2.Empty) assert isinstance(response, Empty) # Test case that makes use of client fixture to test server's IncludeKpi method Loading @@ -210,21 +211,21 @@ def test_include_kpi(monitoring_client): # pylint: disable=redefined-outer-name LOGGER.warning('test_include_kpi requesting') response = monitoring_client.IncludeKpi(include_kpi_request()) LOGGER.debug(str(response)) assert isinstance(response, context_pb2.Empty) assert isinstance(response, Empty) # Test case that makes use of client fixture to test server's GetStreamKpi method def test_get_stream_kpi(monitoring_client): # pylint: disable=redefined-outer-name LOGGER.warning('test_getstream_kpi begin') response = monitoring_client.GetStreamKpi(kpi()) LOGGER.debug(str(response)) #assert isinstance(response, monitoring_pb2.Kpi) #assert isinstance(response, Kpi) # Test case that makes use of client fixture to test server's GetInstantKpi method # def test_get_instant_kpi(monitoring_client): # pylint: disable=redefined-outer-name # LOGGER.warning('test_getinstant_kpi begin') # response = monitoring_client.GetInstantKpi(kpi_id()) # LOGGER.debug(str(response)) # # assert isinstance(response, monitoring_pb2.Kpi) # # assert isinstance(response, Kpi) # Test case that makes use of client fixture to test server's GetInstantKpi method def test_get_kpidescritor_kpi(monitoring_client): # pylint: disable=redefined-outer-name Loading @@ -232,7 +233,7 @@ def test_get_kpidescritor_kpi(monitoring_client): # pylint: disable=redefined-ou response = monitoring_client.CreateKpi(create_kpi_request()) response = monitoring_client.GetKpiDescriptor(response) LOGGER.debug(str(response)) assert isinstance(response, monitoring_pb2.KpiDescriptor) assert isinstance(response, KpiDescriptor) def test_sqlitedb_tools_insert_kpi(sql_db): # pylint: disable=redefined-outer-name LOGGER.warning('test_sqlitedb_tools_insert_kpi begin') Loading