public ProgressEvent handleRequest()

in statemachine/src/main/java/com/amazonaws/stepfunctions/cloudformation/statemachine/UpdateHandler.java [22:65]


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

        logger.log("INFO StateMachine UpdateHandler with clientRequestToken: " + request.getClientRequestToken());

        final ResourceModel model = request.getDesiredResourceState();

        MetricsRecorder metricsRecorder = new MetricsRecorder(HandlerOperationType.UPDATE);
        metricsRecorder.setMetricsFromResourceModel(model);

        try {
            verifyStateMachineArnIsPresent(model.getArn());

            AWSStepFunctions sfnClient = AWSStepFunctionsClientBuilder.defaultClient();

            validateDefinitionCount(model);
            processDefinition(proxy, model, metricsRecorder);

            UpdateStateMachineRequest updateStateMachineRequest = buildUpdateStateMachineRequestFromModel(model);

            proxy.injectCredentialsAndInvoke(updateStateMachineRequest, sfnClient::updateStateMachine);
            updateTags(request, proxy, sfnClient);

            metricsRecorder.setOperationSuccessful(true);

            ProgressEvent<ResourceModel, CallbackContext> progressEvent = ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModel(model)
                    .status(OperationStatus.SUCCESS)
                    .build();

            metricsRecorder.setOperationSuccessful(true);

            return progressEvent;
        } catch (Exception e) {
            logger.log("ERROR Updating StateMachine, caused by " + e.toString());

            return handleDefaultError(request, e, metricsRecorder);
        } finally {
            logger.log(metricsRecorder.generateMetricsString());
        }
    }