private UserInstanceStatus getComputationalNewStatus()

in services/self-service/src/main/java/com/epam/datalab/backendapi/dao/EnvDAO.java [374:400]


    private UserInstanceStatus getComputationalNewStatus(UserInstanceStatus oldStatus, String newStatus) {
        /* AWS statuses: bootstrapping, running, starting, terminated, terminated_with_errors, terminating, waiting */
        UserInstanceStatus status;
        if ("terminated".equalsIgnoreCase(newStatus) || "terminated_with_errors".equalsIgnoreCase(newStatus)) {
            status = UserInstanceStatus.TERMINATED;
        } else {
            status = Optional.ofNullable(UserInstanceStatus.of(newStatus)).orElse(oldStatus);
        }

        switch (oldStatus) {
            case CREATING:
            case CONFIGURING:
            case RUNNING:
                return (status.in(UserInstanceStatus.TERMINATED, TERMINATING,
                        UserInstanceStatus.STOPPING, UserInstanceStatus.STOPPED) ? status : oldStatus);
            case TERMINATING:
                return (status.in(UserInstanceStatus.TERMINATED) ? status : oldStatus);
            case STARTING:
            case STOPPED:
            case STOPPING:
                return status;
            case FAILED:
            case TERMINATED:
            default:
                return oldStatus;
        }
    }