Skip to content

Commit f0a6c76

Browse files
committed
feat(secretmanager): rename channel wrapper terminology to interceptor
1 parent 4c13592 commit f0a6c76

3 files changed

Lines changed: 55 additions & 47 deletions

File tree

packages/google-cloud-secret-manager/google/cloud/secretmanager_v1/services/secret_manager_service/client.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
import google.protobuf.field_mask_pb2 as field_mask_pb2 # type: ignore
7474
import google.protobuf.timestamp_pb2 as timestamp_pb2 # type: ignore
7575
from google.cloud.location import locations_pb2 # type: ignore
76-
7776
from google.cloud.secretmanager_v1.services.secret_manager_service import pagers
7877
from google.cloud.secretmanager_v1.types import resources, service
7978

@@ -619,14 +618,14 @@ def __init__(
619618
"api_audience": self._client_options.api_audience,
620619
}
621620

622-
# When OpenTelemetry tracing is enabled, obtain the channel wrapper
621+
# When OpenTelemetry tracing is enabled, obtain the channel interceptor
623622
# and pass it to the transport.
624623
if transport_init is SecretManagerServiceGrpcTransport:
625-
otel_wrapper = _observability.get_otel_channel_wrapper(
624+
otel_interceptor = _observability.get_otel_interceptor(
626625
self._client_options
627626
)
628-
if otel_wrapper is not None:
629-
transport_kwargs["wrappers"] = [otel_wrapper]
627+
if otel_interceptor is not None:
628+
transport_kwargs["interceptors"] = [otel_interceptor]
630629

631630
self._transport = transport_init(**transport_kwargs)
632631

packages/google-cloud-secret-manager/google/cloud/secretmanager_v1/services/secret_manager_service/transports/grpc.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,12 @@
2727
import grpc # type: ignore
2828
import proto # type: ignore
2929
from google.api_core import gapic_v1, grpc_helpers
30-
from google.api_core.grpc_helpers import ChannelWrapper
30+
from google.api_core.grpc_helpers import ClientInterceptor
3131
from google.auth import credentials as ga_credentials # type: ignore
3232
from google.auth.transport.grpc import SslCredentials # type: ignore
3333
from google.cloud.location import locations_pb2 # type: ignore
34-
from google.protobuf.json_format import MessageToJson
35-
3634
from google.cloud.secretmanager_v1.types import resources, service
35+
from google.protobuf.json_format import MessageToJson
3736

3837
from .base import DEFAULT_CLIENT_INFO, SecretManagerServiceTransport
3938

@@ -149,7 +148,14 @@ def __init__(
149148
client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
150149
always_use_jwt_access: Optional[bool] = False,
151150
api_audience: Optional[str] = None,
152-
wrappers: Optional[Sequence[ChannelWrapper]] = None,
151+
interceptors: Optional[
152+
Sequence[
153+
Union[
154+
ClientInterceptor,
155+
Callable[[grpc.Channel], grpc.Channel],
156+
]
157+
]
158+
] = None,
153159
) -> None:
154160
"""Instantiate the transport.
155161
@@ -200,8 +206,8 @@ def __init__(
200206
to the service that will be set when using certain 3rd party
201207
authentication flows. Audience is typically a resource identifier.
202208
If not set, the host value will be used as a default.
203-
wrappers (Optional[Sequence[ChannelWrapper]]):
204-
Additional channel wrappers (interceptors or callables) to apply to the
209+
interceptors (Optional[Sequence[Union[ClientInterceptor, Callable[[grpc.Channel], grpc.Channel]]]]):
210+
Additional interceptors (or callables that apply interceptors) to apply to the
205211
gRPC channel.
206212
207213
Raises:
@@ -279,8 +285,8 @@ def __init__(
279285
],
280286
)
281287

282-
self._grpc_channel = grpc_helpers.apply_channel_wrappers(
283-
self._grpc_channel, wrappers
288+
self._grpc_channel = grpc_helpers.apply_channel_interceptors(
289+
self._grpc_channel, interceptors
284290
)
285291

286292
self._interceptor = _LoggingClientInterceptor()

packages/google-cloud-secret-manager/tests/unit/gapic/secretmanager_v1/test_secret_manager_service.py

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,14 @@
6262
from google.auth import credentials as ga_credentials
6363
from google.auth.exceptions import MutualTLSChannelError
6464
from google.cloud.location import locations_pb2
65-
from google.oauth2 import service_account
66-
6765
from google.cloud.secretmanager_v1.services.secret_manager_service import (
6866
SecretManagerServiceAsyncClient,
6967
SecretManagerServiceClient,
7068
pagers,
7169
transports,
7270
)
7371
from google.cloud.secretmanager_v1.types import resources, service
72+
from google.oauth2 import service_account
7473

7574
CRED_INFO_JSON = {
7675
"credential_source": "/path/to/file",
@@ -480,57 +479,57 @@ def test_secret_manager_service_client_client_options(
480479
def test_secret_manager_service_client_otel_channel_injection_enabled():
481480
"""Proves that when OpenTelemetry tracing is enabled:
482481

483-
1. SecretManagerServiceClient obtains the channel wrapper via
484-
_observability.get_otel_channel_wrapper passing client_options.
485-
2. The wrapper is passed into transport kwargs under 'wrappers',
486-
allowing the Transport to apply it via apply_channel_wrappers.
482+
1. SecretManagerServiceClient obtains the channel interceptor via
483+
_observability.get_otel_interceptor passing client_options.
484+
2. The interceptor is passed into transport kwargs under 'interceptors',
485+
allowing the Transport to apply it via apply_channel_interceptors.
487486
"""
488-
mock_wrapper = mock.Mock()
487+
mock_interceptor = mock.Mock()
489488
with (
490489
mock.patch(
491-
"google.cloud.secretmanager_v1.services.secret_manager_service.client._observability.get_otel_channel_wrapper",
492-
return_value=mock_wrapper,
493-
) as mock_get_wrapper,
490+
"google.cloud.secretmanager_v1.services.secret_manager_service.client._observability.get_otel_interceptor",
491+
return_value=mock_interceptor,
492+
) as mock_get_interceptor,
494493
mock.patch.object(
495494
transports.SecretManagerServiceGrpcTransport, "__init__", return_value=None
496495
) as patched_transport_init,
497496
):
498497
client = SecretManagerServiceClient(transport="grpc")
499498

500-
mock_get_wrapper.assert_called_once_with(client._client_options)
499+
mock_get_interceptor.assert_called_once_with(client._client_options)
501500
called_kwargs = patched_transport_init.call_args.kwargs
502-
assert "wrappers" in called_kwargs
503-
assert called_kwargs["wrappers"] == [mock_wrapper]
501+
assert "interceptors" in called_kwargs
502+
assert called_kwargs["interceptors"] == [mock_interceptor]
504503

505504

506505
def test_secret_manager_service_client_otel_channel_injection_disabled():
507506
"""Proves that when OpenTelemetry tracing is disabled:
508507

509-
1. SecretManagerServiceClient checks for an OTel wrapper and receives None.
510-
2. No 'wrappers' argument is passed to the transport constructor.
508+
1. SecretManagerServiceClient checks for an OTel interceptor and receives None.
509+
2. No 'interceptors' argument is passed to the transport constructor.
511510
"""
512511
with (
513512
mock.patch(
514-
"google.cloud.secretmanager_v1.services.secret_manager_service.client._observability.get_otel_channel_wrapper",
513+
"google.cloud.secretmanager_v1.services.secret_manager_service.client._observability.get_otel_interceptor",
515514
return_value=None,
516-
) as mock_get_wrapper,
515+
) as mock_get_interceptor,
517516
mock.patch.object(
518517
transports.SecretManagerServiceGrpcTransport, "__init__", return_value=None
519518
) as patched_transport_init,
520519
):
521520
client = SecretManagerServiceClient(transport="grpc")
522521

523-
mock_get_wrapper.assert_called_once_with(client._client_options)
522+
mock_get_interceptor.assert_called_once_with(client._client_options)
524523
called_kwargs = patched_transport_init.call_args.kwargs
525-
assert "wrappers" not in called_kwargs
524+
assert "interceptors" not in called_kwargs
526525

527526

528-
def test_secret_manager_service_grpc_transport_wrappers():
529-
"""Proves that SecretManagerServiceGrpcTransport accepts channel wrappers
530-
and invokes grpc_helpers.apply_channel_wrappers to apply them to the underlying
527+
def test_secret_manager_service_grpc_transport_interceptors():
528+
"""Proves that SecretManagerServiceGrpcTransport accepts channel interceptors
529+
and invokes grpc_helpers.apply_channel_interceptors to apply them to the underlying
531530
gRPC channel.
532531
"""
533-
mock_wrapper = mock.Mock()
532+
mock_interceptor = mock.Mock()
534533
mock_channel = mock.Mock()
535534

536535
with (
@@ -540,34 +539,38 @@ def test_secret_manager_service_grpc_transport_wrappers():
540539
return_value=mock_channel,
541540
),
542541
mock.patch(
543-
"google.api_core.grpc_helpers.apply_channel_wrappers",
542+
"google.api_core.grpc_helpers.apply_channel_interceptors",
544543
return_value=mock_channel,
545-
) as mock_apply_wrappers,
544+
) as mock_apply_interceptors,
546545
):
547546
transports.SecretManagerServiceGrpcTransport(
548-
wrappers=[mock_wrapper],
547+
interceptors=[mock_interceptor],
549548
)
550549

551-
mock_apply_wrappers.assert_called_once_with(mock_channel, [mock_wrapper])
550+
mock_apply_interceptors.assert_called_once_with(
551+
mock_channel, [mock_interceptor]
552+
)
552553

553554

554-
def test_secret_manager_service_grpc_transport_custom_channel_wrappers():
555+
def test_secret_manager_service_grpc_transport_custom_channel_interceptors():
555556
"""Proves that SecretManagerServiceGrpcTransport wraps explicitly passed custom channels
556-
using grpc_helpers.apply_channel_wrappers.
557+
using grpc_helpers.apply_channel_interceptors.
557558
"""
558-
mock_wrapper = mock.Mock()
559+
mock_interceptor = mock.Mock()
559560
mock_custom_channel = mock.Mock(spec=grpc.Channel)
560561

561562
with mock.patch(
562-
"google.api_core.grpc_helpers.apply_channel_wrappers",
563+
"google.api_core.grpc_helpers.apply_channel_interceptors",
563564
return_value=mock_custom_channel,
564-
) as mock_apply_wrappers:
565+
) as mock_apply_interceptors:
565566
transports.SecretManagerServiceGrpcTransport(
566567
channel=mock_custom_channel,
567-
wrappers=[mock_wrapper],
568+
interceptors=[mock_interceptor],
568569
)
569570

570-
mock_apply_wrappers.assert_called_once_with(mock_custom_channel, [mock_wrapper])
571+
mock_apply_interceptors.assert_called_once_with(
572+
mock_custom_channel, [mock_interceptor]
573+
)
571574

572575

573576
@pytest.mark.parametrize(

0 commit comments

Comments
 (0)