Skip to content

Commit 7271b23

Browse files
authored
fix: add operation name to x-goog-request-params in async client (#137)
Pass the operation name in the `x-goog-request-params`header. Same as #133 for the async operations client.
1 parent 7273090 commit 7271b23

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

google/api_core/operations_v1/operations_async_client.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@ async def get_operation(
120120
subclass will be raised.
121121
"""
122122
request = operations_pb2.GetOperationRequest(name=name)
123+
124+
# Add routing header
125+
metadata = metadata or []
126+
metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name}))
127+
123128
return await self._get_operation(request, retry=retry, timeout=timeout, metadata=metadata)
124129

125130
async def list_operations(
@@ -182,6 +187,10 @@ async def list_operations(
182187
# Create the request object.
183188
request = operations_pb2.ListOperationsRequest(name=name, filter=filter_)
184189

190+
# Add routing header
191+
metadata = metadata or []
192+
metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name}))
193+
185194
# Create the method used to fetch pages
186195
method = functools.partial(self._list_operations, retry=retry, timeout=timeout, metadata=metadata)
187196

@@ -246,6 +255,11 @@ async def cancel_operation(
246255
"""
247256
# Create the request object.
248257
request = operations_pb2.CancelOperationRequest(name=name)
258+
259+
# Add routing header
260+
metadata = metadata or []
261+
metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name}))
262+
249263
await self._cancel_operation(request, retry=retry, timeout=timeout, metadata=metadata)
250264

251265
async def delete_operation(
@@ -292,4 +306,9 @@ async def delete_operation(
292306
"""
293307
# Create the request object.
294308
request = operations_pb2.DeleteOperationRequest(name=name)
309+
310+
# Add routing header
311+
metadata = metadata or []
312+
metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name}))
313+
295314
await self._delete_operation(request, retry=retry, timeout=timeout, metadata=metadata)

tests/asyncio/operations_v1/test_operations_async_client.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ async def test_get_operation():
3636
operations_pb2.Operation(name="meep"))
3737
client = operations_v1.OperationsAsyncClient(mocked_channel)
3838

39-
response = await client.get_operation("name", metadata=[("x-goog-request-params", "foo")])
39+
response = await client.get_operation("name", metadata=[("header", "foo")])
4040
assert method.call_count == 1
4141
assert tuple(method.call_args_list[0])[0][0].name == "name"
42-
assert ("x-goog-request-params", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
42+
assert ("header", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
43+
assert ("x-goog-request-params", "name=name") in tuple(method.call_args_list[0])[1]["metadata"]
4344
assert response == fake_call.response
4445

4546

@@ -54,7 +55,7 @@ async def test_list_operations():
5455
mocked_channel, method, fake_call = _mock_grpc_objects(list_response)
5556
client = operations_v1.OperationsAsyncClient(mocked_channel)
5657

57-
pager = await client.list_operations("name", "filter", metadata=[("x-goog-request-params", "foo")])
58+
pager = await client.list_operations("name", "filter", metadata=[("header", "foo")])
5859

5960
assert isinstance(pager, page_iterator_async.AsyncIterator)
6061
responses = []
@@ -64,7 +65,8 @@ async def test_list_operations():
6465
assert responses == operations
6566

6667
assert method.call_count == 1
67-
assert ("x-goog-request-params", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
68+
assert ("header", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
69+
assert ("x-goog-request-params", "name=name") in tuple(method.call_args_list[0])[1]["metadata"]
6870
request = tuple(method.call_args_list[0])[0][0]
6971
assert isinstance(request, operations_pb2.ListOperationsRequest)
7072
assert request.name == "name"
@@ -77,11 +79,12 @@ async def test_delete_operation():
7779
empty_pb2.Empty())
7880
client = operations_v1.OperationsAsyncClient(mocked_channel)
7981

80-
await client.delete_operation("name", metadata=[("x-goog-request-params", "foo")])
82+
await client.delete_operation("name", metadata=[("header", "foo")])
8183

8284
assert method.call_count == 1
8385
assert tuple(method.call_args_list[0])[0][0].name == "name"
84-
assert ("x-goog-request-params", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
86+
assert ("header", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
87+
assert ("x-goog-request-params", "name=name") in tuple(method.call_args_list[0])[1]["metadata"]
8588

8689

8790
@pytest.mark.asyncio
@@ -90,8 +93,9 @@ async def test_cancel_operation():
9093
empty_pb2.Empty())
9194
client = operations_v1.OperationsAsyncClient(mocked_channel)
9295

93-
await client.cancel_operation("name", metadata=[("x-goog-request-params", "foo")])
96+
await client.cancel_operation("name", metadata=[("header", "foo")])
9497

9598
assert method.call_count == 1
9699
assert tuple(method.call_args_list[0])[0][0].name == "name"
97-
assert ("x-goog-request-params", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
100+
assert ("header", "foo") in tuple(method.call_args_list[0])[1]["metadata"]
101+
assert ("x-goog-request-params", "name=name") in tuple(method.call_args_list[0])[1]["metadata"]

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy