package org.ovirt.engine.core.common.asynctasks.gluster; import org.ovirt.engine.core.common.job.JobExecutionStatus; /** * This enum represents the gluster volume async task status values returned from VDSM */ public enum GlusterAsyncTaskStatus { COMPLETED("COMPLETED"), STARTED("STARTED"), STOPPED("STOPPED"), FAILED("FAILED"), UNKNOWN("UNKNOWN"), NOT_STARTED("NOT_STARTED"), IN_PROGRESS("IN_PROGRESS"); private String statusMsg; private GlusterAsyncTaskStatus(String status) { statusMsg = status; } public String value() { return statusMsg; } public static GlusterAsyncTaskStatus from(String status) { for (GlusterAsyncTaskStatus taskStatus : values()) { if (taskStatus.value().equalsIgnoreCase(status)) { return taskStatus; } } return GlusterAsyncTaskStatus.UNKNOWN; } public JobExecutionStatus getJobExecutionStatus() { switch (this) { case COMPLETED: return JobExecutionStatus.FINISHED; case STARTED: case IN_PROGRESS: return JobExecutionStatus.STARTED; case STOPPED: return JobExecutionStatus.ABORTED; case FAILED: return JobExecutionStatus.FAILED; case UNKNOWN: case NOT_STARTED: default: return JobExecutionStatus.UNKNOWN; } } }