package org.ovirt.engine.core.bll;
import java.util.Collection;
import java.util.Collections;
import javax.inject.Singleton;
import org.ovirt.engine.core.common.AuditLogType;
import org.ovirt.engine.core.common.businessentities.VMStatus;
import org.ovirt.engine.core.common.businessentities.VmDynamic;
import org.ovirt.engine.core.common.businessentities.VmExitStatus;
import org.ovirt.engine.core.compat.Guid;
/**
* This class represent a job which is responsible for starting VMs as part of
* cold reboot process.
*/
@Singleton
public class ColdRebootAutoStartVmsRunner extends AutoStartVmsRunner {
@Override
protected Collection<AutoStartVmToRestart> getInitialVmsToStart() {
return Collections.emptyList();
}
@Override
protected boolean isVmNeedsToBeAutoStarted(Guid vmId) {
VmDynamic vmDynamic = getVmDynamicDao().get(vmId);
return vmDynamic.getStatus() == VMStatus.Down &&
vmDynamic.getExitStatus() == VmExitStatus.Normal;
}
@Override
protected AuditLogType getRestartFailedAuditLogType() {
return AuditLogType.COLD_REBOOT_FAILED;
}
@Override
protected AuditLogType getExceededMaxNumOfRestartsAuditLogType() {
return AuditLogType.EXCEEDED_MAXIMUM_NUM_OF_COLD_REBOOT_VM_ATTEMPTS;
}
}