Skip to content

Commit

Permalink
Bigtable: expose credential provider as a toplevel setting (#4508)
Browse files Browse the repository at this point in the history
* Bigtable: expose credential provider as a toplevel setting

* add test

* format
  • Loading branch information
igorbernstein2 authored Feb 20, 2019
1 parent e6cf8d3 commit 9902978
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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.BigtableInstanceAdminStubSettings;
import com.google.common.base.Preconditions;
import com.google.common.base.Verify;
Expand Down Expand Up @@ -60,6 +61,11 @@ public String getProjectId() {
return 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() {
Expand Down Expand Up @@ -103,6 +109,18 @@ public String getProjectId() {
return projectId;
}

/** 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.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
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.cloud.bigtable.admin.v2.stub.BigtableTableAdminStubSettings;
Expand Down Expand Up @@ -68,6 +69,11 @@ public String getInstanceId() {
return 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;
Expand Down Expand Up @@ -148,6 +154,17 @@ public String getInstanceId() {
return instanceId;
}

/** 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.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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 {
Expand All @@ -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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down Expand Up @@ -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 =
Expand Down

0 comments on commit 9902978

Please sign in to comment.