From a741cac5e55f6ed74fd26cf9eaed23b243ea3fbd Mon Sep 17 00:00:00 2001 From: Cody Oss <6331106+codyoss@users.noreply.github.com> Date: Thu, 7 Nov 2019 14:28:20 -0700 Subject: [PATCH 01/13] chore: release 1.7.1-SNAPSHOT (#71) * updated versions.txt [ci skip] * updated google-cloud-bigtable-bom/pom.xml [ci skip] * updated google-cloud-bigtable-emulator/pom.xml [ci skip] * updated google-cloud-bigtable/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 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] --- 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 ++++++------ 9 files changed, 31 insertions(+), 31 deletions(-) diff --git a/google-cloud-bigtable-bom/pom.xml b/google-cloud-bigtable-bom/pom.xml index cc74734ca5..218781107e 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.0 + 1.7.1-SNAPSHOT pom com.google.cloud @@ -72,32 +72,32 @@ com.google.cloud google-cloud-bigtable - 1.7.0 + 1.7.1-SNAPSHOT com.google.cloud google-cloud-bigtable-emulator - 0.116.0 + 0.116.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.7.0 + 1.7.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.7.0 + 1.7.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.7.0 + 1.7.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.7.0 + 1.7.1-SNAPSHOT diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index ede19ae289..124bfb3ded 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.116.0 + 0.116.1-SNAPSHOT Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.7.0 + 1.7.1-SNAPSHOT scm:git:git@github.com:googleapis/java-bigtable.git diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 23c66909d0..9f053e6d97 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 1.7.0 + 1.7.1-SNAPSHOT jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,7 +12,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.7.0 + 1.7.1-SNAPSHOT google-cloud-bigtable diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index 62a4a0d285..d7c01945aa 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.7.0 + 1.7.1-SNAPSHOT grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.0 + 1.7.1-SNAPSHOT diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 1ebb1045cf..24bd32b87a 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.7.0 + 1.7.1-SNAPSHOT grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.0 + 1.7.1-SNAPSHOT diff --git a/pom.xml b/pom.xml index 2378b96b63..fdc091c9bd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 1.7.0 + 1.7.1-SNAPSHOT Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -195,27 +195,27 @@ com.google.cloud google-cloud-bigtable-emulator - 0.116.0 + 0.116.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.7.0 + 1.7.1-SNAPSHOT com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.7.0 + 1.7.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.7.0 + 1.7.1-SNAPSHOT com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.7.0 + 1.7.1-SNAPSHOT diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index 23476197cc..714c76ea7d 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.7.0 + 1.7.1-SNAPSHOT proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.0 + 1.7.1-SNAPSHOT diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index 4d404e0162..126600cd4c 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.7.0 + 1.7.1-SNAPSHOT proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.0 + 1.7.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9bc4b483e2..7699541909 100644 --- a/versions.txt +++ b/versions.txt @@ -1,9 +1,9 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:1.7.0:1.7.0 -grpc-google-cloud-bigtable-admin-v2:1.7.0:1.7.0 -grpc-google-cloud-bigtable-v2:1.7.0:1.7.0 -proto-google-cloud-bigtable-admin-v2:1.7.0:1.7.0 -proto-google-cloud-bigtable-v2:1.7.0:1.7.0 -google-cloud-bigtable-emulator:0.116.0:0.116.0 +google-cloud-bigtable:1.7.0:1.7.1-SNAPSHOT +grpc-google-cloud-bigtable-admin-v2:1.7.0:1.7.1-SNAPSHOT +grpc-google-cloud-bigtable-v2:1.7.0:1.7.1-SNAPSHOT +proto-google-cloud-bigtable-admin-v2:1.7.0:1.7.1-SNAPSHOT +proto-google-cloud-bigtable-v2:1.7.0:1.7.1-SNAPSHOT +google-cloud-bigtable-emulator:0.116.0:0.116.1-SNAPSHOT From eb44a19ccaed342b84dec80048802641dfd6609e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 8 Nov 2019 17:31:11 +0100 Subject: [PATCH 02/13] deps: update gax.version to v1.50.1 (#72) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fdc091c9bd..9faf2221f7 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ https://googleapis.dev/java/google-api-grpc/latest 1.7 - 1.50.0 + 1.50.1 1.8.1 1.17.0 1.91.3 From 6e2bc12762b8a559d5804ea75edefb0971a5d10b Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Fri, 8 Nov 2019 15:18:36 -0500 Subject: [PATCH 03/13] chore: fix tests for targeting test env (#75) --- google-cloud-bigtable/pom.xml | 16 +++++++++------- .../v2/it/BigtableInstanceAdminClientIT.java | 2 +- .../data/v2/it/DirectPathFallbackIT.java | 5 +++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 9f053e6d97..816a408c0f 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -21,6 +21,13 @@ while still respecting global skipTests override. --> false ${skipTests} + + bigtable.googleapis.com:443 + bigtableadmin.googleapis.com:443 + + + testdirectpath-bigtable.sandbox.googleapis.com:443 + test-bigtableadmin.sandbox.googleapis.com:443 - true - - - - testdirectpath-bigtable.sandbox.googleapis.com:443 - test-bigtableadmin.sandbox.googleapis.com:443 + ${bigtable.directpath-data-endpoint} + ${bigtable.directpath-admin-endpoint} 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 4eb168aedf..8f626c02d9 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 @@ -117,7 +117,7 @@ public void instanceCreationDeletionTest() { client.createInstance( CreateInstanceRequest.of(newInstanceId) - .addDevelopmentCluster(newClusterId, "us-central1-a", StorageType.SSD) + .addDevelopmentCluster(newClusterId, "us-east1-b", StorageType.SSD) .setDisplayName("Fresh-Instance-Name") .addLabel("state", "readytodelete") .setType(Instance.Type.DEVELOPMENT)); diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/DirectPathFallbackIT.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/DirectPathFallbackIT.java index 781369b18d..06853cd2b0 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/DirectPathFallbackIT.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/it/DirectPathFallbackIT.java @@ -15,7 +15,6 @@ */ package com.google.cloud.bigtable.data.v2.it; -import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.TruthJUnit.assume; @@ -140,7 +139,9 @@ public void testFallback() throws InterruptedException { // Verify that the above check was meaningful, by verifying that the blackhole actually dropped // packets. - assertThat(numBlocked.get()).isGreaterThan(0); + assertWithMessage("Failed to detect any IPv6 traffic in blackhole") + .that(numBlocked.get()) + .isGreaterThan(0); // Make sure that the client will start reading from IPv6 again by sending new requests and // checking the injected IPv6 counter has been updated. From 7b8c2c8fe77619f3120593c3e64be5a904d7e47b Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Fri, 8 Nov 2019 17:12:54 -0500 Subject: [PATCH 04/13] chore: ignore CONTRIBUTING.md in synthtool (#76) --- synth.py | 1 + 1 file changed, 1 insertion(+) diff --git a/synth.py b/synth.py index 09996a63ec..4e2f045908 100644 --- a/synth.py +++ b/synth.py @@ -57,6 +57,7 @@ def main(): '.kokoro/presubmit/integration.cfg', # todo remove once template is updated '.github/ISSUE_TEMPLATE/bug_report.md', + 'CONTRIBUTING.md', ]) def generate_data_api(gapic, license): From f201997f82b7aa32f56581d6bb856b9f7bbf9b8e Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Fri, 8 Nov 2019 17:16:25 -0500 Subject: [PATCH 05/13] chore: allow prod test endpoint overrides separate from directpath (#77) --- google-cloud-bigtable/pom.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 816a408c0f..d6cf031049 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -22,8 +22,8 @@ false ${skipTests} - bigtable.googleapis.com:443 - bigtableadmin.googleapis.com:443 + bigtable.googleapis.com:443 + bigtableadmin.googleapis.com:443 testdirectpath-bigtable.sandbox.googleapis.com:443 @@ -252,6 +252,8 @@ cloud + ${bigtable.cfe-data-endpoint} + ${bigtable.cfe-admin-endpoint} com.google.cloud.bigtable.**.it.*IT From f18401296f57cfff86cde660f626f398e767acd8 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Mon, 11 Nov 2019 11:40:20 -0500 Subject: [PATCH 06/13] chore: use zones that are available in all test envs (#78) * chore: use zones that are available in all test envs * format --- .../admin/v2/it/BigtableInstanceAdminClientIT.java | 5 +++-- .../cloud/bigtable/test_helpers/env/AbstractTestEnv.java | 8 ++++++++ 2 files changed, 11 insertions(+), 2 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 8f626c02d9..a7f6b7f5fe 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 @@ -117,7 +117,8 @@ public void instanceCreationDeletionTest() { client.createInstance( CreateInstanceRequest.of(newInstanceId) - .addDevelopmentCluster(newClusterId, "us-east1-b", StorageType.SSD) + .addDevelopmentCluster( + newClusterId, testEnvRule.env().getPrimaryZone(), StorageType.SSD) .setDisplayName("Fresh-Instance-Name") .addLabel("state", "readytodelete") .setType(Instance.Type.DEVELOPMENT)); @@ -154,7 +155,7 @@ public void clusterCreationDeletionTest() { boolean isClusterDeleted = false; client.createCluster( CreateClusterRequest.of(instanceId, newClusterId) - .setZone("us-central1-f") + .setZone(testEnvRule.env().getSecondaryZone()) .setStorageType(StorageType.SSD) .setServeNodes(3)); try { diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java index 6fc9e2681a..7a1164bd1d 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java @@ -78,6 +78,14 @@ public boolean isDirectPathEnabled() { return "bigtable".equals(System.getenv("GOOGLE_CLOUD_ENABLE_DIRECT_PATH")); } + public String getPrimaryZone() { + return "us-east1-b"; + } + + public String getSecondaryZone() { + return "us-central1-b"; + } + void cleanUpStale() { cleanupStaleTables(); if (isInstanceAdminSupported()) { From 0cff0bb09e242587b87db062c55a8b4eb220fc5a Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 12 Nov 2019 10:16:06 -0500 Subject: [PATCH 07/13] chore: fix integration test zones to work across all environments (#82) --- .../cloud/bigtable/test_helpers/env/AbstractTestEnv.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java index 7a1164bd1d..97771453b7 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/test_helpers/env/AbstractTestEnv.java @@ -79,11 +79,11 @@ public boolean isDirectPathEnabled() { } public String getPrimaryZone() { - return "us-east1-b"; + return "us-central1-b"; } public String getSecondaryZone() { - return "us-central1-b"; + return "us-east1-b"; } void cleanUpStale() { From 3c4154b25dee061218c4391cf97e5a2b45ef5d3d Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 12 Nov 2019 12:33:12 -0500 Subject: [PATCH 08/13] chore: add a runnable tool that can we used to debug gRPC connection issues (#80) * chore: add a runnable tool that can we used to debug gRPC connection issues * better messaging --- .../misc_utilities/SimpleGceRawRead.java | 102 ++++++++++++++++++ .../bigtable/misc_utilities/package-info.java | 22 ++++ 2 files changed, 124 insertions(+) create mode 100644 google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/SimpleGceRawRead.java create mode 100644 google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/package-info.java diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/SimpleGceRawRead.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/SimpleGceRawRead.java new file mode 100644 index 0000000000..0847c2f807 --- /dev/null +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/misc_utilities/SimpleGceRawRead.java @@ -0,0 +1,102 @@ +/* + * 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. + */ +package com.google.cloud.bigtable.misc_utilities; + +import com.google.bigtable.v2.BigtableGrpc; +import com.google.bigtable.v2.ReadRowsRequest; +import com.google.bigtable.v2.ReadRowsResponse; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import io.grpc.ManagedChannel; +import io.grpc.alts.ComputeEngineChannelBuilder; +import java.util.Iterator; +import java.util.Map; +import java.util.logging.ConsoleHandler; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Simple utility to debug connection issues. + * + *

It enables verbose gRPC logging and does a simple read using a GCE channel builder. + * + *

{@code
+ * mvn install
+ *
+ * mvn test-compile exec:java \
+ *   -pl google-cloud-bigtable \
+ *   -Dexec.mainClass=com.google.cloud.bigtable.misc_utilities.SimpleGceRawRead \
+ *   -Dexec.classpathScope=test \
+ *   -Dbigtable.project=gcloud-devel \
+ *   -Dbigtable.instance=google-cloud-bigtable \
+ *   -Dbigtable.table=integration-tests \
+ *   -Dbigtable.data-endpoint="bigtable.googleapis.com"
+ * }
+ */ +public class SimpleGceRawRead { + + public static void main(String[] args) { + configureLogging(); + + String projectId = System.getProperty("bigtable.project", "gcloud-devel"); + String instanceId = System.getProperty("bigtable.instance", "google-cloud-bigtable"); + String tableId = System.getProperty("bigtable.table", "integration-tests"); + + String endpoint = System.getProperty("bigtable.data-endpoint", "bigtable.googleapis.com"); + String tableName = + String.format("projects/%s/instances/%s/tables/%s", projectId, instanceId, tableId); + + System.out.printf(">>>>>>>>> Trying to connect to: %s, to read %s%n%n%n", endpoint, tableName); + + ManagedChannel channel = + ComputeEngineChannelBuilder.forAddress(endpoint, 443) + .disableServiceConfigLookUp() + .defaultServiceConfig(newServiceConfig()) + .build(); + try { + BigtableGrpc.BigtableBlockingStub stub = BigtableGrpc.newBlockingStub(channel); + + Iterator iter = + stub.readRows( + ReadRowsRequest.newBuilder().setTableName(tableName).setRowsLimit(1).build()); + System.out.printf("%n%n>>>>>>>>> Success Rows Read: %d%n%n", Lists.newArrayList(iter).size()); + } finally { + channel.shutdown(); + } + } + + /** Enable verbose gRPC logging */ + private static void configureLogging() { + Logger.getLogger("io.grpc").setLevel(Level.ALL); + Logger.getLogger("io.grpc.netty.shaded").setLevel(Level.ALL); + + ConsoleHandler stderr = new ConsoleHandler(); + stderr.setLevel(Level.ALL); + + Logger.getLogger("").addHandler(stderr); + } + + private static Map newServiceConfig() { + ImmutableMap pickFirstStrategy = + ImmutableMap.of("pick_first", ImmutableMap.of()); + ImmutableMap childPolicy = + ImmutableMap.of("childPolicy", ImmutableList.of(pickFirstStrategy)); + ImmutableMap grpcLbPolicy = + ImmutableMap.of("grpclb", childPolicy); + return ImmutableMap.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 diff --git a/google-cloud-bigtable-emulator/pom.xml b/google-cloud-bigtable-emulator/pom.xml index 124bfb3ded..4d251c69e1 100644 --- a/google-cloud-bigtable-emulator/pom.xml +++ b/google-cloud-bigtable-emulator/pom.xml @@ -5,7 +5,7 @@ 4.0.0 google-cloud-bigtable-emulator - 0.116.1-SNAPSHOT + 0.116.1 Google Cloud Java - Bigtable Emulator https://github.com/googleapis/java-bigtable @@ -14,7 +14,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.7.1-SNAPSHOT + 1.7.1 scm:git:git@github.com:googleapis/java-bigtable.git diff --git a/google-cloud-bigtable/pom.xml b/google-cloud-bigtable/pom.xml index 89e2888a61..42bf77049c 100644 --- a/google-cloud-bigtable/pom.xml +++ b/google-cloud-bigtable/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigtable - 1.7.1-SNAPSHOT + 1.7.1 jar Google Cloud Bigtable https://github.com/googleapis/java-bigtable @@ -12,7 +12,7 @@ com.google.cloud google-cloud-bigtable-parent - 1.7.1-SNAPSHOT + 1.7.1 google-cloud-bigtable diff --git a/grpc-google-cloud-bigtable-admin-v2/pom.xml b/grpc-google-cloud-bigtable-admin-v2/pom.xml index d7c01945aa..e41cb94d57 100644 --- a/grpc-google-cloud-bigtable-admin-v2/pom.xml +++ b/grpc-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-admin-v2 - 1.7.1-SNAPSHOT + 1.7.1 grpc-google-cloud-bigtable-admin-v2 GRPC library for grpc-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.1-SNAPSHOT + 1.7.1 diff --git a/grpc-google-cloud-bigtable-v2/pom.xml b/grpc-google-cloud-bigtable-v2/pom.xml index 24bd32b87a..45e6a24bc6 100644 --- a/grpc-google-cloud-bigtable-v2/pom.xml +++ b/grpc-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-bigtable-v2 - 1.7.1-SNAPSHOT + 1.7.1 grpc-google-cloud-bigtable-v2 GRPC library for grpc-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.1-SNAPSHOT + 1.7.1 diff --git a/pom.xml b/pom.xml index c1322048e8..a7990efe02 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ google-cloud-bigtable-parent pom - 1.7.1-SNAPSHOT + 1.7.1 Google Cloud Bigtable Parent https://github.com/googleapis/java-bigtable @@ -195,27 +195,27 @@ 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 diff --git a/proto-google-cloud-bigtable-admin-v2/pom.xml b/proto-google-cloud-bigtable-admin-v2/pom.xml index 714c76ea7d..dbcceac78e 100644 --- a/proto-google-cloud-bigtable-admin-v2/pom.xml +++ b/proto-google-cloud-bigtable-admin-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-admin-v2 - 1.7.1-SNAPSHOT + 1.7.1 proto-google-cloud-bigtable-admin-v2 PROTO library for proto-google-cloud-bigtable-admin-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.1-SNAPSHOT + 1.7.1 diff --git a/proto-google-cloud-bigtable-v2/pom.xml b/proto-google-cloud-bigtable-v2/pom.xml index 126600cd4c..2b10bd04fd 100644 --- a/proto-google-cloud-bigtable-v2/pom.xml +++ b/proto-google-cloud-bigtable-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-bigtable-v2 - 1.7.1-SNAPSHOT + 1.7.1 proto-google-cloud-bigtable-v2 PROTO library for proto-google-cloud-bigtable-v2 com.google.cloud google-cloud-bigtable-parent - 1.7.1-SNAPSHOT + 1.7.1 diff --git a/versions.txt b/versions.txt index 7699541909..cae9503e8c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,9 +1,9 @@ # Format: # module:released-version:current-version -google-cloud-bigtable:1.7.0:1.7.1-SNAPSHOT -grpc-google-cloud-bigtable-admin-v2:1.7.0:1.7.1-SNAPSHOT -grpc-google-cloud-bigtable-v2:1.7.0:1.7.1-SNAPSHOT -proto-google-cloud-bigtable-admin-v2:1.7.0:1.7.1-SNAPSHOT -proto-google-cloud-bigtable-v2:1.7.0:1.7.1-SNAPSHOT -google-cloud-bigtable-emulator:0.116.0:0.116.1-SNAPSHOT +google-cloud-bigtable:1.7.1:1.7.1 +grpc-google-cloud-bigtable-admin-v2:1.7.1:1.7.1 +grpc-google-cloud-bigtable-v2:1.7.1:1.7.1 +proto-google-cloud-bigtable-admin-v2:1.7.1:1.7.1 +proto-google-cloud-bigtable-v2:1.7.1:1.7.1 +google-cloud-bigtable-emulator:0.116.1:0.116.1