From 721617b0cb80ebcd40c3aa2f6c5b86f679dad811 Mon Sep 17 00:00:00 2001 From: Mira Leung Date: Wed, 3 Feb 2021 16:52:34 -0800 Subject: [PATCH] fix(lro): Add Operation name to headers in {Get,List}Operation requests [gax-java] (#1281) * fix(lro): Add Operation name to get, list requests * fix: add name header to {Cancel,Delete}Operation --- .../longrunning/stub/GrpcOperationsStub.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java b/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java index 3466eda6a..5388109b8 100644 --- a/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java +++ b/gax-grpc/src/main/java/com/google/longrunning/stub/GrpcOperationsStub.java @@ -37,7 +37,9 @@ import com.google.api.gax.grpc.GrpcCallSettings; import com.google.api.gax.grpc.GrpcStubCallableFactory; import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.RequestParamsExtractor; import com.google.api.gax.rpc.UnaryCallable; +import com.google.common.collect.ImmutableMap; import com.google.longrunning.CancelOperationRequest; import com.google.longrunning.DeleteOperationRequest; import com.google.longrunning.GetOperationRequest; @@ -48,6 +50,7 @@ import io.grpc.MethodDescriptor; import io.grpc.protobuf.ProtoUtils; import java.io.IOException; +import java.util.Map; import java.util.concurrent.TimeUnit; /** @@ -146,19 +149,55 @@ protected GrpcOperationsStub( GrpcCallSettings getOperationTransportSettings = GrpcCallSettings.newBuilder() .setMethodDescriptor(getOperationMethodDescriptor) + .setParamsExtractor( + new RequestParamsExtractor() { + @Override + public Map extract(GetOperationRequest request) { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("name", String.valueOf(request.getName())); + return params.build(); + } + }) .build(); GrpcCallSettings listOperationsTransportSettings = GrpcCallSettings.newBuilder() .setMethodDescriptor(listOperationsMethodDescriptor) + .setParamsExtractor( + new RequestParamsExtractor() { + @Override + public Map extract(ListOperationsRequest request) { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("name", String.valueOf(request.getName())); + return params.build(); + } + }) .build(); GrpcCallSettings cancelOperationTransportSettings = GrpcCallSettings.newBuilder() .setMethodDescriptor(cancelOperationMethodDescriptor) + .setParamsExtractor( + new RequestParamsExtractor() { + @Override + public Map extract(CancelOperationRequest request) { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("name", String.valueOf(request.getName())); + return params.build(); + } + }) .build(); GrpcCallSettings deleteOperationTransportSettings = GrpcCallSettings.newBuilder() .setMethodDescriptor(deleteOperationMethodDescriptor) + .setParamsExtractor( + new RequestParamsExtractor() { + @Override + public Map extract(DeleteOperationRequest request) { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("name", String.valueOf(request.getName())); + return params.build(); + } + }) .build(); this.getOperationCallable =