public ProgressEvent handleRequest()

in aws-batch-schedulingpolicy/src/main/java/software/amazon/batch/schedulingpolicy/CreateHandler.java [31:76]


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

        logger.log("Create handler for SchedulingPolicy invoked.");

        if (this.client == null) {
            this.client = ClientBuilder.getClient();
        }

        final ResourceModel model = request.getDesiredResourceState();
        if (model.getName() == null) {
            model.setName(generateParameterName(
                    request.getLogicalResourceIdentifier(),
                    request.getClientRequestToken()
            ));
        }
        logger.log("SchedulingPolicy model for create request: " + model.toString());

        Map<String, String> tags = new HashMap<>();
        if (model.getTags() != null && !model.getTags().isEmpty()) {
            tags = model.getTags();
        }

        if (request.getDesiredResourceTags() != null && !request.getDesiredResourceTags().isEmpty()) {
            tags.putAll(request.getDesiredResourceTags());
        }
        logger.log("Tags to add for" + model.getArn() + " are : " + tags);

        try {
            CreateSchedulingPolicyResponse createSchedulingPolicyResponse =
                    proxy.injectCredentialsAndInvokeV2(
                            Translator.toCreateSchedulingPolicyRequest(model, tags),
                            this.client::createSchedulingPolicy);
            logger.log(String.format("%s [%s] created successfully", ResourceModel.TYPE_NAME, model.getName()));
            model.setArn(createSchedulingPolicyResponse.arn());
            logger.log("Create scheduling policy handler final result: " + createSchedulingPolicyResponse.toString());

        } catch (final BatchException e) {
            Exceptions.handleBatchExceptions(request, callbackContext, e);
        }

        return ProgressEvent.defaultSuccessHandler(model);
    }