protected ProgressEvent handleRequest()

in aws-synthetics-canary/src/main/java/com/amazon/synthetics/canary/DeleteHandler.java [16:45]


    protected ProgressEvent<ResourceModel, CallbackContext> handleRequest() {
        if (context.isCanaryDeleteStarted()) {
            return confirmCanaryDeleted();
        }

        Canary canary = getCanaryOrThrow();

        if (canary.status().state() == CanaryState.CREATING) {
            String message = "Canary is in state CREATING and cannot be deleted.";
            log(message);
            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .message(message)
                .errorCode(HandlerErrorCode.ResourceConflict)
                .status(OperationStatus.FAILED)
                .build();
        } else if (canary.status().state() == CanaryState.STARTING) {
            String message = "Canary is in state STARTING. It must finish starting before it can be stopped and deleted.";
            return waitingForCanaryStateTransition(message, MAX_RETRY_TIMES, "STARTING");
        } else if (canary.status().state() == CanaryState.UPDATING) {
            String message = "Canary is in state UPDATING. It must finish updating before it can be deleted.";
            return waitingForCanaryStateTransition(message, MAX_RETRY_TIMES, "UPDATING");
        } else if (canary.status().state() == CanaryState.STOPPING) {
            String message = "Canary is in state STOPPING. It must finish stopping before it can be deleted.";
            return waitingForCanaryStateTransition(message, MAX_RETRY_TIMES, "STOPPING");
        } else if (canary.status().state() == CanaryState.RUNNING) {
            return handleCanaryInStateRunning(canary);
        } else {
            return deleteCanary(canary);
        }
    }