Skip to content

Commit b61a753

Browse files
authored
Added updatePolicy metadata (#376)
1 parent 6073892 commit b61a753

File tree

5 files changed

+14
-3
lines changed

5 files changed

+14
-3
lines changed

src/main/java/software/amazon/cloudformation/AbstractWrapper.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ public void processRequest(final InputStream inputStream, final OutputStream out
271271
resourceHandlerRequest.setRollback(request.getRollback());
272272
resourceHandlerRequest.setDriftable(request.getDriftable());
273273
resourceHandlerRequest.setFeatures(request.getFeatures());
274+
resourceHandlerRequest.setUpdatePolicy(request.getUpdatePolicy());
274275
if (request.getRequestData() != null) {
275276
resourceHandlerRequest.setPreviousSystemTags(request.getRequestData().getPreviousSystemTags());
276277
}
@@ -374,9 +375,10 @@ private void logUnhandledError(final String errorDescription,
374375
logUnhandledError(e.getMessage(), request, e);
375376
return ProgressEvent.defaultFailureHandler(e, e.getErrorCode());
376377
} catch (final AmazonServiceException | AwsServiceException e) {
377-
if ((e instanceof AwsServiceException && ((AwsServiceException) e).isThrottlingException()) ||
378-
(e instanceof AmazonServiceException && RetryUtils.isThrottlingException((AmazonServiceException) e))) {
379-
this.log(String.format("%s [%s] call throttled by downstream service", request.getResourceType(), request.getAction()));
378+
if ((e instanceof AwsServiceException && ((AwsServiceException) e).isThrottlingException())
379+
|| (e instanceof AmazonServiceException && RetryUtils.isThrottlingException((AmazonServiceException) e))) {
380+
this.log(String.format("%s [%s] call throttled by downstream service", request.getResourceType(),
381+
request.getAction()));
380382
publishExceptionMetric(request.getAction(), e, HandlerErrorCode.Throttling);
381383
return ProgressEvent.defaultFailureHandler(e, HandlerErrorCode.Throttling);
382384
} else {

src/main/java/software/amazon/cloudformation/proxy/HandlerRequest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,6 @@ public class HandlerRequest<ResourceT, CallbackT, ConfigurationT> {
3939
private Boolean rollback;
4040
private Boolean driftable;
4141
private Map<String, Object> features;
42+
private Map<String, Object> updatePolicy;
4243
private RequestContext<CallbackT> requestContext;
4344
}

src/main/java/software/amazon/cloudformation/proxy/ResourceHandlerRequest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class ResourceHandlerRequest<T> {
4747
private Boolean rollback;
4848
private Boolean driftable;
4949
private Map<String, Object> features;
50+
private Map<String, Object> updatePolicy;
5051
private String region;
5152
private String stackId;
5253
}

src/test/java/software/amazon/cloudformation/data/create.request.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,8 @@
3434
"tag1": "def"
3535
}
3636
},
37+
"updatePolicy": {
38+
"Custom": "Term"
39+
},
3740
"stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/e722ae60-fe62-11e8-9a0e-0ae8cc519968"
3841
}

src/test/java/software/amazon/cloudformation/resource/SerializerTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
import java.io.FileNotFoundException;
2424
import java.io.IOException;
2525
import java.io.InputStream;
26+
import java.util.Map;
2627
import org.apache.commons.io.IOUtils;
28+
import org.assertj.core.util.Maps;
2729
import org.junit.jupiter.api.Test;
2830
import software.amazon.cloudformation.Action;
2931
import software.amazon.cloudformation.TestConfigurationModel;
@@ -65,6 +67,7 @@ public void testDeserialize_AccuratePayload() throws IOException {
6567
final String in = loadRequestJson("create.request.json");
6668

6769
final HandlerRequest<TestModel, TestContext, TestConfigurationModel> r = s.deserialize(in, typeReference);
70+
Map<String, Object> updatePolicy = Maps.newHashMap("Custom", "Term");
6871

6972
assertThat(r).isNotNull();
7073
assertThat(r.getAction()).isEqualTo(Action.CREATE);
@@ -75,6 +78,7 @@ public void testDeserialize_AccuratePayload() throws IOException {
7578
assertThat(r.getRequestData()).isNotNull();
7679
assertThat(r.getResourceType()).isEqualTo("AWS::Test::TestModel");
7780
assertThat(r.getResourceTypeVersion()).isEqualTo("1.0");
81+
assertThat(r.getUpdatePolicy()).isEqualTo(updatePolicy);
7882
assertThat(r.getStackId())
7983
.isEqualTo("arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/e722ae60-fe62-11e8-9a0e-0ae8cc519968");
8084
assertThat(r.getCallbackContext()).isNull();

0 commit comments

Comments
 (0)