in aws-cloudformation-stackset/src/main/java/software/amazon/cloudformation/stackset/UpdateHandler.java [58:83]
private ProgressEvent<ResourceModel, CallbackContext> updateStackSet(
final AmazonWebServicesClientProxy proxy,
final ProxyClient<CloudFormationClient> client,
final ResourceHandlerRequest<ResourceModel> handlerRequest,
final ProgressEvent<ResourceModel, CallbackContext> progress,
final ResourceModel previousModel) {
final ResourceModel desiredModel = progress.getResourceModel();
final CallbackContext callbackContext = progress.getCallbackContext();
if (isStackSetConfigEquals(previousModel, desiredModel, handlerRequest.getPreviousResourceTags(), handlerRequest.getDesiredResourceTags())) {
return ProgressEvent.progress(desiredModel, callbackContext);
}
return proxy.initiate("AWS-CloudFormation-StackSet::UpdateStackSet", client, desiredModel, callbackContext)
.translateToServiceRequest(modelRequest -> updateStackSetRequest(modelRequest, handlerRequest.getDesiredResourceTags()))
.backoffDelay(MULTIPLE_OF)
.makeServiceCall((modelRequest, proxyInvocation) -> {
logger.log(String.format("%s [%s] UpdateStackSet request: [%s]",
ResourceModel.TYPE_NAME, previousModel.getStackSetId(), modelRequest));
final UpdateStackSetResponse response = proxyInvocation.injectCredentialsAndInvokeV2(modelRequest, proxyInvocation.client()::updateStackSet);
logger.log(String.format("%s [%s] UpdateStackSet initiated", ResourceModel.TYPE_NAME, previousModel.getStackSetId()));
return response;
})
.stabilize((request, response, proxyInvocation, resourceModel, context) -> isOperationStabilized(proxyInvocation, resourceModel, response.operationId(), logger))
.retryErrorFilter(this::filterException)
.progress();
}