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