From 3b58a4fa82e7a1e003bf119ce3b8b52b6eb52e47 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Fri, 8 May 2020 18:05:42 -0400 Subject: [PATCH] fix: set x-goog-api-client as internal header (#293) * fix: set x-goog-api-client as internal header * review feedback --- .../data/v2/stub/EnhancedBigtableStubSettings.java | 3 ++- .../cloud/bigtable/data/v2/stub/HeadersTest.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java index d653542ac..ce8b4bb2b 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubSettings.java @@ -519,7 +519,8 @@ private Builder() { setTransportChannelProvider(defaultTransportChannelProvider()); setStreamWatchdogCheckInterval(baseDefaults.getStreamWatchdogCheckInterval()); setStreamWatchdogProvider(baseDefaults.getStreamWatchdogProvider()); - setHeaderProvider(BigtableStubSettings.defaultApiClientHeaderProviderBuilder().build()); + setInternalHeaderProvider( + BigtableStubSettings.defaultApiClientHeaderProviderBuilder().build()); setTracerFactory( new OpencensusTracerFactory( diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java index 32c7eb353..c6c5740d8 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/HeadersTest.java @@ -18,6 +18,8 @@ import static com.google.common.truth.Truth.assertThat; import com.google.api.gax.batching.Batcher; +import com.google.api.gax.rpc.FixedHeaderProvider; +import com.google.api.gax.rpc.HeaderProvider; import com.google.bigtable.v2.BigtableGrpc; import com.google.bigtable.v2.CheckAndMutateRowRequest; import com.google.bigtable.v2.CheckAndMutateRowResponse; @@ -61,11 +63,14 @@ public class HeadersTest { private static final String TABLE_NAME = NameUtil.formatTableName(PROJECT_ID, INSTANCE_ID, TABLE_ID); private static final String APP_PROFILE_ID = "fake-profile"; + private static final String TEST_FIXED_HEADER_STRING = "test_fixed_header"; private static final Metadata.Key X_GOOG_REQUEST_PARAMS_KEY = Metadata.Key.of("x-goog-request-params", Metadata.ASCII_STRING_MARSHALLER); private static final Metadata.Key API_CLIENT_HEADER_KEY = Metadata.Key.of("x-goog-api-client", Metadata.ASCII_STRING_MARSHALLER); + private static final Metadata.Key TEST_FIXED_HEADER = + Metadata.Key.of(TEST_FIXED_HEADER_STRING, Metadata.ASCII_STRING_MARSHALLER); private Server server; private BlockingQueue sentMetadata = new ArrayBlockingQueue<>(10); @@ -91,9 +96,13 @@ public void setUp() throws Exception { .setInstanceId(INSTANCE_ID) .setAppProfileId(APP_PROFILE_ID); + HeaderProvider headerProvider = + FixedHeaderProvider.create(TEST_FIXED_HEADER_STRING, "test_header_value"); + // Force immediate flush settings .stubSettings() + .setHeaderProvider(headerProvider) .bulkMutateRowsSettings() .setBatchingSettings( settings @@ -172,6 +181,9 @@ private void verifyHeaderSent() { assertThat(apiClientValue).containsMatch("gl-java/[.\\d_]+"); assertThat(apiClientValue).containsMatch("gax/[.\\d_]+"); assertThat(apiClientValue).containsMatch("grpc/[.\\d_]+"); + + String fixedHeader = metadata.get(TEST_FIXED_HEADER); + assertThat(fixedHeader).isEqualTo("test_header_value"); } private class MetadataInterceptor implements ServerInterceptor {