diff --git a/CHANGELOG.md b/CHANGELOG.md index d9cbf72760b..06fb0b10560 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [6.29.1](https://github.com/googleapis/java-spanner/compare/v6.29.0...v6.29.1) (2022-09-02) + + +### Dependencies + +* Update dependency com.google.cloud ([e90575d](https://github.com/googleapis/java-spanner/commit/e90575dcb30782d6c8f15a5765b487faf4b66d58)) + ## [6.29.0](https://github.com/googleapis/java-spanner/compare/v6.28.0...v6.29.0) (2022-08-29) diff --git a/README.md b/README.md index 6699eff4ac1..5da6ca99d5e 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.1.0 + 26.1.1 pom import @@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-spanner - 6.28.0 + 6.29.0 ``` @@ -49,20 +49,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.0') +implementation platform('com.google.cloud:libraries-bom:26.1.1') implementation 'com.google.cloud:google-cloud-spanner' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-spanner:6.28.0' +implementation 'com.google.cloud:google-cloud-spanner:6.29.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.28.0" +libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.29.0" ``` ## Authentication diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index 9e775f5ed89..5063cfd1337 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner-bom - 6.29.0 + 6.29.1 pom com.google.cloud @@ -53,43 +53,43 @@ com.google.cloud google-cloud-spanner - 6.29.0 + 6.29.1 com.google.cloud google-cloud-spanner test-jar - 6.29.0 + 6.29.1 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.29.0 + 6.29.1 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.29.0 + 6.29.1 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.29.0 + 6.29.1 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.29.0 + 6.29.1 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.29.0 + 6.29.1 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.29.0 + 6.29.1 diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 5b19731d397..e0f99af99c2 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-spanner - 6.29.0 + 6.29.1 jar Google Cloud Spanner https://github.com/googleapis/java-spanner @@ -11,7 +11,7 @@ com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 google-cloud-spanner diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml index a887432fcdb..dd6cc79d9e8 100644 --- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.29.0 + 6.29.1 grpc-google-cloud-spanner-admin-database-v1 GRPC library for grpc-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml index 965cb5f8eb4..09814d2a1f0 100644 --- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.29.0 + 6.29.1 grpc-google-cloud-spanner-admin-instance-v1 GRPC library for grpc-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml index f580c1ab1cc..0dc84a55fa7 100644 --- a/grpc-google-cloud-spanner-v1/pom.xml +++ b/grpc-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.29.0 + 6.29.1 grpc-google-cloud-spanner-v1 GRPC library for grpc-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 diff --git a/pom.xml b/pom.xml index f190cbaccab..0e230168a85 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-spanner-parent pom - 6.29.0 + 6.29.1 Google Cloud Spanner Parent https://github.com/googleapis/java-spanner @@ -62,37 +62,37 @@ com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.29.0 + 6.29.1 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.29.0 + 6.29.1 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.29.0 + 6.29.1 com.google.api.grpc grpc-google-cloud-spanner-v1 - 6.29.0 + 6.29.1 com.google.api.grpc grpc-google-cloud-spanner-admin-instance-v1 - 6.29.0 + 6.29.1 com.google.api.grpc grpc-google-cloud-spanner-admin-database-v1 - 6.29.0 + 6.29.1 com.google.cloud google-cloud-spanner - 6.29.0 + 6.29.1 diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml index 95500262e80..894bfdd0810 100644 --- a/proto-google-cloud-spanner-admin-database-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-database-v1 - 6.29.0 + 6.29.1 proto-google-cloud-spanner-admin-database-v1 PROTO library for proto-google-cloud-spanner-admin-database-v1 com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml index 703219f8016..0d197ec08f7 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-admin-instance-v1 - 6.29.0 + 6.29.1 proto-google-cloud-spanner-admin-instance-v1 PROTO library for proto-google-cloud-spanner-admin-instance-v1 com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml index ed9cdfd71ea..51defe02351 100644 --- a/proto-google-cloud-spanner-v1/pom.xml +++ b/proto-google-cloud-spanner-v1/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-spanner-v1 - 6.29.0 + 6.29.1 proto-google-cloud-spanner-v1 PROTO library for proto-google-cloud-spanner-v1 com.google.cloud google-cloud-spanner-parent - 6.29.0 + 6.29.1 diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f81ac27bb79..4192df7561d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -23,7 +23,7 @@ UTF-8 0.31.1 2.3.1 - 3.4.1 + 3.4.2 @@ -32,7 +32,7 @@ com.google.cloud google-cloud-spanner - 6.28.0 + 6.29.0 diff --git a/samples/native-image/pom.xml b/samples/native-image/pom.xml index 7f816ecdc20..62f3456fae3 100644 --- a/samples/native-image/pom.xml +++ b/samples/native-image/pom.xml @@ -28,7 +28,7 @@ com.google.cloud libraries-bom - 26.1.0 + 26.1.1 pom import diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d00efec6459..26eb0cb6590 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -23,7 +23,7 @@ UTF-8 0.31.1 2.3.1 - 3.4.1 + 3.4.2 @@ -31,7 +31,7 @@ com.google.cloud google-cloud-spanner - 6.29.0 + 6.29.1 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3596a040724..f612f98202d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -33,7 +33,7 @@ com.google.cloud libraries-bom - 26.1.0 + 26.1.1 pom import diff --git a/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java index aeff6e8b778..39b5d67347c 100644 --- a/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java +++ b/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java @@ -26,10 +26,12 @@ import com.google.cloud.spanner.DatabaseAdminClient; import com.google.cloud.spanner.DatabaseId; import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.Instance; import com.google.cloud.spanner.InstanceAdminClient; import com.google.cloud.spanner.InstanceConfigId; import com.google.cloud.spanner.InstanceId; import com.google.cloud.spanner.InstanceInfo; +import com.google.cloud.spanner.Options; import com.google.cloud.spanner.Spanner; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; @@ -68,6 +70,8 @@ public class SpannerSampleIT { private static final String encryptedDatabaseId = formatForTest(baseDbId); private static final String encryptedBackupId = formatForTest(baseDbId); private static final String encryptedRestoreId = formatForTest(baseDbId); + private static final long STALE_INSTANCE_THRESHOLD_SECS = + TimeUnit.SECONDS.convert(24L, TimeUnit.HOURS); static Spanner spanner; static DatabaseId dbId; static DatabaseAdminClient dbClient; @@ -93,10 +97,41 @@ public static void setUp() throws Exception { dbId = DatabaseId.of(options.getProjectId(), instanceId, databaseId); // Delete stale test databases that have been created earlier by this test, but not deleted. deleteStaleTestDatabases(instanceId, baseDbId); - key = String.format("projects/%s/locations/%s/keyRings/%s/cryptoKeys/%s", - options.getProjectId(), keyLocation, keyRing, keyName); + key = + String.format( + "projects/%s/locations/%s/keyRings/%s/cryptoKeys/%s", + options.getProjectId(), keyLocation, keyRing, keyName); + + /* + * Delete stale instances that have been created earlier by this test but not deleted. + * Backups needed to be deleted from the instance first, as the instance can only be + * deleted once all backups have been deleted. + * */ + deleteStaleEncryptedTestInstances(); } - + + /** + * Deleting all the test instances with name starting with 'encrypted-test-' and were created + * before 24 hours. + * + * @throws InterruptedException If Thread.sleep() interrupted + */ + private static void deleteStaleEncryptedTestInstances() throws InterruptedException { + Timestamp now = Timestamp.now(); + + for (Instance instance : + spanner + .getInstanceAdminClient() + .listInstances(Options.filter("name:encrypted-test-")) + .iterateAll()) { + if ((now.getSeconds() - instance.getCreateTime().getSeconds()) + > STALE_INSTANCE_THRESHOLD_SECS) { + deleteAllBackups(instanceId); + instance.delete(); + } + } + } + static void deleteStaleTestDatabases(String instanceId, String baseDbId) { Timestamp now = Timestamp.now(); Pattern samplePattern = getTestDbIdPattern(baseDbId); @@ -410,7 +445,7 @@ public void testSample() throws Exception { out = runSample("deletebackup"); assertThat(out).contains("Deleted backup [" + backupId + "]"); } - + @Test public void testEncryptedDatabaseAndBackupSamples() throws Exception { String projectId = spanner.getOptions().getProjectId(); @@ -459,7 +494,7 @@ public void testEncryptedDatabaseAndBackupSamples() throws Exception { } } - private void deleteAllBackups(String instanceId) throws InterruptedException { + private static void deleteAllBackups(String instanceId) throws InterruptedException { for (Backup backup : dbClient.listBackups(instanceId).iterateAll()) { int attempts = 0; while (attempts < 30) { @@ -513,7 +548,7 @@ public void testCreateInstanceSample() { private static int countOccurrences(String input, String search) { return input.split(search).length - 1; } - + private static String toComparableId(String baseId, String existingId) { String zeroUuid = "00000000-0000-0000-0000-0000-00000000"; int shouldBeLength = (baseId + "-" + zeroUuid).length(); @@ -526,7 +561,7 @@ private static Pattern getTestDbIdPattern(String baseDbId) { baseDbId + "-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{8}", Pattern.CASE_INSENSITIVE); } - + static String formatForTest(String name) { return name + "-" + UUID.randomUUID().toString().substring(0, DBID_LENGTH); } diff --git a/versions.txt b/versions.txt index b90d1ec1b8b..f6fdfc78e02 100644 --- a/versions.txt +++ b/versions.txt @@ -1,10 +1,10 @@ # Format: # module:released-version:current-version -proto-google-cloud-spanner-admin-instance-v1:6.29.0:6.29.0 -proto-google-cloud-spanner-v1:6.29.0:6.29.0 -proto-google-cloud-spanner-admin-database-v1:6.29.0:6.29.0 -grpc-google-cloud-spanner-v1:6.29.0:6.29.0 -grpc-google-cloud-spanner-admin-instance-v1:6.29.0:6.29.0 -grpc-google-cloud-spanner-admin-database-v1:6.29.0:6.29.0 -google-cloud-spanner:6.29.0:6.29.0 +proto-google-cloud-spanner-admin-instance-v1:6.29.1:6.29.1 +proto-google-cloud-spanner-v1:6.29.1:6.29.1 +proto-google-cloud-spanner-admin-database-v1:6.29.1:6.29.1 +grpc-google-cloud-spanner-v1:6.29.1:6.29.1 +grpc-google-cloud-spanner-admin-instance-v1:6.29.1:6.29.1 +grpc-google-cloud-spanner-admin-database-v1:6.29.1:6.29.1 +google-cloud-spanner:6.29.1:6.29.1