diff --git a/CHANGELOG.md b/CHANGELOG.md index 81c8180e3c..4f6d405e00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.1.6](https://www.github.com/googleapis/java-storage/compare/v2.1.5...v2.1.6) (2021-09-24) + + +### Dependencies + +* update kms.version to v0.92.2 ([#1039](https://www.github.com/googleapis/java-storage/issues/1039)) ([d6a0542](https://www.github.com/googleapis/java-storage/commit/d6a0542f5fd290a0bdc2755f81a49f55724662b2)) + ### [2.1.5](https://www.github.com/googleapis/java-storage/compare/v2.1.4...v2.1.5) (2021-09-22) diff --git a/gapic-google-cloud-storage-v2/pom.xml b/gapic-google-cloud-storage-v2/pom.xml index ea2b93c9dc..1547030bf5 100644 --- a/gapic-google-cloud-storage-v2/pom.xml +++ b/gapic-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc gapic-google-cloud-storage-v2 - 2.1.5-alpha + 2.1.6-alpha gapic-google-cloud-storage-v2 GRPC library for gapic-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.1.5 + 2.1.6 diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml index ebd18ebc1c..b5e7051455 100644 --- a/google-cloud-storage/pom.xml +++ b/google-cloud-storage/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-storage - 2.1.5 + 2.1.6 jar Google Cloud Storage https://github.com/googleapis/java-storage @@ -12,11 +12,11 @@ com.google.cloud google-cloud-storage-parent - 2.1.5 + 2.1.6 google-cloud-storage - 0.92.1 + 0.92.2 diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/CtxFunctions.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/CtxFunctions.java index 57121451a6..5bf0c22bd1 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/CtxFunctions.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/CtxFunctions.java @@ -27,6 +27,7 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Bucket; import com.google.cloud.storage.BucketInfo; +import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.ServiceAccount; import com.google.cloud.storage.conformance.retry.Functions.CtxFunction; import com.google.common.base.Joiner; @@ -97,11 +98,16 @@ static final class ResourceSetup { Blob resolvedBlob = ctx.getStorage().create(blobInfo); return ctx.map(s -> s.with(resolvedBlob)); }; - private static final CtxFunction serviceAccount = + static final CtxFunction serviceAccount = (ctx, c) -> ctx.map(s -> s.with(ServiceAccount.of(c.getServiceAccountSigner().getAccount()))); - private static final CtxFunction hmacKey = - (ctx, c) -> ctx.map(s -> s.with(ctx.getStorage().createHmacKey(s.getServiceAccount()))); + static final CtxFunction hmacKey = + (ctx, c) -> + ctx.map( + s -> { + HmacKey hmacKey1 = ctx.getStorage().createHmacKey(s.getServiceAccount()); + return s.withHmacKey(hmacKey1).with(hmacKey1.getMetadata()); + }); private static final CtxFunction processResources = (ctx, c) -> { diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/ITRetryConformanceTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/ITRetryConformanceTest.java index 73f15112b5..59510de705 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/ITRetryConformanceTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/ITRetryConformanceTest.java @@ -32,6 +32,7 @@ import com.google.common.base.Charsets; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import com.google.protobuf.util.JsonFormat; import java.io.IOException; import java.io.InputStream; @@ -40,6 +41,7 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; @@ -332,10 +334,12 @@ static BiPredicate includeAll() { /** * Filtering predicate in which only those test cases which match up to the specified {@code - * mappingId} will be included and run. + * mappingIds} will be included and run. */ - static BiPredicate individualMapping(int mappingId) { - return (m, c) -> c.getMappingId() == mappingId; + static BiPredicate specificMappings(int... mappingIds) { + ImmutableSet set = + Arrays.stream(mappingIds).boxed().collect(ImmutableSet.toImmutableSet()); + return (m, c) -> set.contains(c.getMappingId()); } static final class Builder { diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/RpcMethodMappings.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/RpcMethodMappings.java index 9be5054000..af756b6aed 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/RpcMethodMappings.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/RpcMethodMappings.java @@ -20,17 +20,22 @@ import static com.google.cloud.storage.conformance.retry.CtxFunctions.Local.blobInfoWithGenerationZero; import static com.google.cloud.storage.conformance.retry.CtxFunctions.Local.blobInfoWithoutGeneration; import static com.google.cloud.storage.conformance.retry.CtxFunctions.Local.bucketInfo; +import static com.google.cloud.storage.conformance.retry.CtxFunctions.ResourceSetup.defaultSetup; +import static com.google.cloud.storage.conformance.retry.CtxFunctions.ResourceSetup.serviceAccount; import static com.google.common.base.Predicates.not; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertTrue; +import com.google.cloud.BaseServiceException; import com.google.cloud.Policy; import com.google.cloud.ReadChannel; +import com.google.cloud.RetryHelper.RetryHelperException; import com.google.cloud.WriteChannel; import com.google.cloud.storage.Acl.User; import com.google.cloud.storage.Blob; import com.google.cloud.storage.Bucket; +import com.google.cloud.storage.HmacKey.HmacKeyMetadata; import com.google.cloud.storage.HmacKey.HmacKeyState; import com.google.cloud.storage.HttpMethod; import com.google.cloud.storage.Storage; @@ -71,6 +76,7 @@ import com.google.errorprone.annotations.Immutable; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.OutputStream; import java.net.URL; import java.nio.ByteBuffer; @@ -535,15 +541,14 @@ private static void patch(ArrayList a) { RpcMethodMapping.newBuilder(122, buckets.patch) .withApplicable(TestRetryConformance::isPreconditionsProvided) .withTest( - bucketInfo.andThen( - (ctx, c) -> - ctx.map( - state -> - state.with( - ctx.getStorage() - .update( - state.getBucketInfo(), - BucketTargetOption.metagenerationMatch()))))) + (ctx, c) -> + ctx.map( + state -> + state.with( + ctx.getStorage() + .update( + state.getBucket(), + BucketTargetOption.metagenerationMatch())))) .build()); a.add( RpcMethodMapping.newBuilder(101, buckets.patch) @@ -589,30 +594,18 @@ private static void lockRetentionPolicy(ArrayList a) { state.getBucketInfo(), BucketTargetOption.metagenerationMatch()))))) .build()); - a.add( - RpcMethodMapping.newBuilder(99, buckets.lockRetentionPolicy) - .withTest( - bucketInfo - .andThen(Rpc.bucket) - .andThen( - (ctx, c) -> - ctx.map( - state -> state.with(state.getBucket().lockRetentionPolicy())))) - .build()); a.add( RpcMethodMapping.newBuilder(100, buckets.lockRetentionPolicy) + .withApplicable(TestRetryConformance::isPreconditionsProvided) .withTest( - bucketInfo - .andThen(Rpc.bucket) - .andThen( - (ctx, c) -> - ctx.map( - state -> - state.with( - state - .getBucket() - .lockRetentionPolicy( - BucketTargetOption.metagenerationMatch()))))) + (ctx, c) -> + ctx.map( + state -> + state.with( + state + .getBucket() + .lockRetentionPolicy( + BucketTargetOption.metagenerationMatch())))) .build()); } @@ -784,6 +777,22 @@ static final class HmacKey { private static void delete(ArrayList a) { a.add( RpcMethodMapping.newBuilder(26, hmacKey.delete) + .withSetup( + defaultSetup.andThen( + (ctx, c) -> + ctx.map( + state -> { + Storage storage = ctx.getStorage(); + HmacKeyMetadata metadata = state.getHmacKey().getMetadata(); + // for delete we're only using the metadata, clear the key that + // was populated + // in defaultSetup and specify the updated metadata + return state + .withHmacKey(null) + .with( + storage.updateHmacKeyState( + metadata, HmacKeyState.INACTIVE)); + }))) .withTest( (ctx, c) -> ctx.map( @@ -791,7 +800,7 @@ private static void delete(ArrayList a) { state.consume( () -> ctx.getStorage() - .deleteHmacKey(state.getHmacKey().getMetadata())))) + .deleteHmacKey(state.getHmacKeyMetadata())))) .build()); } @@ -835,11 +844,12 @@ private static void update(ArrayList a) { private static void create(ArrayList a) { a.add( RpcMethodMapping.newBuilder(25, hmacKey.create) + .withSetup(defaultSetup.andThen(serviceAccount)) .withTest( (ctx, c) -> ctx.map( state -> - state.with( + state.withHmacKey( ctx.getStorage().createHmacKey(state.getServiceAccount())))) .build()); } @@ -1130,11 +1140,21 @@ private static void get(ArrayList a) { (ctx, c) -> ctx.peek( state -> { - ReadChannel reader = - ctx.getStorage().reader(ctx.getState().getBlobId()); - WritableByteChannel write = - Channels.newChannel(NullOutputStream.INSTANCE); - ByteStreams.copy(reader, write); + try { + ReadChannel reader = + ctx.getStorage().reader(ctx.getState().getBlobId()); + WritableByteChannel write = + Channels.newChannel(NullOutputStream.INSTANCE); + ByteStreams.copy(reader, write); + } catch (IOException e) { + if (e.getCause() instanceof RetryHelperException) { + RetryHelperException cause = + (RetryHelperException) e.getCause(); + if (cause.getCause() instanceof BaseServiceException) { + throw cause.getCause(); + } + } + } }))) .build()); a.add( @@ -1144,14 +1164,24 @@ private static void get(ArrayList a) { (ctx, c) -> ctx.peek( state -> { - ReadChannel reader = - ctx.getStorage() - .reader( - ctx.getState().getBlobId().getBucket(), - ctx.getState().getBlobId().getName()); - WritableByteChannel write = - Channels.newChannel(NullOutputStream.INSTANCE); - ByteStreams.copy(reader, write); + try { + ReadChannel reader = + ctx.getStorage() + .reader( + ctx.getState().getBlobId().getBucket(), + ctx.getState().getBlobId().getName()); + WritableByteChannel write = + Channels.newChannel(NullOutputStream.INSTANCE); + ByteStreams.copy(reader, write); + } catch (IOException e) { + if (e.getCause() instanceof RetryHelperException) { + RetryHelperException cause = + (RetryHelperException) e.getCause(); + if (cause.getCause() instanceof BaseServiceException) { + throw cause.getCause(); + } + } + } }))) .build()); a.add( diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/State.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/State.java index dd0fcebc6d..8dafa7c17f 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/State.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/conformance/retry/State.java @@ -211,7 +211,7 @@ public HmacKey getHmacKey() { return getValue(KEY_HMAC_KEY); } - public State with(HmacKey hmacKey) { + public State withHmacKey(HmacKey hmacKey) { return newStateWith(KEY_HMAC_KEY, hmacKey); } diff --git a/grpc-google-cloud-storage-v2/pom.xml b/grpc-google-cloud-storage-v2/pom.xml index 9dc9df3117..4e14cd7802 100644 --- a/grpc-google-cloud-storage-v2/pom.xml +++ b/grpc-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc grpc-google-cloud-storage-v2 - 2.1.5-alpha + 2.1.6-alpha grpc-google-cloud-storage-v2 GRPC library for grpc-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.1.5 + 2.1.6 diff --git a/pom.xml b/pom.xml index 77e81cbb92..c461cc25eb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-storage-parent pom - 2.1.5 + 2.1.6 Storage Parent https://github.com/googleapis/java-storage @@ -93,17 +93,17 @@ com.google.api.grpc proto-google-cloud-storage-v2 - 2.1.5-alpha + 2.1.6-alpha com.google.api.grpc grpc-google-cloud-storage-v2 - 2.1.5-alpha + 2.1.6-alpha com.google.api.grpc gapic-google-cloud-storage-v2 - 2.1.5-alpha + 2.1.6-alpha com.google.cloud diff --git a/proto-google-cloud-storage-v2/pom.xml b/proto-google-cloud-storage-v2/pom.xml index 9cb6a94c67..abcc1d3f3a 100644 --- a/proto-google-cloud-storage-v2/pom.xml +++ b/proto-google-cloud-storage-v2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 com.google.api.grpc proto-google-cloud-storage-v2 - 2.1.5-alpha + 2.1.6-alpha proto-google-cloud-storage-v2 PROTO library for proto-google-cloud-storage-v2 com.google.cloud google-cloud-storage-parent - 2.1.5 + 2.1.6 diff --git a/renovate.json b/renovate.json index 2c84ceb069..f249b081c8 100644 --- a/renovate.json +++ b/renovate.json @@ -70,8 +70,5 @@ } ], "semanticCommits": true, - "dependencyDashboard": true, - "dependencyDashboardLabels": [ - "type: process" - ] + "dependencyDashboard": true } diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a259ce887d..1690c2f4dc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-storage - 2.1.4 + 2.1.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9f32665272..cd1a26d921 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-storage - 2.1.4 + 2.1.5 diff --git a/synth.metadata b/synth.metadata index 41ac5ab851..56fd80e985 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-storage.git", - "sha": "c339b721d88e533c441e15d18287adb83b418581" + "sha": "d6d95456f1e300ca4a9dc4b1c47940dea7b3a82a" } }, { @@ -19,7 +19,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "396d9b84a1e93880f5bf88b59ecd38a0a6dffc5e" + "sha": "0752ff727a19a467dffed335d5e59303689cf0d1" } } ], diff --git a/versions.txt b/versions.txt index 7be257a6c7..f7427a34f1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,7 +1,7 @@ # Format: # module:released-version:current-version -google-cloud-storage:2.1.5:2.1.5 -gapic-google-cloud-storage-v2:2.1.5-alpha:2.1.5-alpha -grpc-google-cloud-storage-v2:2.1.5-alpha:2.1.5-alpha -proto-google-cloud-storage-v2:2.1.5-alpha:2.1.5-alpha +google-cloud-storage:2.1.6:2.1.6 +gapic-google-cloud-storage-v2:2.1.6-alpha:2.1.6-alpha +grpc-google-cloud-storage-v2:2.1.6-alpha:2.1.6-alpha +proto-google-cloud-storage-v2:2.1.6-alpha:2.1.6-alpha