public ProgressEvent handleRequest()

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);
    }