package org.ovirt.engine.core.bll.validator; import java.util.Arrays; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.errors.EngineMessage; public class UpgradeHostValidator { private VDS host; public UpgradeHostValidator(VDS host) { this.host = host; } public ValidationResult hostExists() { return ValidationResult.failWith(EngineMessage.VDS_INVALID_SERVER_ID).when(host == null); } public ValidationResult statusSupportedForHostUpgrade() { return ValidationResult.failWith(EngineMessage.CANNOT_UPGRADE_HOST_STATUS_ILLEGAL) .unless(VdcActionUtils.canExecute(Arrays.asList(host), VDS.class, VdcActionType.UpgradeHost)); } public ValidationResult statusSupportedForHostUpgradeCheck() { return ValidationResult.failWith(EngineMessage.CANNOT_CHECK_FOR_HOST_UPGRADE_STATUS_ILLEGAL) .unless(VdcActionUtils.canExecute(Arrays.asList(host), VDS.class, VdcActionType.HostUpgradeCheck)); } public ValidationResult statusSupportedForHostUpgradeInternal() { return ValidationResult.failWith(EngineMessage.CANNOT_UPGRADE_HOST_STATUS_ILLEGAL) .when(host.getStatus() != VDSStatus.Maintenance); } public ValidationResult updatesAvailable() { return ValidationResult.failWith(EngineMessage.NO_AVAILABLE_UPDATES_FOR_HOST) .unless(host.isOvirtVintageNode() || host.isUpdateAvailable()); } public ValidationResult imageProvidedForOvirtNode(String image) { return ValidationResult.failWith(EngineMessage.VDS_CANNOT_INSTALL_MISSING_IMAGE_FILE) .when(host.isOvirtVintageNode() && StringUtils.isBlank(image)); } public ValidationResult hostWasInstalled() { return ValidationResult.failWith(EngineMessage.CANNOT_UPGRADE_HOST_WITHOUT_OS) .when(host.getHostOs() == null); } }