in statemachine/src/main/java/com/amazonaws/stepfunctions/cloudformation/statemachine/DeleteHandler.java [16:65]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
logger.log("INFO StateMachine DeleteHandler with clientRequestToken: " + request.getClientRequestToken());
final ResourceModel model = request.getDesiredResourceState();
final CallbackContext currentContext = callbackContext == null ?
CallbackContext.builder().build() :
callbackContext;
try {
verifyStateMachineArnIsPresent(model.getArn());
AWSStepFunctions sfnClient = ClientBuilder.getClient();
if (!currentContext.isDeletionStarted()) {
if (!doesStateMachineExist(model, proxy, sfnClient)) {
throw getStateMachineDoesNotExistException();
}
deleteStateMachine(model, proxy, sfnClient);
currentContext.setDeletionStarted(true);
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.callbackContext(currentContext)
.resourceModel(model)
.status(OperationStatus.IN_PROGRESS)
.build();
} else {
if (doesStateMachineExist(model, proxy, sfnClient)) {
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.callbackContext(currentContext)
.resourceModel(model)
.status(OperationStatus.IN_PROGRESS)
.build();
} else {
return ProgressEvent.<ResourceModel, CallbackContext>builder()
.status(OperationStatus.SUCCESS)
.build();
}
}
} catch (Exception e) {
logger.log("ERROR Deleting StateMachine, caused by " + e.toString());
return handleDefaultError(request, e, null);
}
}