diff --git a/secretmanager/snippets/secretmanager_trace.py b/secretmanager/snippets/get_secret_version_trace.py similarity index 91% rename from secretmanager/snippets/secretmanager_trace.py rename to secretmanager/snippets/get_secret_version_trace.py index d1949e0a7a..1ee6bc7b11 100644 --- a/secretmanager/snippets/secretmanager_trace.py +++ b/secretmanager/snippets/get_secret_version_trace.py @@ -44,18 +44,18 @@ def get_secret_version_with_tracing( # applications (e.g., web servers), configure the TracerProvider once at # application startup. # - # 1. Initialize the OpenTelemetry TracerProvider with a Console exporter + # Initialize the OpenTelemetry TracerProvider with a Console exporter provider = TracerProvider() provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter())) trace.set_tracer_provider(provider) - # 2. Enable Google Cloud client library tracing + # Enable Google Cloud client library tracing os.environ["GOOGLE_SDK_PYTHON_TRACING_ENABLED"] = "true" - # 3. Instantiate the client (automatically discovers the active TracerProvider) + # Instantiate the client (automatically discovers the active TracerProvider) client = secretmanager.SecretManagerServiceClient() - # 4. Construct the resource name and invoke the RPC + # Construct the resource name and invoke the RPC name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" try: diff --git a/secretmanager/snippets/secretmanager_trace_async.py b/secretmanager/snippets/get_secret_version_trace_async.py similarity index 93% rename from secretmanager/snippets/secretmanager_trace_async.py rename to secretmanager/snippets/get_secret_version_trace_async.py index 0feb015c07..c785f70ea8 100644 --- a/secretmanager/snippets/secretmanager_trace_async.py +++ b/secretmanager/snippets/get_secret_version_trace_async.py @@ -45,18 +45,18 @@ async def get_secret_version_with_tracing_async( # applications (e.g., web servers), configure the TracerProvider once at # application startup. # - # 1. Initialize the OpenTelemetry TracerProvider with a Console exporter + # Initialize the OpenTelemetry TracerProvider with a Console exporter provider = TracerProvider() provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter())) trace.set_tracer_provider(provider) - # 2. Enable Google Cloud client library tracing + # Enable Google Cloud client library tracing os.environ["GOOGLE_SDK_PYTHON_TRACING_ENABLED"] = "true" - # 3. Instantiate the async client + # Instantiate the async client client = secretmanager.SecretManagerServiceAsyncClient() - # 4. Construct resource name and invoke the async RPC + # Construct resource name and invoke the async RPC name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" try: diff --git a/secretmanager/snippets/secretmanager_trace_async_test.py b/secretmanager/snippets/get_secret_version_trace_async_test.py similarity index 89% rename from secretmanager/snippets/secretmanager_trace_async_test.py rename to secretmanager/snippets/get_secret_version_trace_async_test.py index a9755add00..c139cef8cb 100644 --- a/secretmanager/snippets/secretmanager_trace_async_test.py +++ b/secretmanager/snippets/get_secret_version_trace_async_test.py @@ -13,11 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Unit tests for secretmanager_trace_async snippet.""" +"""Unit tests for get_secret_version_trace_async snippet.""" import os from unittest import mock +from get_secret_version_trace_async import ( + get_secret_version_with_tracing_async, +) from google.api_core import _observability from google.api_core.client_options import ClientOptions from google.api_core.gapic_v1 import method_async @@ -28,10 +31,6 @@ import grpc import pytest -from secretmanager_trace_async import ( - get_secret_version_with_tracing_async, -) - # Ensure OTel tracing capabilities are enabled in the environment os.environ["GOOGLE_SDK_EXPERIMENTAL_PYTHON_TRACING_ENABLED"] = "true" os.environ["GOOGLE_SDK_PYTHON_TRACING_ENABLED"] = "true" @@ -62,7 +61,10 @@ def patched_init(self, *args, **kwargs): kind="grpc_asyncio", ) - with mock.patch("secretmanager_trace_async.TracerProvider", return_value=provider): + with mock.patch( + "get_secret_version_trace_async.TracerProvider", + return_value=provider, + ): with mock.patch.object( SecretManagerServiceGrpcAsyncIOTransport, "__init__", patched_init ): @@ -72,11 +74,11 @@ def patched_init(self, *args, **kwargs): version_id="1", ) - # 1. Verify returned SecretVersion metadata + # Verify returned SecretVersion metadata assert version.name == "projects/test-project/secrets/my-secret/versions/1" assert version.state == secretmanager.SecretVersion.State.ENABLED - # 2. Inspect emitted spans + # Inspect emitted spans spans = exporter.get_finished_spans() assert len(spans) == 2, f"Expected 2 spans (T3 + T4), but got {len(spans)}" @@ -89,7 +91,7 @@ def patched_init(self, *args, **kwargs): t3_span = t3_spans[0] t4_span = t4_spans[0] - # 3. Verify T3 logical client span attributes + # Verify T3 logical client span attributes assert ( t3_span.name == "google.cloud.secretmanager.v1.SecretManagerService/GetSecretVersion" @@ -97,7 +99,7 @@ def patched_init(self, *args, **kwargs): assert t3_span.attributes.get("rpc.system.name") == "grpc" assert t3_span.attributes.get("rpc.response.status_code") == "OK" - # 4. Verify T4 wire attempt span attributes + # Verify T4 wire attempt span attributes assert ( t4_span.name == "google.cloud.secretmanager.v1.SecretManagerService/GetSecretVersion" @@ -109,5 +111,5 @@ def patched_init(self, *args, **kwargs): assert t4_span.attributes.get("rpc.grpc.status_code") == 0 assert t4_span.attributes.get("rpc.response.status_code") == "OK" - # 5. Verify span hierarchy / parent-child linkage + # Verify span hierarchy / parent-child linkage assert t4_span.parent.span_id == t3_span.context.span_id diff --git a/secretmanager/snippets/secretmanager_trace_client_options.py b/secretmanager/snippets/get_secret_version_trace_client_options.py similarity index 93% rename from secretmanager/snippets/secretmanager_trace_client_options.py rename to secretmanager/snippets/get_secret_version_trace_client_options.py index 683409f40d..ff79ded639 100644 --- a/secretmanager/snippets/secretmanager_trace_client_options.py +++ b/secretmanager/snippets/get_secret_version_trace_client_options.py @@ -37,17 +37,17 @@ def get_secret_version_with_client_options( Returns: The SecretVersion metadata object. """ - # 1. Initialize an independent TracerProvider (no global registration required) + # Initialize an independent TracerProvider (no global registration required) provider = TracerProvider() provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter())) - # 2. Pass the TracerProvider directly via ClientOptions + # Pass the TracerProvider directly via ClientOptions # Tracing is activated specifically for this client instance, even without # setting the GOOGLE_SDK_PYTHON_TRACING_ENABLED environment variable. options = ClientOptions(tracer_provider=provider) client = secretmanager.SecretManagerServiceClient(client_options=options) - # 3. Construct resource name and invoke RPC + # Construct resource name and invoke RPC name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" try: diff --git a/secretmanager/snippets/secretmanager_trace_client_options_test.py b/secretmanager/snippets/get_secret_version_trace_client_options_test.py similarity index 92% rename from secretmanager/snippets/secretmanager_trace_client_options_test.py rename to secretmanager/snippets/get_secret_version_trace_client_options_test.py index 5e631286ea..d52ae9cb97 100644 --- a/secretmanager/snippets/secretmanager_trace_client_options_test.py +++ b/secretmanager/snippets/get_secret_version_trace_client_options_test.py @@ -13,11 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Unit tests for secretmanager_trace_client_options snippet.""" +"""Unit tests for get_secret_version_trace_client_options snippet.""" import os from unittest import mock +from get_secret_version_trace_client_options import ( + get_secret_version_with_client_options, +) from google.api_core.gapic_v1 import method from google.cloud import secretmanager from google.cloud.secretmanager_v1.services.secret_manager_service.transports.grpc import ( @@ -25,10 +28,6 @@ ) import grpc -from secretmanager_trace_client_options import ( - get_secret_version_with_client_options, -) - os.environ["GOOGLE_SDK_EXPERIMENTAL_PYTHON_TRACING_ENABLED"] = "true" @@ -57,7 +56,8 @@ def patched_init(self, *args, **kwargs): monkeypatch.delenv("GOOGLE_SDK_PYTHON_TRACING_ENABLED", raising=False) with mock.patch( - "secretmanager_trace_client_options.TracerProvider", return_value=provider + "get_secret_version_trace_client_options.TracerProvider", + return_value=provider, ): version = get_secret_version_with_client_options( project_id="test-project", diff --git a/secretmanager/snippets/secretmanager_trace_cloud_trace.py b/secretmanager/snippets/get_secret_version_trace_cloud_trace.py similarity index 92% rename from secretmanager/snippets/secretmanager_trace_cloud_trace.py rename to secretmanager/snippets/get_secret_version_trace_cloud_trace.py index 7e8e363520..ba3b783170 100644 --- a/secretmanager/snippets/secretmanager_trace_cloud_trace.py +++ b/secretmanager/snippets/get_secret_version_trace_cloud_trace.py @@ -49,7 +49,7 @@ def get_secret_version_cloud_trace( # applications (e.g., web servers), configure the TracerProvider once at # application startup. # - # 1. Initialize OpenTelemetry TracerProvider with CloudTraceSpanExporter + # Initialize OpenTelemetry TracerProvider with CloudTraceSpanExporter # NOTE: We also initialize ConsoleSpanExporter to display results from this sample directly. provider = TracerProvider() cloud_exporter = CloudTraceSpanExporter() @@ -57,13 +57,13 @@ def get_secret_version_cloud_trace( provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter())) trace.set_tracer_provider(provider) - # 2. Enable Google Cloud client library tracing + # Enable Google Cloud client library tracing os.environ["GOOGLE_SDK_PYTHON_TRACING_ENABLED"] = "true" - # 3. Instantiate the client (automatically discovers the active TracerProvider) + # Instantiate the client (automatically discovers the active TracerProvider) client = secretmanager.SecretManagerServiceClient() - # 4. Construct resource name and invoke RPC + # Construct resource name and invoke RPC name = f"projects/{project_id}/secrets/{secret_id}/versions/{version_id}" try: diff --git a/secretmanager/snippets/secretmanager_trace_cloud_trace_test.py b/secretmanager/snippets/get_secret_version_trace_cloud_trace_test.py similarity index 86% rename from secretmanager/snippets/secretmanager_trace_cloud_trace_test.py rename to secretmanager/snippets/get_secret_version_trace_cloud_trace_test.py index 01690e3c14..660fb12663 100644 --- a/secretmanager/snippets/secretmanager_trace_cloud_trace_test.py +++ b/secretmanager/snippets/get_secret_version_trace_cloud_trace_test.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Unit tests for secretmanager_trace_cloud_trace snippet.""" +"""Unit tests for get_secret_version_trace_cloud_trace snippet.""" import os import sys @@ -45,10 +45,10 @@ def shutdown(self): mock_module.CloudTraceSpanExporter = MockCloudTraceSpanExporter sys.modules["opentelemetry.exporter.cloud_trace"] = mock_module -# flake8: E402 is ignored here because we must patch sys.modules with a mock -# CloudTraceSpanExporter before importing the snippet module in environments -# where opentelemetry-exporter-gcp-trace is not installed. -from secretmanager_trace_cloud_trace import ( # noqa: E402 +# flake8: E402 and I100 are ignored here because we must patch sys.modules with +# a mock CloudTraceSpanExporter before importing the snippet module in +# environments where opentelemetry-exporter-gcp-trace is not installed. +from get_secret_version_trace_cloud_trace import ( # noqa: E402, I100 get_secret_version_cloud_trace, ) @@ -69,7 +69,7 @@ def patched_init(self, *args, **kwargs): monkeypatch.setattr(SecretManagerServiceGrpcTransport, "__init__", patched_init) with mock.patch( - "secretmanager_trace_cloud_trace.CloudTraceSpanExporter" + "get_secret_version_trace_cloud_trace.CloudTraceSpanExporter" ) as mock_cloud_exporter_cls: instance = MockCloudTraceSpanExporter() mock_cloud_exporter_cls.return_value = instance diff --git a/secretmanager/snippets/secretmanager_trace_test.py b/secretmanager/snippets/get_secret_version_trace_test.py similarity index 88% rename from secretmanager/snippets/secretmanager_trace_test.py rename to secretmanager/snippets/get_secret_version_trace_test.py index 0deedd3097..1b2f058dd7 100644 --- a/secretmanager/snippets/secretmanager_trace_test.py +++ b/secretmanager/snippets/get_secret_version_trace_test.py @@ -13,11 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Unit tests for secretmanager_trace snippet.""" +"""Unit tests for get_secret_version_trace snippet.""" import os from unittest import mock +from get_secret_version_trace import ( + get_secret_version_with_tracing, +) from google.api_core.client_options import ClientOptions from google.api_core.gapic_v1 import method from google.cloud import secretmanager @@ -26,8 +29,6 @@ ) import grpc -from secretmanager_trace import get_secret_version_with_tracing - # Ensure OTel tracing capabilities are enabled in the environment os.environ["GOOGLE_SDK_EXPERIMENTAL_PYTHON_TRACING_ENABLED"] = "true" os.environ["GOOGLE_SDK_PYTHON_TRACING_ENABLED"] = "true" @@ -51,7 +52,10 @@ def patched_init(self, *args, **kwargs): kind="grpc", ) - with mock.patch("secretmanager_trace.TracerProvider", return_value=provider): + with mock.patch( + "get_secret_version_trace.TracerProvider", + return_value=provider, + ): with mock.patch.object( SecretManagerServiceGrpcTransport, "__init__", patched_init ): @@ -61,11 +65,11 @@ def patched_init(self, *args, **kwargs): version_id="1", ) - # 1. Verify returned SecretVersion metadata + # Verify returned SecretVersion metadata assert version.name == "projects/test-project/secrets/my-secret/versions/1" assert version.state == secretmanager.SecretVersion.State.ENABLED - # 2. Inspect emitted spans + # Inspect emitted spans spans = exporter.get_finished_spans() assert len(spans) == 2, f"Expected 2 spans (T3 + T4), but got {len(spans)}" @@ -78,7 +82,7 @@ def patched_init(self, *args, **kwargs): t3_span = t3_spans[0] t4_span = t4_spans[0] - # 3. Verify T3 logical client span attributes + # Verify T3 logical client span attributes assert ( t3_span.name == "google.cloud.secretmanager.v1.SecretManagerService/GetSecretVersion" @@ -86,7 +90,7 @@ def patched_init(self, *args, **kwargs): assert t3_span.attributes.get("rpc.system.name") == "grpc" assert t3_span.attributes.get("rpc.response.status_code") == "OK" - # 4. Verify T4 wire attempt span attributes + # Verify T4 wire attempt span attributes assert ( t4_span.name == "google.cloud.secretmanager.v1.SecretManagerService/GetSecretVersion" @@ -98,5 +102,5 @@ def patched_init(self, *args, **kwargs): assert t4_span.attributes.get("rpc.grpc.status_code") == 0 assert t4_span.attributes.get("rpc.response.status_code") == "OK" - # 5. Verify span hierarchy / parent-child linkage + # Verify span hierarchy / parent-child linkage assert t4_span.parent.span_id == t3_span.context.span_id