public ProgressEvent handleRequest()

in aws-applicationinsights-application/src/main/java/software/amazon/applicationinsights/application/ReadHandler.java [15:58]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        final Logger logger) {

        final ResourceModel model = request.getDesiredResourceState();

        // Read/Delete handlers are only guaranteed to receive the primaryIdentifier values
        logger.log(String.format("Read Handler called with application ARN %s", model.getApplicationARN()));

        // Extract resource group name from arn
        final String resourceGroupName;
        try {
            resourceGroupName = HandlerHelper.extractResourceGroupNameFromApplicationArn(model.getApplicationARN());
        } catch (Exception ex) {
            logger.log(String.format("Failed to parse application arn with error: %s", ex.getMessage()));
            final ValidationException exception = ValidationException.builder()
                    .message("Failed to parse application ARN: " + model.getApplicationARN())
                    .build();
            return ProgressEvent.defaultFailureHandler(exception, ExceptionMapper.mapToHandlerErrorCode(exception));
        }

        logger.log(String.format("Using resource group name %s", resourceGroupName));

        try {
            HandlerHelper.describeApplicationInsightsApplication(resourceGroupName, proxy, applicationInsightsClient);
        } catch (Exception ex) {
            logger.log(String.format("describeApplicationInsightsApplication failed with exception %s", ex.getMessage()));
            return ProgressEvent.defaultFailureHandler(ex, ExceptionMapper.mapToHandlerErrorCode(ex));
        }

        ResourceModel outputModel;
        try {
            outputModel = HandlerHelper.generateReadModel(resourceGroupName, model, request, proxy, applicationInsightsClient);
        } catch (Exception ex) {
            logger.log(String.format("generateReadModel failed with exception %s", ex.getMessage()));
            return ProgressEvent.defaultFailureHandler(ex, ExceptionMapper.mapToHandlerErrorCode(ex));
        }

        logger.log(String.format("Resource found: %s", outputModel));

        return ProgressEvent.defaultSuccessHandler(outputModel);
    }