From 7eade7146977e52eba97ad908462937483e6aa2e Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Wed, 15 Aug 2018 16:43:07 -0400 Subject: [PATCH 1/4] Bigtable: start working BigtableInstanceAdmin This is the beginning of importing work done by spollapally in: https://github.com/spollapally/google-cloud-java/tree/instance-admin-client/google-cloud-clients/google-cloud-bigtable I will be importing & finishing it piecemeal. This first PR establishes the scaffolding for the client & settings --- .../admin/v2/BigtableInstanceAdminClient.java | 108 +++++++++++++++ .../v2/BigtableInstanceAdminSettings.java | 124 ++++++++++++++++++ .../admin/v2/BigtableTableAdminSettings.java | 2 +- .../v2/BigtableInstanceAdminClientTest.java | 51 +++++++ .../v2/BigtableInstanceAdminSettingsTest.java | 68 ++++++++++ 5 files changed, 352 insertions(+), 1 deletion(-) create mode 100644 google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java create mode 100644 google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java create mode 100644 google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java create mode 100644 google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java new file mode 100644 index 000000000000..b678a459c89f --- /dev/null +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java @@ -0,0 +1,108 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigtable.admin.v2; + +import com.google.bigtable.admin.v2.ProjectName; +import com.google.cloud.bigtable.admin.v2.stub.BigtableInstanceAdminStub; +import java.io.IOException; +import javax.annotation.Nonnull; + +/** + * Client for creating, configuring and delete Cloud Bigtable instances (including AppProfiles and + * Clusters). + * + *

See the individual methods for example code. + * + *

{@code
+ * try(BigtableInstanceAdminClient client =  BigtableInstanceAdminClient.create(ProjectName.of("[PROJECT]"))) {
+ *   CreateInstanceRequest request = CreateInstanceRequest.of(ProjectName)
+ *     .addFamily("cf1")
+ *     .addFamily("cf2", GCRULES.maxVersions(10))
+ *     .addSplit(ByteString.copyFromUtf8("b"))
+ *     .addSplit(ByteString.copyFromUtf8("q"));
+ *
+ *   client.createInstance(request);
+ * }
+ * }
+ * + *

Note: close() needs to be called on the client object to clean up resources such as threads. + * In the example above, try-with-resources is used, which automatically calls close(). + * + *

This class can be customized by passing in a custom instance of BigtableInstanceAdminSettings + * to create(). For example: + * + *

To customize credentials: + * + *

{@code
+ * BigtableInstanceAdminSettings settings = BigtableInstanceAdminSettings.newBuilder()
+ *   .setProjectName(ProjectName.of("[PROJECT]"))
+ *   .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ *   .build();
+ *
+ * BigtableInstanceAdminClient client = BigtableInstanceAdminClient.create(settings);
+ * }
+ * + * To customize the endpoint: + * + *
{@code
+ * BigtableInstanceAdminSettings settings = BigtableInstanceAdminSettings.newBuilder()
+ *   .setProjectName(ProjectName.of("[PROJECT]"))
+ *   .setEndpoint(myEndpoint)
+ *   .build();
+ *
+ * BigtableInstanceAdminClient client = BigtableInstanceAdminClient.create(settings);
+ * }
+ */ +public class BigtableInstanceAdminClient implements AutoCloseable { + private final ProjectName projectName; + private final BigtableInstanceAdminStub stub; + + /** Constructs an instance of BigtableInstanceAdminClient with the given ProjectName. */ + public static BigtableInstanceAdminClient create(@Nonnull ProjectName projectName) + throws IOException { + return create(BigtableInstanceAdminSettings.newBuilder().setProjectName(projectName).build()); + } + + /** Constructs an instance of BigtableInstanceAdminClient with the given settings. */ + public static BigtableInstanceAdminClient create(@Nonnull BigtableInstanceAdminSettings settings) + throws IOException { + return create(settings.getProjectName(), settings.getStubSettings().createStub()); + } + + /** Constructs an instance of BigtableInstanceAdminClient with the given Projectname and stub. */ + public static BigtableInstanceAdminClient create(@Nonnull ProjectName projectName, + @Nonnull BigtableInstanceAdminStub stub) { + return new BigtableInstanceAdminClient(projectName, stub); + } + + + private BigtableInstanceAdminClient( + @Nonnull ProjectName projectName, @Nonnull BigtableInstanceAdminStub stub) { + this.projectName = projectName; + this.stub = stub; + } + + /** Gets the ProjectName this client is associated with. */ + public ProjectName getProjectName() { + return projectName; + } + + /** Closes the client and frees all resources associated with it (like thread pools) */ + @Override + public void close() { + stub.close(); + } +} diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java new file mode 100644 index 000000000000..6e6dcc73f620 --- /dev/null +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java @@ -0,0 +1,124 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigtable.admin.v2; + +import com.google.bigtable.admin.v2.ProjectName; +import com.google.cloud.bigtable.admin.v2.stub.BigtableInstanceAdminStubSettings; +import com.google.common.base.Preconditions; +import com.google.common.base.Verify; +import java.io.IOException; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +/** + * Settings class to configure an instance of {@link BigtableInstanceAdminClient}. + * + *

It must be configured with a {@link ProjectName} and can be used to change default RPC settings. + * + *

Example usage: + * + *

{@code
+ * BigtableInstanceAdminSettings.Builder settingsBuilder = BigtableInstanceAdminSettings.newBuilder()
+ *  .setProjectName(ProjectName.of("my-project"));
+ *
+ * settingsBuilder.stubSettings().createInstanceSettings()
+ *   .setRetrySettings(
+ *     RetrySettings.newBuilder()
+ *       .setTotalTimeout(Duration.ofMinutes(15))
+ *       .build());
+ *
+ * BigtableInstanceAdminSettings settings = settingsBuilder.build();
+ * }
+ */ +public class BigtableInstanceAdminSettings { + private final ProjectName projectName; + private final BigtableInstanceAdminStubSettings stubSettings; + + private BigtableInstanceAdminSettings(Builder builder) throws IOException { + Preconditions.checkNotNull(builder.projectName, "ProjectName must be set"); + Verify.verifyNotNull(builder.stubSettings, "stubSettings should never be null"); + + this.projectName = builder.projectName; + this.stubSettings = builder.stubSettings.build(); + } + + /** Gets the anme of the project whose instances the client will manager. */ + @Nonnull + public ProjectName getProjectName() { + return projectName; + } + + /** Gets the underlying RPC settings. */ + @Nonnull + public BigtableInstanceAdminStubSettings getStubSettings() { + return stubSettings; + } + + /** Returns a builder containing all the values of this settings class. */ + public Builder toBuilder() { + return new Builder(this); + } + + /** Returns a new builder for this class. */ + public static Builder newBuilder() { + return new Builder(); + } + + + /** Builder for BigtableInstanceAdminSettings. */ + public static final class Builder { + @Nullable + private ProjectName projectName; + private final BigtableInstanceAdminStubSettings.Builder stubSettings; + + private Builder() { + stubSettings = BigtableInstanceAdminStubSettings.newBuilder(); + } + + private Builder(BigtableInstanceAdminSettings settings) { + this.projectName = settings.projectName; + this.stubSettings = settings.stubSettings.toBuilder(); + } + + /** Sets the name of instance whose tables the client will manage. */ + public Builder setProjectName(@Nonnull ProjectName projectName) { + Preconditions.checkNotNull(projectName); + this.projectName = projectName; + return this; + } + + /** Gets the name of the project whose instances the client will manage. */ + @Nullable + public ProjectName getProjectName() { + return projectName; + } + + /** + * Returns the builder for the settings used for all RPCs. + * + *

This is meant for advanced usage. The default RPC settings are set to their recommended + * values. + */ + public BigtableInstanceAdminStubSettings.Builder stubSettings() { + return stubSettings; + } + + /** Builds an instance of the settings. */ + public BigtableInstanceAdminSettings build() throws IOException { + return new BigtableInstanceAdminSettings(this); + } + } +} diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java index 16a296ef0eee..243cdf74e5e6 100644 --- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminSettings.java @@ -26,7 +26,7 @@ /** * Settings class to configure an instance of {@link BigtableTableAdminClient}. * - *

It must be configured with an {@link InstanceName} and be used to change default RPC settings. + *

It must be configured with an {@link InstanceName} and can be used to change default RPC settings. * *

Example usage: * diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java new file mode 100644 index 000000000000..b217344f5698 --- /dev/null +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java @@ -0,0 +1,51 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigtable.admin.v2; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.bigtable.admin.v2.ProjectName; +import com.google.cloud.bigtable.admin.v2.stub.BigtableInstanceAdminStub; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class BigtableInstanceAdminClientTest { + private BigtableInstanceAdminClient adminClient; + @Mock + private BigtableInstanceAdminStub mockStub; + + @Before + public void setUp() { + adminClient = BigtableInstanceAdminClient + .create(ProjectName.of("[PROJECT]"), mockStub); + } + + @Test + public void testProjectName() { + assertThat(adminClient.getProjectName()).isEqualTo("[PROJECT]"); + } + + @Test + public void testClose() { + adminClient.close(); + Mockito.verify(mockStub).close(); + } +} diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java new file mode 100644 index 000000000000..1d7ea00ddd8d --- /dev/null +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java @@ -0,0 +1,68 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigtable.admin.v2; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.gax.rpc.StatusCode.Code; +import com.google.bigtable.admin.v2.ProjectName; +import com.google.cloud.bigtable.admin.v2.BigtableInstanceAdminSettings.Builder; +import java.io.IOException; +import org.junit.Test; + +public class BigtableInstanceAdminSettingsTest { + @Test + public void testProjectName() throws Exception { + ProjectName projectName = ProjectName.of("my-project"); + Builder builder = BigtableInstanceAdminSettings.newBuilder() + .setProjectName(projectName); + + assertThat(builder.getProjectName()).isEqualTo(projectName); + assertThat(builder.build().getProjectName()).isEqualTo(projectName); + assertThat(builder.build().toBuilder().getProjectName()).isEqualTo(projectName); + } + + @Test + public void testMissingProjectName() { + Exception actualException = null; + + try { + BigtableInstanceAdminSettings.newBuilder().build(); + } catch (Exception e) { + actualException = e; + } + + assertThat(actualException).isInstanceOf(NullPointerException.class); + } + + @Test + public void testStubSettings() throws IOException { + ProjectName projectName = ProjectName.of("my-project"); + + BigtableInstanceAdminSettings.Builder builder = BigtableInstanceAdminSettings.newBuilder() + .setProjectName(projectName); + + builder.stubSettings().createInstanceSettings() + .setRetryableCodes(Code.INVALID_ARGUMENT); + + assertThat(builder.build().getStubSettings().createInstanceSettings().getRetryableCodes()) + .containsExactly(Code.INVALID_ARGUMENT); + + assertThat(builder.build().toBuilder().build().getStubSettings().createInstanceSettings() + .getRetryableCodes()) + .containsExactly(Code.INVALID_ARGUMENT); + } +} \ No newline at end of file From 5a48415c2a3c2ef32eda9cb7ab918c003995f365 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Wed, 15 Aug 2018 20:37:39 -0400 Subject: [PATCH 2/4] Address feedback --- .../cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java | 4 ++-- .../bigtable/admin/v2/BigtableInstanceAdminClientTest.java | 2 +- .../bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java index b678a459c89f..b43910979cad 100644 --- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java @@ -27,8 +27,8 @@ *

See the individual methods for example code. * *

{@code
- * try(BigtableInstanceAdminClient client =  BigtableInstanceAdminClient.create(ProjectName.of("[PROJECT]"))) {
- *   CreateInstanceRequest request = CreateInstanceRequest.of(ProjectName)
+ * try(BigtableInstanceAdminClient client =  BigtableInstanceAdminClient.create(ProjectName.of("my-project"))) {
+ *   CreateInstanceRequest request = CreateInstanceRequest.of("my-instance")
  *     .addFamily("cf1")
  *     .addFamily("cf2", GCRULES.maxVersions(10))
  *     .addSplit(ByteString.copyFromUtf8("b"))
diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java
index b217344f5698..d76193b7afb5 100644
--- a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java
+++ b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClientTest.java
@@ -40,7 +40,7 @@ public void setUp() {
 
   @Test
   public void testProjectName() {
-    assertThat(adminClient.getProjectName()).isEqualTo("[PROJECT]");
+    assertThat(adminClient.getProjectName()).isEqualTo(ProjectName.of("[PROJECT]"));
   }
 
   @Test
diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java
index 1d7ea00ddd8d..86d757b36e31 100644
--- a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java
+++ b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java
@@ -39,8 +39,11 @@ public void testProjectName() throws Exception {
   public void testMissingProjectName() {
     Exception actualException = null;
 
+    Builder settingsBuilder = BigtableInstanceAdminSettings.newBuilder();
+    assertThat(settingsBuilder.getProjectName()).isNull();
+
     try {
-      BigtableInstanceAdminSettings.newBuilder().build();
+      settingsBuilder.build();
     } catch (Exception e) {
       actualException = e;
     }

From 351de1def8aef0d27f494755431dd9a18b78181d Mon Sep 17 00:00:00 2001
From: Igor Bernstein 
Date: Wed, 15 Aug 2018 21:28:09 -0400
Subject: [PATCH 3/4] Make classes final

---
 .../cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java    | 2 +-
 .../cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java  | 2 +-
 .../cloud/bigtable/admin/v2/BigtableTableAdminClient.java       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java
index b43910979cad..b2a2f741126d 100644
--- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java
+++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminClient.java
@@ -66,7 +66,7 @@
  * BigtableInstanceAdminClient client = BigtableInstanceAdminClient.create(settings);
  * }
*/ -public class BigtableInstanceAdminClient implements AutoCloseable { +public final class BigtableInstanceAdminClient implements AutoCloseable { private final ProjectName projectName; private final BigtableInstanceAdminStub stub; diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java index 6e6dcc73f620..cd6db65b97b4 100644 --- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettings.java @@ -43,7 +43,7 @@ * BigtableInstanceAdminSettings settings = settingsBuilder.build(); * } */ -public class BigtableInstanceAdminSettings { +public final class BigtableInstanceAdminSettings { private final ProjectName projectName; private final BigtableInstanceAdminStubSettings stubSettings; diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java index a0d2f911aa7e..19842ba93173 100644 --- a/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java @@ -92,7 +92,7 @@ * BigtableTableAdminClient client = BigtableTableAdminClient.create(tableAdminSettings); * } */ -public class BigtableTableAdminClient implements AutoCloseable { +public final class BigtableTableAdminClient implements AutoCloseable { private final BigtableTableAdminStub stub; private final InstanceName instanceName; From 482c79778cd6c84f10c38b407126200defdeb68f Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Wed, 15 Aug 2018 21:46:54 -0400 Subject: [PATCH 4/4] whitespace --- .../bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java index 86d757b36e31..fbd95ab6a0a3 100644 --- a/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java +++ b/google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableInstanceAdminSettingsTest.java @@ -68,4 +68,4 @@ public void testStubSettings() throws IOException { .getRetryableCodes()) .containsExactly(Code.INVALID_ARGUMENT); } -} \ No newline at end of file +}