From ac3d5b13b6598ad4fb5a0b86699fefe99a42deda Mon Sep 17 00:00:00 2001 From: Jotheeswaran-Nandagopal <163156604+Jotheeswaran-Nandagopal@users.noreply.github.com> Date: Thu, 19 Sep 2024 20:57:30 +0530 Subject: [PATCH] Update measurement client generator to interact with C# measurement services (#889) * fix: add configuration_parameters_type_url to measure request --- .../ni_measurement_plugin_sdk_generator/client/__init__.py | 3 +++ .../client/templates/measurement_plugin_client.py.mako | 3 ++- .../non_streaming_data_measurement_client.py | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/generator/ni_measurement_plugin_sdk_generator/client/__init__.py b/packages/generator/ni_measurement_plugin_sdk_generator/client/__init__.py index 01fc181f0..b1a37e2c3 100644 --- a/packages/generator/ni_measurement_plugin_sdk_generator/client/__init__.py +++ b/packages/generator/ni_measurement_plugin_sdk_generator/client/__init__.py @@ -71,6 +71,7 @@ def _create_client( built_in_import_modules: List[str] = [] custom_import_modules: List[str] = [] enum_values_by_type: Dict[Type[Enum], Dict[str, int]] = {} + type_url_prefix = "type.googleapis.com/" measurement_service_stub = get_measurement_service_stub( discovery_client, channel_pool, measurement_service_class @@ -105,6 +106,8 @@ def _create_client( built_in_import_modules=to_ordered_set(built_in_import_modules), custom_import_modules=to_ordered_set(custom_import_modules), enum_by_class_name=enum_values_by_type, + configuration_parameters_type_url=type_url_prefix + + metadata.measurement_signature.configuration_parameters_message_type, ) print( diff --git a/packages/generator/ni_measurement_plugin_sdk_generator/client/templates/measurement_plugin_client.py.mako b/packages/generator/ni_measurement_plugin_sdk_generator/client/templates/measurement_plugin_client.py.mako index 7e47c3a30..cbb06bda4 100644 --- a/packages/generator/ni_measurement_plugin_sdk_generator/client/templates/measurement_plugin_client.py.mako +++ b/packages/generator/ni_measurement_plugin_sdk_generator/client/templates/measurement_plugin_client.py.mako @@ -1,4 +1,4 @@ -<%page args="class_name, display_name, configuration_metadata, output_metadata, service_class, configuration_parameters_with_type_and_default_values, measure_api_parameters, output_parameters_with_type, built_in_import_modules, custom_import_modules, enum_by_class_name"/>\ +<%page args="class_name, display_name, configuration_metadata, output_metadata, service_class, configuration_parameters_with_type_and_default_values, measure_api_parameters, output_parameters_with_type, built_in_import_modules, custom_import_modules, enum_by_class_name, configuration_parameters_type_url"/>\ \ """Generated client API for the ${display_name | repr} measurement plug-in.""" @@ -174,6 +174,7 @@ class ${class_name}: self, parameter_values: List[Any] ) -> v2_measurement_service_pb2.MeasureRequest: serialized_configuration = any_pb2.Any( + type_url=${configuration_parameters_type_url | repr}, value=serialize_parameters( parameter_metadata_dict=self._configuration_metadata, parameter_values=parameter_values, diff --git a/packages/generator/tests/test_assets/example_renders/measurement_plugin_client/non_streaming_data_measurement_client.py b/packages/generator/tests/test_assets/example_renders/measurement_plugin_client/non_streaming_data_measurement_client.py index ffa6cebd1..e9fcdd0dd 100644 --- a/packages/generator/tests/test_assets/example_renders/measurement_plugin_client/non_streaming_data_measurement_client.py +++ b/packages/generator/tests/test_assets/example_renders/measurement_plugin_client/non_streaming_data_measurement_client.py @@ -467,11 +467,12 @@ def _create_measure_request( self, parameter_values: List[Any] ) -> v2_measurement_service_pb2.MeasureRequest: serialized_configuration = any_pb2.Any( + type_url="type.googleapis.com/ni.measurementlink.measurement.v2.MeasurementConfigurations", value=serialize_parameters( parameter_metadata_dict=self._configuration_metadata, parameter_values=parameter_values, service_name=f"{self._service_class}.Configurations", - ) + ), ) return v2_measurement_service_pb2.MeasureRequest( configuration_parameters=serialized_configuration,