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;
}
}