in aws-route53recoverycontrol-safetyrule/src/main/java/software/amazon/route53recoverycontrol/safetyrule/UpdateHandler.java [21:60]
protected ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<Route53RecoveryControlConfigClient> proxyClient,
final Logger logger) {
this.logger = logger;
ResourceModel currentModel = request.getDesiredResourceState();
ResourceModel previousModel = request.getPreviousResourceState();
String currentSafetyRuleArn = currentModel.getSafetyRuleArn();
String name = currentModel.getName();
if ( currentSafetyRuleArn == null ) { throw new CfnNotFoundException(ResourceModel.TYPE_NAME, name); }
if (previousModel != null) {
String previousSafetyRuleArn = previousModel.getSafetyRuleArn();
if (previousSafetyRuleArn != null) {
if (!currentSafetyRuleArn.equals(previousSafetyRuleArn)) {
logger.log(String.format("%s does not equal %s.", currentSafetyRuleArn, previousSafetyRuleArn));
throw new CfnNotFoundException(ResourceModel.TYPE_NAME, String.format("%s does not equal %s.", currentSafetyRuleArn, previousSafetyRuleArn));
}
}
}
return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
.then(progress ->
proxy.initiate("AWS-Route53RecoveryControl-SafetyRule::Update", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToUpdateRequest)
.makeServiceCall(this::updateSafetyRule)
.stabilize(this::isStabilized)
.progress()
)
.then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
}