of("loadBalancingConfig", ImmutableList.of(grpcLbPolicy));
+ }
+}
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/package-info.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/package-info.java
new file mode 100644
index 0000000000..d5a6bea911
--- /dev/null
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2019 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.
+ */
+/**
+ * Miscellaneous developer utilities that can be executed by the developer to debug issues.
+ *
+ * These are not meant to be used as automated tests, but more so for interactive use to debug
+ * issues.
+ */
+package com.google.cloud.bigtable.misc_utilities;
From da5b6ebb794e581b1279ca8b40675af26f37f70b Mon Sep 17 00:00:00 2001
From: Igor Bernstein
Date: Tue, 12 Nov 2019 12:33:30 -0500
Subject: [PATCH 09/13] chore: Ignore gapic settings for all streaming RPCs
(#79)
* chore: Ignore gapic settings for all streaming RPCs
This is to prepare for upcoming changes that will move simple retries to gRPC.
When this happens we want to retain retry settings at the client level, so they are copied into the manual settings wrapper.
See cl/277568516 for more details
* fix typo & remove noise from a test
---
.../v2/stub/EnhancedBigtableStubSettings.java | 35 ++++++++++++-------
.../v2/stub/readrows/ReadRowsRetryTest.java | 6 ++--
2 files changed, 27 insertions(+), 14 deletions(-)
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 a08bb6bffd..a23cf780c5 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
@@ -102,6 +102,25 @@ public class EnhancedBigtableStubSettings extends StubSettings READ_ROWS_RETRY_CODES =
+ ImmutableSet.builder().addAll(IDEMPOTENT_RETRY_CODES).add(Code.ABORTED).build();
+
+ private static final RetrySettings READ_ROWS_RETRY_SETTINGS =
+ RetrySettings.newBuilder()
+ .setInitialRetryDelay(Duration.ofMillis(10))
+ .setRetryDelayMultiplier(2.0)
+ .setMaxRetryDelay(Duration.ofMinutes(1))
+ .setJittered(true)
+ .setInitialRpcTimeout(Duration.ofMinutes(5))
+ .setRpcTimeoutMultiplier(2.0)
+ .setMaxRpcTimeout(Duration.ofMinutes(5))
+ .setTotalTimeout(Duration.ofHours(12))
+ .build();
+
private static final RetrySettings MUTATE_ROWS_RETRY_SETTINGS =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(10))
@@ -441,17 +460,9 @@ private Builder() {
// Per-method settings using baseSettings for defaults.
readRowsSettings = ServerStreamingCallSettings.newBuilder();
- // Allow retrying ABORTED statuses. These will be returned by the server when the client is
- // too slow to read the rows. This makes sense for the java client because retries happen
- // after the row merging logic. Which means that the retry will not be invoked until the
- // current buffered chunks are consumed.
readRowsSettings
- .setRetryableCodes(
- ImmutableSet.builder()
- .addAll(baseDefaults.readRowsSettings().getRetryableCodes())
- .add(Code.ABORTED)
- .build())
- .setRetrySettings(baseDefaults.readRowsSettings().getRetrySettings())
+ .setRetryableCodes(READ_ROWS_RETRY_CODES)
+ .setRetrySettings(READ_ROWS_RETRY_SETTINGS)
.setIdleTimeout(Duration.ofMinutes(5));
// Point reads should use same defaults as streaming reads, but with a shorter timeout
@@ -468,8 +479,8 @@ private Builder() {
sampleRowKeysSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
sampleRowKeysSettings
- .setRetryableCodes(baseDefaults.sampleRowKeysSettings().getRetryableCodes())
- .setRetrySettings(baseDefaults.sampleRowKeysSettings().getRetrySettings());
+ .setRetryableCodes(IDEMPOTENT_RETRY_CODES)
+ .setRetrySettings(IDEMPOTENT_RETRY_SETTINGS);
mutateRowSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
copyRetrySettings(baseDefaults.mutateRowSettings(), mutateRowSettings);
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
index 7639ca4ba3..96a22f5182 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/readrows/ReadRowsRetryTest.java
@@ -83,8 +83,10 @@ public void setUp() throws IOException {
}
@After
- public void tearDown() throws Exception {
- client.close();
+ public void tearDown() {
+ if (client != null) {
+ client.close();
+ }
}
@Test
From a21bf1c7e6e209a7a84f8ba55030331fc49fbb75 Mon Sep 17 00:00:00 2001
From: Igor Bernstein
Date: Tue, 12 Nov 2019 14:12:48 -0500
Subject: [PATCH 10/13] chore: improve tests (#81)
* clean up test configs
* Enable fine grained gRPC logging for integration tests
---
google-cloud-bigtable/pom.xml | 33 +++-----
.../test_helpers/env/TestEnvRule.java | 83 +++++++++++++++++--
2 files changed, 87 insertions(+), 29 deletions(-)
diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml
index d6cf031049..7bf3055a3a 100644
--- a/google-cloud-bigtable/pom.xml
+++ b/google-cloud-bigtable/pom.xml
@@ -222,6 +222,7 @@
emulator
+ ${project.build.directory}/test-grpc-logs/emulator-it
com.google.cloud.bigtable.**.it.*IT
@@ -254,6 +255,7 @@
cloud
${bigtable.cfe-data-endpoint}
${bigtable.cfe-admin-endpoint}
+ ${project.build.directory}/test-grpc-logs/prod-it
com.google.cloud.bigtable.**.it.*IT
@@ -286,6 +288,7 @@
cloud
${bigtable.directpath-data-endpoint}
${bigtable.directpath-admin-endpoint}
+ ${project.build.directory}/test-grpc-logs/directpath-it
@@ -340,42 +343,26 @@
- org.apache.maven.plugins
maven-failsafe-plugin
- 3.0.0-M3
classes
- true
- 2
+ 2C
+ true
+
false
-
-
- org.apache.maven.surefire
- surefire-junit47
- 3.0.0-M3
-
-
maven-surefire-plugin
- 3.0.0-M3
-
-
- org.apache.maven.surefire
- surefire-junit47
- 3.0.0-M3
-
-
+ classes
+ 2C
+ true
+
${skipUnitTests}
-
false
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java
index 1905f14a16..2fa2a26156 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/TestEnvRule.java
@@ -17,12 +17,25 @@
import static com.google.common.truth.TruthJUnit.assume;
+import com.google.common.base.Joiner;
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableSet;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Set;
+import java.util.logging.FileHandler;
+import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
-import org.junit.rules.ExternalResource;
+import java.util.logging.SimpleFormatter;
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
/**
- * Simple JUnit rule to start and stop the target test environment.
+ * JUnit rule to start and stop the target test environment.
*
* The environment can be specified via the system property {@code bigtable.env}. The choices
* are:
@@ -37,18 +50,40 @@
*
*
*
By default, {@code emulator} will be used
+ *
+ *
Also, when the system property {@code bigtable.grpc-log-dir} is set, it will enable fine
+ * grained gRPC logging to the configured path.
*/
-public class TestEnvRule extends ExternalResource {
+public class TestEnvRule implements TestRule {
private static final Logger LOGGER = Logger.getLogger(TestEnvRule.class.getName());
+ private static final String BIGTABLE_GRPC_LOG_DIR = System.getProperty("bigtable.grpc-log-dir");
private static final String BIGTABLE_EMULATOR_HOST_ENV_VAR = "BIGTABLE_EMULATOR_HOST";
private static final String ENV_PROPERTY = "bigtable.env";
private static final String env = System.getProperty(ENV_PROPERTY, "emulator");
private AbstractTestEnv testEnv;
+ private Handler grpcLogHandler;
+ private static final Set GRPC_LOGGER_NAMES =
+ ImmutableSet.of("io.grpc", "io.grpc.netty.shaded");
+
@Override
- protected void before() throws Throwable {
+ public Statement apply(final Statement base, final Description description) {
+ return new Statement() {
+ public void evaluate() throws Throwable {
+ TestEnvRule.this.before(description);
+
+ try {
+ base.evaluate();
+ } finally {
+ TestEnvRule.this.after();
+ }
+ }
+ };
+ }
+
+ protected void before(Description description) throws Throwable {
assume()
.withMessage(
"Integration tests can't run with the BIGTABLE_EMULATOR_HOST environment variable set"
@@ -56,6 +91,8 @@ protected void before() throws Throwable {
.that(System.getenv())
.doesNotContainKey(BIGTABLE_EMULATOR_HOST_ENV_VAR);
+ configureLogging(description);
+
switch (env) {
case "emulator":
testEnv = EmulatorEnv.createBundled();
@@ -72,8 +109,29 @@ protected void before() throws Throwable {
testEnv.start();
}
- @Override
- protected void after() {
+ private void configureLogging(Description description) throws IOException {
+ if (Strings.isNullOrEmpty(BIGTABLE_GRPC_LOG_DIR)) {
+ return;
+ }
+
+ Files.createDirectories(Paths.get(BIGTABLE_GRPC_LOG_DIR));
+
+ String basename =
+ Joiner.on("-").useForNull("").join(description.getClassName(), description.getMethodName());
+ Path logPath = Paths.get(BIGTABLE_GRPC_LOG_DIR, basename + ".log");
+
+ grpcLogHandler = new FileHandler(logPath.toString());
+ grpcLogHandler.setFormatter(new SimpleFormatter());
+ grpcLogHandler.setLevel(Level.ALL);
+
+ for (String grpcLoggerName : GRPC_LOGGER_NAMES) {
+ Logger logger = Logger.getLogger(grpcLoggerName);
+ logger.setLevel(Level.ALL);
+ logger.addHandler(grpcLogHandler);
+ }
+ }
+
+ private void after() {
try {
env().cleanUpStale();
} catch (Exception e) {
@@ -86,6 +144,19 @@ protected void after() {
LOGGER.log(Level.WARNING, "Failed to stop the environment", e);
}
testEnv = null;
+ teardownLogging();
+ }
+
+ private void teardownLogging() {
+ if (grpcLogHandler == null) {
+ return;
+ }
+
+ for (String grpcLoggerName : GRPC_LOGGER_NAMES) {
+ Logger.getLogger(grpcLoggerName).removeHandler(grpcLogHandler);
+ }
+ grpcLogHandler.flush();
+ grpcLogHandler = null;
}
public AbstractTestEnv env() {
From f5f70e09cb5c6fc6b95c3849e4a68cd648fe0d9c Mon Sep 17 00:00:00 2001
From: Igor Bernstein
Date: Tue, 12 Nov 2019 17:11:24 -0500
Subject: [PATCH 11/13] chore: fix tests (#83)
* chore: fix tests
* Fix bug in the instance admin IT. This was unnoticed because our presubmits target a development instance (I just changed that)
* Move auto-value back as a provided dep in the main dependency list. This caused issues in intellij when annotation processing was disabled
* deflake cluster creation test
* disable parallel unit tests until autogen tests use https://github.com/googleapis/gapic-generator/pull/3028
---
google-cloud-bigtable/pom.xml | 11 +++---
.../v2/it/BigtableInstanceAdminClientIT.java | 34 +++++++++----------
pom.xml | 12 +++----
3 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml
index 7bf3055a3a..89e2888a61 100644
--- a/google-cloud-bigtable/pom.xml
+++ b/google-cloud-bigtable/pom.xml
@@ -62,6 +62,11 @@
com.google.api.grpc
proto-google-iam-v1
+
+ com.google.auto.value
+ auto-value
+ provided
+
com.google.auto.value
auto-value-annotations
@@ -338,7 +343,7 @@
grpc-grpclb is used at runtime using reflection
grpc-auth is not directly used transitively, but is pulled to align with other grpc parts
-->
- io.grpc:grpc-auth,io.grpc:grpc-grpclb
+ io.grpc:grpc-auth,io.grpc:grpc-grpclb,com.google.auto.value:auto-value
@@ -357,10 +362,6 @@
maven-surefire-plugin
- classes
- 2C
- true
-
${skipUnitTests}
false
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java
index a7f6b7f5fe..268cb3810a 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java
@@ -27,6 +27,7 @@
import com.google.cloud.bigtable.admin.v2.models.CreateClusterRequest;
import com.google.cloud.bigtable.admin.v2.models.CreateInstanceRequest;
import com.google.cloud.bigtable.admin.v2.models.Instance;
+import com.google.cloud.bigtable.admin.v2.models.Instance.Type;
import com.google.cloud.bigtable.admin.v2.models.StorageType;
import com.google.cloud.bigtable.admin.v2.models.UpdateAppProfileRequest;
import com.google.cloud.bigtable.admin.v2.models.UpdateInstanceRequest;
@@ -110,18 +111,18 @@ public void iamUpdateTest() {
assertThat(permissions).hasSize(2);
}
+ /** To optimize test run time, instance & cluster creation is tested at the same time */
@Test
- public void instanceCreationDeletionTest() {
+ public void instanceAndClusterCreationDeletionTest() {
String newInstanceId = AbstractTestEnv.TEST_INSTANCE_PREFIX + Instant.now().getEpochSecond();
String newClusterId = newInstanceId + "-c1";
client.createInstance(
CreateInstanceRequest.of(newInstanceId)
- .addDevelopmentCluster(
- newClusterId, testEnvRule.env().getPrimaryZone(), StorageType.SSD)
+ .addCluster(newClusterId, testEnvRule.env().getPrimaryZone(), 3, StorageType.SSD)
.setDisplayName("Fresh-Instance-Name")
.addLabel("state", "readytodelete")
- .setType(Instance.Type.DEVELOPMENT));
+ .setType(Type.PRODUCTION));
try {
assertThat(client.exists(newInstanceId)).isTrue();
@@ -134,6 +135,8 @@ public void instanceCreationDeletionTest() {
assertThat(client.listInstances()).contains(instance);
+ clusterCreationDeletionTestHelper(newInstanceId);
+
client.deleteInstance(newInstanceId);
assertThat(client.exists(newInstanceId)).isFalse();
} finally {
@@ -143,29 +146,25 @@ public void instanceCreationDeletionTest() {
}
}
- @Test
- public void clusterCreationDeletionTest() {
- Instance currentInstance = client.getInstance(instanceId);
- assume()
- .withMessage("cluster replication test can only run on PRODUCTION instance")
- .that(currentInstance.getType())
- .isEqualTo(Instance.Type.PRODUCTION);
-
+ // To improve test runtime, piggyback off the instance creation/deletion test's fresh instance.
+ // This will avoid the need to copy any existing tables and will also reduce flakiness in case a
+ // previous run failed to clean up a cluster in the secondary zone.
+ public void clusterCreationDeletionTestHelper(String newInstanceId) {
String newClusterId = AbstractTestEnv.TEST_CLUSTER_PREFIX + Instant.now().getEpochSecond();
boolean isClusterDeleted = false;
client.createCluster(
- CreateClusterRequest.of(instanceId, newClusterId)
+ CreateClusterRequest.of(newInstanceId, newClusterId)
.setZone(testEnvRule.env().getSecondaryZone())
.setStorageType(StorageType.SSD)
.setServeNodes(3));
try {
- assertThat(client.getCluster(instanceId, newClusterId)).isNotNull();
+ assertThat(client.getCluster(newInstanceId, newClusterId)).isNotNull();
- client.deleteCluster(instanceId, newClusterId);
+ client.deleteCluster(newInstanceId, newClusterId);
isClusterDeleted = true;
} finally {
if (!isClusterDeleted) {
- client.deleteCluster(instanceId, newClusterId);
+ client.deleteCluster(newInstanceId, newClusterId);
}
}
}
@@ -203,7 +202,8 @@ public void basicClusterOperationTest() {
Cluster resizeCluster = client.resizeCluster(instanceId, clusterId, freshNumOfNodes);
assertThat(resizeCluster.getServeNodes()).isEqualTo(freshNumOfNodes);
- assertThat(client.resizeCluster(instanceId, clusterId, existingClusterNodeSize))
+ assertThat(
+ client.resizeCluster(instanceId, clusterId, existingClusterNodeSize).getServeNodes())
.isEqualTo(existingClusterNodeSize);
}
}
diff --git a/pom.xml b/pom.xml
index 9faf2221f7..c1322048e8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -234,6 +234,11 @@
proto-google-iam-v1
0.13.0
+
+ com.google.auto.value
+ auto-value
+ ${autovalue.version}
+
com.google.auto.value
auto-value-annotations
@@ -345,13 +350,6 @@
1.7
UTF-8
-Xlint:unchecked
-
-
- com.google.auto.value
- auto-value
- ${autovalue.version}
-
-
From 03fa9887ba8d718b1ab9b2b345255a780f8540f6 Mon Sep 17 00:00:00 2001
From: Igor Bernstein
Date: Wed, 13 Nov 2019 11:03:04 -0500
Subject: [PATCH 12/13] chore: update basicClusterOperationTest to be more
robust (#84)
* chore: update basicClusterOperationTest to be more robust
The updated version will be run as part of the instance creation test, this will minimize the contention on the shared instance
* typo
---
.../v2/it/BigtableInstanceAdminClientIT.java | 39 ++++++++++---------
.../cloud/bigtable/data/v2/it/LargeRowIT.java | 7 +++-
2 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java
index 268cb3810a..f31654334d 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/it/BigtableInstanceAdminClientIT.java
@@ -17,6 +17,7 @@
import static com.google.cloud.bigtable.test_helpers.env.AbstractTestEnv.TEST_APP_PREFIX;
import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
import static com.google.common.truth.TruthJUnit.assume;
import com.google.cloud.Policy;
@@ -136,6 +137,7 @@ public void instanceAndClusterCreationDeletionTest() {
assertThat(client.listInstances()).contains(instance);
clusterCreationDeletionTestHelper(newInstanceId);
+ basicClusterOperationTestHelper(newInstanceId, newClusterId);
client.deleteInstance(newInstanceId);
assertThat(client.exists(newInstanceId)).isFalse();
@@ -149,7 +151,7 @@ public void instanceAndClusterCreationDeletionTest() {
// To improve test runtime, piggyback off the instance creation/deletion test's fresh instance.
// This will avoid the need to copy any existing tables and will also reduce flakiness in case a
// previous run failed to clean up a cluster in the secondary zone.
- public void clusterCreationDeletionTestHelper(String newInstanceId) {
+ private void clusterCreationDeletionTestHelper(String newInstanceId) {
String newClusterId = AbstractTestEnv.TEST_CLUSTER_PREFIX + Instant.now().getEpochSecond();
boolean isClusterDeleted = false;
client.createCluster(
@@ -184,27 +186,26 @@ public void basicInstanceOperationTest() {
assertThat(client.listInstances()).contains(instance);
}
- /* As cluster creation is very expensive operation, so reusing existing clusters to verify rest
- of the operation.*/
- @Test
- public void basicClusterOperationTest() {
- List clusters = client.listClusters(instanceId);
- assertThat(clusters).isNotEmpty();
+ // To improve test runtime, piggyback off the instance creation/deletion test's fresh instance.
+ private void basicClusterOperationTestHelper(String targetInstanceId, String targetClusterId) {
+ List clusters = client.listClusters(targetInstanceId);
- Cluster existingCluster = clusters.get(0);
- String clusterId = existingCluster.getId();
- assertThat(client.getCluster(instanceId, clusterId)).isEqualTo(existingCluster);
+ Cluster targetCluster = null;
+ for (Cluster cluster : clusters) {
+ if (cluster.getId().equals(targetClusterId)) {
+ targetCluster = cluster;
+ }
+ }
+ assertWithMessage("Failed to find target cluster id in listClusters")
+ .that(targetCluster)
+ .isNotNull();
- if (Instance.Type.PRODUCTION.equals(client.getInstance(instanceId).getType())) {
- int existingClusterNodeSize = existingCluster.getServeNodes();
- int freshNumOfNodes = existingClusterNodeSize + 1;
+ assertThat(client.getCluster(targetInstanceId, targetClusterId)).isEqualTo(targetCluster);
- Cluster resizeCluster = client.resizeCluster(instanceId, clusterId, freshNumOfNodes);
- assertThat(resizeCluster.getServeNodes()).isEqualTo(freshNumOfNodes);
+ int freshNumOfNodes = targetCluster.getServeNodes() + 1;
- assertThat(
- client.resizeCluster(instanceId, clusterId, existingClusterNodeSize).getServeNodes())
- .isEqualTo(existingClusterNodeSize);
- }
+ Cluster resizeCluster =
+ client.resizeCluster(targetInstanceId, targetClusterId, freshNumOfNodes);
+ assertThat(resizeCluster.getServeNodes()).isEqualTo(freshNumOfNodes);
}
}
diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/LargeRowIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/LargeRowIT.java
index 09e3b02539..4ccf9167f4 100644
--- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/LargeRowIT.java
+++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/LargeRowIT.java
@@ -25,6 +25,7 @@
import java.util.Random;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
+import java.util.logging.Logger;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -32,7 +33,9 @@
@RunWith(JUnit4.class)
public class LargeRowIT {
- @ClassRule public static TestEnvRule testEnvRule = new TestEnvRule();
+ private static final Logger logger = Logger.getLogger(LargeRowIT.class.getName());
+
+ @ClassRule public static final TestEnvRule testEnvRule = new TestEnvRule();
@Test
public void testWriteRead() throws Exception {
@@ -45,6 +48,7 @@ public void testWriteRead() throws Exception {
ByteString largeValue = ByteString.copyFrom(largeValueBytes);
// Create a 200 MB row
+ logger.info("Sending large row, this will take awhile");
for (int i = 0; i < 2; i++) {
testEnvRule
.env()
@@ -55,6 +59,7 @@ public void testWriteRead() throws Exception {
.get(10, TimeUnit.MINUTES);
}
+ logger.info("Reading large row, this will take awhile");
// Read it back
Row row =
testEnvRule
From 56a91ea492c2ea6993e4c1b0b542a8d861ccb322 Mon Sep 17 00:00:00 2001
From: "release-please[bot]"
<55107282+release-please[bot]@users.noreply.github.com>
Date: Wed, 13 Nov 2019 11:28:41 -0500
Subject: [PATCH 13/13] chore: release 1.7.1 (#74)
* updated CHANGELOG.md [ci skip]
* updated README.md [ci skip]
* updated versions.txt [ci skip]
* updated google-cloud-bigtable/pom.xml [ci skip]
* updated pom.xml [ci skip]
* updated google-cloud-bigtable-bom/pom.xml [ci skip]
* updated google-cloud-bigtable-emulator/pom.xml [ci skip]
* updated grpc-google-cloud-bigtable-admin-v2/pom.xml [ci skip]
* updated grpc-google-cloud-bigtable-v2/pom.xml [ci skip]
* updated proto-google-cloud-bigtable-admin-v2/pom.xml [ci skip]
* updated proto-google-cloud-bigtable-v2/pom.xml [ci skip]
---
CHANGELOG.md | 7 +++++++
README.md | 6 +++---
google-cloud-bigtable-bom/pom.xml | 14 +++++++-------
google-cloud-bigtable-emulator/pom.xml | 4 ++--
google-cloud-bigtable/pom.xml | 4 ++--
grpc-google-cloud-bigtable-admin-v2/pom.xml | 4 ++--
grpc-google-cloud-bigtable-v2/pom.xml | 4 ++--
pom.xml | 12 ++++++------
proto-google-cloud-bigtable-admin-v2/pom.xml | 4 ++--
proto-google-cloud-bigtable-v2/pom.xml | 4 ++--
versions.txt | 12 ++++++------
11 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ea7ef9a811..3ede5c2ecf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+### [1.7.1](https://www.github.com/googleapis/java-bigtable/compare/v1.7.0...v1.7.1) (2019-11-13)
+
+
+### Dependencies
+
+* update gax.version to v1.50.1 ([#72](https://www.github.com/googleapis/java-bigtable/issues/72)) ([eb44a19](https://www.github.com/googleapis/java-bigtable/commit/eb44a19ccaed342b84dec80048802641dfd6609e))
+
## [1.7.0](https://www.github.com/googleapis/java-bigtable/compare/v1.6.0...v1.7.0) (2019-11-07)
diff --git a/README.md b/README.md
index a7a16a6039..895e3b5fb6 100644
--- a/README.md
+++ b/README.md
@@ -17,16 +17,16 @@ If you are using Maven, add this to your pom.xml file
com.google.cloud
google-cloud-bigtable
- 1.7.0
+ 1.7.1
```
If you are using Gradle, add this to your dependencies
```Groovy
-compile 'com.google.cloud:google-cloud-bigtable:1.7.0'
+compile 'com.google.cloud:google-cloud-bigtable:1.7.1'
```
If you are using SBT, add this to your dependencies
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "1.7.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-bigtable" % "1.7.1"
```
[//]: # ({x-version-update-end})
diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml
index 218781107e..bea8e3c9d8 100644
--- a/google-cloud-bigtable-bom/pom.xml
+++ b/google-cloud-bigtable-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-bigtable-bom
- 1.7.1-SNAPSHOT
+ 1.7.1
pom
com.google.cloud
@@ -72,32 +72,32 @@
com.google.cloud
google-cloud-bigtable
- 1.7.1-SNAPSHOT
+ 1.7.1
com.google.cloud
google-cloud-bigtable-emulator
- 0.116.1-SNAPSHOT
+ 0.116.1
com.google.api.grpc
grpc-google-cloud-bigtable-admin-v2
- 1.7.1-SNAPSHOT
+ 1.7.1
com.google.api.grpc
grpc-google-cloud-bigtable-v2
- 1.7.1-SNAPSHOT
+ 1.7.1
com.google.api.grpc
proto-google-cloud-bigtable-admin-v2
- 1.7.1-SNAPSHOT
+ 1.7.1
com.google.api.grpc
proto-google-cloud-bigtable-v2
- 1.7.1-SNAPSHOT
+ 1.7.1