in deliverystream/src/main/java/com/amazonaws/kinesisfirehose/deliverystream/UpdateHandler.java [33:60]
public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
final ResourceModel previousModel = request.getPreviousResourceState();
val firehoseAPIWrapper = FirehoseAPIWrapper.builder().firehoseClient(firehoseClient).clientProxy(proxy).build();
logger.log(String.format("Update Handler called with deliveryStream PrimaryId %s", model.getDeliveryStreamName()));
val currentContext = callbackContext != null
? callbackContext : CallbackContext.builder()
.stabilizationRetriesRemaining(NUMBER_OF_STATUS_POLL_RETRIES)
.build();
val previousResourceAndStackTags = new ArrayList<Tag>();
if (request.getPreviousResourceTags() != null && !request.getPreviousResourceTags().isEmpty()) {
request.getPreviousResourceTags().forEach((k,v) -> previousResourceAndStackTags.add(new Tag(k, v)));
logger.log(String.format("Received %d Previous Resource tags on update for delivery stream name %s", previousResourceAndStackTags.size(), model.getDeliveryStreamName()));
}
val currentResourceAndStackTags = new ArrayList<Tag>();
if (request.getDesiredResourceTags() != null && !request.getDesiredResourceTags().isEmpty()) {
request.getDesiredResourceTags().forEach((k,v) -> currentResourceAndStackTags.add(new Tag(k, v)));
logger.log(String.format("Received %d current Resource tags on update for delivery stream name %s", previousResourceAndStackTags.size(), model.getDeliveryStreamName()));
}
return updateDeliveryStreamAndUpdateProgress(firehoseAPIWrapper, model, previousModel, currentContext, logger, previousResourceAndStackTags, currentResourceAndStackTags);
}