in aws-wafv2-webacl/src/main/java/com/amazonaws/wafv2/webacl/UpdateHandler.java [37:87]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
final CallbackContext currentContext = callbackContext == null ?
CallbackContext.builder()
.stabilizationRetriesRemaining(CommonVariables.NUMBER_OF_STATE_POLL_RETRIES)
.build()
: callbackContext;
if (currentContext.getStabilizationRetriesRemaining() <= 0) {
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.status(OperationStatus.FAILED)
.errorCode(HandlerErrorCode.NotStabilized)
.build();
}
try {
updateWebACLExceptionWrapper(proxy, model).execute();
final ResourceModel readResourceModel = ResourceModel.builder()
.id(model.getId())
.name(model.getName())
.scope(model.getScope())
.build();
return new ReadHandler(client).handleRequest(proxy,
ResourceHandlerRequest.<ResourceModel>builder().desiredResourceState(readResourceModel).build(),
null, logger);
} catch (WafUnavailableEntityException e) {
// entity still being sequenced
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.resourceModel(model)
.status(OperationStatus.IN_PROGRESS)
.callbackContext(CallbackContext.builder()
.stabilizationRetriesRemaining(currentContext.getStabilizationRetriesRemaining() - 1)
.build())
.callbackDelaySeconds(CommonVariables.CALLBACK_DELAY_SECONDS)
.resourceModel(request.getDesiredResourceState())
.build();
} catch (RuntimeException e) {
// handle error code
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.status(OperationStatus.FAILED)
.errorCode(ExceptionTranslationWrapper.translateExceptionIntoErrorCode(e))
.message(e.getMessage())
.build();
}
}