in deliverystream/src/main/java/com/amazonaws/kinesisfirehose/deliverystream/DeleteHandler.java [50:85]
private ProgressEvent<ResourceModel, CallbackContext> deleteDeliveryStreamAndUpdateProgress(final FirehoseAPIWrapper firehoseAPIWrapper,
final ResourceModel model,
final CallbackContext callbackContext,
final Logger logger) {
val deliveryStreamStatus = callbackContext.getDeliveryStreamStatus();
logger.log("deliveryStreamStatus = " + deliveryStreamStatus);
if (callbackContext.getStabilizationRetriesRemaining() == 0) {
throw new RuntimeException(TIMED_OUT_MESSAGE);
}
int stabilizationRetriesRemaining = NUMBER_OF_STATUS_POLL_RETRIES;
final boolean allowForceDelete = true;
if (deliveryStreamStatus == null) {
try {
firehoseAPIWrapper.deleteDeliveryStream(model.getDeliveryStreamName(), allowForceDelete);
} catch (final Exception e) {
logger.log(String.format("deleteDeliveryStream failed with exception %s", e.getMessage()));
return ProgressEvent.defaultFailureHandler(e, ExceptionMapper.mapToHandlerErrorCode(e, HandlerType.DELETE));
}
} else {
stabilizationRetriesRemaining = callbackContext.getStabilizationRetriesRemaining() - 1;
}
val currentDeliveryStreamStatus = getDeliveryStreamStatus(firehoseAPIWrapper, model);
if (currentDeliveryStreamStatus.equals(DELIVERY_STREAM_DELETED)) {
return ProgressEvent.defaultSuccessHandler(null);
} else {
return ProgressEvent.defaultInProgressHandler(CallbackContext.builder()
.deliveryStreamStatus(currentDeliveryStreamStatus)
.stabilizationRetriesRemaining(stabilizationRetriesRemaining)
.build(),
(int) Duration.ofSeconds(CALLBACK_DELAY_IN_SECONDS).getSeconds(),
model);
}
}