From 97cef4ad1db55938715f9ac8000d1b0ad1e71873 Mon Sep 17 00:00:00 2001 From: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Date: Mon, 25 Jan 2021 12:49:39 -0700 Subject: [PATCH] fix: add operation name to x-goog-request-params (#133) --- .../operations_v1/operations_client.py | 19 ++++++++++++++++++ .../operations_v1/test_operations_client.py | 20 +++++++++++-------- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/google/api_core/operations_v1/operations_client.py b/google/api_core/operations_v1/operations_client.py index b8507964..b1218cfe 100644 --- a/google/api_core/operations_v1/operations_client.py +++ b/google/api_core/operations_v1/operations_client.py @@ -134,6 +134,11 @@ def get_operation( subclass will be raised. """ request = operations_pb2.GetOperationRequest(name=name) + + # Add routing header + metadata = metadata or [] + metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name})) + return self._get_operation(request, retry=retry, timeout=timeout, metadata=metadata) def list_operations( @@ -196,6 +201,10 @@ def list_operations( # Create the request object. request = operations_pb2.ListOperationsRequest(name=name, filter=filter_) + # Add routing header + metadata = metadata or [] + metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name})) + # Create the method used to fetch pages method = functools.partial(self._list_operations, retry=retry, timeout=timeout, metadata=metadata) @@ -260,6 +269,11 @@ def cancel_operation( """ # Create the request object. request = operations_pb2.CancelOperationRequest(name=name) + + # Add routing header + metadata = metadata or [] + metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name})) + self._cancel_operation(request, retry=retry, timeout=timeout, metadata=metadata) def delete_operation( @@ -306,4 +320,9 @@ def delete_operation( """ # Create the request object. request = operations_pb2.DeleteOperationRequest(name=name) + + # Add routing header + metadata = metadata or [] + metadata.append(gapic_v1.routing_header.to_grpc_metadata({"name": name})) + self._delete_operation(request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/tests/unit/operations_v1/test_operations_client.py b/tests/unit/operations_v1/test_operations_client.py index bd7f3736..ed19b7f3 100644 --- a/tests/unit/operations_v1/test_operations_client.py +++ b/tests/unit/operations_v1/test_operations_client.py @@ -24,9 +24,10 @@ def test_get_operation(): client = operations_v1.OperationsClient(channel) channel.GetOperation.response = operations_pb2.Operation(name="meep") - response = client.get_operation("name", metadata=[("x-goog-request-params", "foo")]) + response = client.get_operation("name", metadata=[("header", "foo")]) - assert ("x-goog-request-params", "foo") in channel.GetOperation.calls[0].metadata + assert ("header", "foo") in channel.GetOperation.calls[0].metadata + assert ("x-goog-request-params", "name=name") in channel.GetOperation.calls[0].metadata assert len(channel.GetOperation.requests) == 1 assert channel.GetOperation.requests[0].name == "name" assert response == channel.GetOperation.response @@ -42,12 +43,13 @@ def test_list_operations(): list_response = operations_pb2.ListOperationsResponse(operations=operations) channel.ListOperations.response = list_response - response = client.list_operations("name", "filter", metadata=[("x-goog-request-params", "foo")]) + response = client.list_operations("name", "filter", metadata=[("header", "foo")]) assert isinstance(response, page_iterator.Iterator) assert list(response) == operations - assert ("x-goog-request-params", "foo") in channel.ListOperations.calls[0].metadata + assert ("header", "foo") in channel.ListOperations.calls[0].metadata + assert ("x-goog-request-params", "name=name") in channel.ListOperations.calls[0].metadata assert len(channel.ListOperations.requests) == 1 request = channel.ListOperations.requests[0] assert isinstance(request, operations_pb2.ListOperationsRequest) @@ -60,9 +62,10 @@ def test_delete_operation(): client = operations_v1.OperationsClient(channel) channel.DeleteOperation.response = empty_pb2.Empty() - client.delete_operation("name", metadata=[("x-goog-request-params", "foo")]) + client.delete_operation("name", metadata=[("header", "foo")]) - assert ("x-goog-request-params", "foo") in channel.DeleteOperation.calls[0].metadata + assert ("header", "foo") in channel.DeleteOperation.calls[0].metadata + assert ("x-goog-request-params", "name=name") in channel.DeleteOperation.calls[0].metadata assert len(channel.DeleteOperation.requests) == 1 assert channel.DeleteOperation.requests[0].name == "name" @@ -72,8 +75,9 @@ def test_cancel_operation(): client = operations_v1.OperationsClient(channel) channel.CancelOperation.response = empty_pb2.Empty() - client.cancel_operation("name", metadata=[("x-goog-request-params", "foo")]) + client.cancel_operation("name", metadata=[("header", "foo")]) - assert ("x-goog-request-params", "foo") in channel.CancelOperation.calls[0].metadata + assert ("header", "foo") in channel.CancelOperation.calls[0].metadata + assert ("x-goog-request-params", "name=name") in channel.CancelOperation.calls[0].metadata assert len(channel.CancelOperation.requests) == 1 assert channel.CancelOperation.requests[0].name == "name"