package com.sequenceiq.cloudbreak.cloud.openstack.status;
import org.openstack4j.model.compute.Server;
import com.sequenceiq.cloudbreak.cloud.model.InstanceStatus;
public enum NovaInstanceStatus {
STARTED("ACTIVE"),
STOPPED("SHUTOFF"),
SUSPENDED("SUSPENDED"),
PAUSED("PAUSED");
private final String status;
NovaInstanceStatus(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public static InstanceStatus get(Server server) {
String status = server.getStatus().toString();
if (isStoppedInstanceStatus(status)) {
return InstanceStatus.STOPPED;
} else if (status.equals(STARTED.getStatus())) {
return InstanceStatus.STARTED;
} else {
return InstanceStatus.IN_PROGRESS;
}
}
private static boolean isStoppedInstanceStatus(String status) {
return status.equals(STOPPED.getStatus()) || status.equals(SUSPENDED.getStatus()) || status.equals(PAUSED.getStatus());
}
}