From 1f76be28e226eba1570b1db5ba851a7dbf8a39fb Mon Sep 17 00:00:00 2001 From: "francisco.moreno.external@atos.net" <c78Fsg0mLSPOc$a> Date: Fri, 22 Jul 2022 10:28:09 +0200 Subject: [PATCH] Minor fix in monitoring.proto --- proto/monitoring.proto | 4 ++-- src/monitoring/client/MonitoringClient.py | 4 ++-- .../service/MonitoringServiceServicerImpl.py | 7 ++++--- src/monitoring/tests/Messages.py | 6 ++++-- src/monitoring/tests/test_unitary.py | 15 ++++++++------- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/proto/monitoring.proto b/proto/monitoring.proto index 64d7bdbfe..156cb32ba 100644 --- a/proto/monitoring.proto +++ b/proto/monitoring.proto @@ -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 ) {} } diff --git a/src/monitoring/client/MonitoringClient.py b/src/monitoring/client/MonitoringClient.py index 50ef008b2..637a88164 100644 --- a/src/monitoring/client/MonitoringClient.py +++ b/src/monitoring/client/MonitoringClient.py @@ -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__) @@ -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))) diff --git a/src/monitoring/service/MonitoringServiceServicerImpl.py b/src/monitoring/service/MonitoringServiceServicerImpl.py index e8db5943e..79a051929 100644 --- a/src/monitoring/service/MonitoringServiceServicerImpl.py +++ b/src/monitoring/service/MonitoringServiceServicerImpl.py @@ -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 @@ -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 @@ -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: diff --git a/src/monitoring/tests/Messages.py b/src/monitoring/tests/Messages.py index 95f2be65e..7b7f4150e 100644 --- a/src/monitoring/tests/Messages.py +++ b/src/monitoring/tests/Messages.py @@ -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() @@ -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 diff --git a/src/monitoring/tests/test_unitary.py b/src/monitoring/tests/test_unitary.py index 87a4b4d3e..913c6003b 100644 --- a/src/monitoring/tests/test_unitary.py +++ b/src/monitoring/tests/test_unitary.py @@ -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 @@ -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( @@ -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 @@ -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 @@ -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') -- GitLab