From 6463faea425011d42a7460fcb156ad1cab5fa222 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Fri, 15 Feb 2019 14:29:44 -0500 Subject: [PATCH 1/3] Bigtable: expose credential provider as a toplevel setting --- .../v2/BigtableInstanceAdminSettings.java | 18 ++++++++++++++++++ .../admin/v2/BigtableTableAdminSettings.java | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java index e92ff7333289..f4478454ff26 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java @@ -15,6 +15,7 @@ */ package com.google.cloud.bigtable.admin.v2; +import com.google.api.gax.core.CredentialsProvider; import com.google.bigtable.admin.v2.ProjectName; import com.google.cloud.bigtable.admin.v2.stub.BigtableInstanceAdminStubSettings; import com.google.common.base.Preconditions; @@ -72,6 +73,11 @@ public com.google.bigtable.admin.v2.ProjectName getProjectName() { return ProjectName.of(projectId); } + /** Gets the CredentialsProvider to use for getting the credentials to make calls with. */ + public CredentialsProvider getCredentialsProvider() { + return stubSettings.getCredentialsProvider(); + } + /** Gets the underlying RPC settings. */ @Nonnull public BigtableInstanceAdminStubSettings getStubSettings() { @@ -139,6 +145,18 @@ public ProjectName getProjectName() { return null; } + /** Sets the CredentialsProvider to use for getting the credentials to make calls with. */ + public Builder setCredentialsProvider(CredentialsProvider credentialsProvider) { + stubSettings.setCredentialsProvider(credentialsProvider); + + return this; + } + + /** Gets the CredentialsProvider to use for getting the credentials to make calls with. */ + public CredentialsProvider getCredentialsProvider() { + return stubSettings.getCredentialsProvider(); + } + /** * Returns the builder for the settings used for all RPCs. * diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java index f613bf3f7369..b556b6eda363 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java @@ -15,6 +15,7 @@ */ package com.google.cloud.bigtable.admin.v2; +import com.google.api.gax.core.CredentialsProvider; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings; import com.google.common.base.Preconditions; import com.google.common.base.Verify; @@ -76,6 +77,11 @@ public com.google.bigtable.admin.v2.InstanceName getInstanceName() { return com.google.bigtable.admin.v2.InstanceName.of(projectId, instanceId); } + /** Gets the CredentialsProvider to use for getting the credentials to make calls with. */ + public CredentialsProvider getCredentialsProvider() { + return stubSettings.getCredentialsProvider(); + } + /** Gets the underlying RPC settings. */ public BigtableTableAdminStubSettings getStubSettings() { return stubSettings; @@ -161,6 +167,17 @@ public com.google.bigtable.admin.v2.InstanceName getInstanceName() { return null; } + /** Sets the CredentialsProvider to use for getting the credentials to make calls with. */ + public Builder setCredentialsProvider(CredentialsProvider credentialsProvider) { + stubSettings.setCredentialsProvider(credentialsProvider); + return this; + } + + /** Gets the CredentialsProvider to use for getting the credentials to make calls with. */ + public CredentialsProvider getCredentialsProvider() { + return stubSettings.getCredentialsProvider(); + } + /** * Returns the builder for the settings used for all RPCs. * From 748e68b5933a04a932c9e0750d47e409fbb7d12c Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 19 Feb 2019 14:49:18 -0500 Subject: [PATCH 2/3] add test --- .../v2/BigtableInstanceAdminSettingsTest.java | 25 ++++++++++++++++--- .../v2/BigtableTableAdminSettingsTest.java | 19 ++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java index 1567b4323a85..4b967ec796b0 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java +++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java @@ -17,16 +17,18 @@ import static com.google.common.truth.Truth.assertThat; +import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.rpc.StatusCode.Code; -import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminSettings.Builder; import java.io.IOException; import org.junit.Test; +import org.mockito.Mockito; public class BigtableInstanceAdminSettingsTest { @Test public void testProjectName() throws Exception { String projectId = "my-project"; - Builder builder = BigtableInstanceAdminSettings.newBuilder().setProjectId(projectId); + BigtableInstanceAdminSettings.Builder builder = + BigtableInstanceAdminSettings.newBuilder().setProjectId(projectId); assertThat(builder.getProjectId()).isEqualTo(projectId); assertThat(builder.build().getProjectId()).isEqualTo(projectId); @@ -37,7 +39,8 @@ public void testProjectName() throws Exception { public void testMissingProjectName() { Exception actualException = null; - Builder settingsBuilder = BigtableInstanceAdminSettings.newBuilder(); + BigtableInstanceAdminSettings.Builder settingsBuilder = + BigtableInstanceAdminSettings.newBuilder(); assertThat(settingsBuilder.getProjectId()).isNull(); try { @@ -49,6 +52,22 @@ public void testMissingProjectName() { assertThat(actualException).isInstanceOf(NullPointerException.class); } + @Test + public void testCredentials() throws IOException { + CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class); + + BigtableInstanceAdminSettings settings = + BigtableInstanceAdminSettings.newBuilder() + .setProjectId("my-project") + .setCredentialsProvider(credentialsProvider) + .build(); + + assertThat(settings.getCredentialsProvider()).isSameAs(credentialsProvider); + assertThat(settings.getStubSettings().getCredentialsProvider()).isSameAs(credentialsProvider); + assertThat(settings.toBuilder().getCredentialsProvider()).isSameAs(credentialsProvider); + assertThat(settings.toBuilder().build().getCredentialsProvider()).isSameAs(credentialsProvider); + } + @Test public void testStubSettings() throws IOException { String projectId = "my-project"; diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java index 116504c8cd6a..1967f9a90d3c 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java +++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettingsTest.java @@ -17,9 +17,11 @@ import static com.google.common.truth.Truth.assertThat; +import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.rpc.StatusCode.Code; import java.io.IOException; import org.junit.Test; +import org.mockito.Mockito; public class BigtableTableAdminSettingsTest { @@ -51,6 +53,23 @@ public void testMissingInstanceName() { assertThat(actualException).isInstanceOf(NullPointerException.class); } + @Test + public void testCredentials() throws IOException { + CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class); + + BigtableTableAdminSettings settings = + BigtableTableAdminSettings.newBuilder() + .setProjectId("my-project") + .setInstanceId("my-instance") + .setCredentialsProvider(credentialsProvider) + .build(); + + assertThat(settings.getCredentialsProvider()).isSameAs(credentialsProvider); + assertThat(settings.getStubSettings().getCredentialsProvider()).isSameAs(credentialsProvider); + assertThat(settings.toBuilder().getCredentialsProvider()).isSameAs(credentialsProvider); + assertThat(settings.toBuilder().build().getCredentialsProvider()).isSameAs(credentialsProvider); + } + @Test public void testStubSettings() throws IOException { BigtableTableAdminSettings.Builder builder = From df0874b3431323e00e9d60d10b808b1e6c38adc1 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Wed, 20 Feb 2019 10:32:45 -0500 Subject: [PATCH 3/3] format --- .../cloud/bigtable/admin/v2/BigtableTableAdminSettings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java index b38f5a72ea5f..a336a3c5d41a 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java @@ -16,9 +16,9 @@ package com.google.cloud.bigtable.admin.v2; import com.google.api.core.ApiFunction; +import com.google.api.gax.core.CredentialsProvider; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; -import com.google.api.gax.core.CredentialsProvider; import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings; import com.google.common.base.Preconditions; import com.google.common.base.Verify;