Gustavo Frederico Temple Pedrosa has uploaded a new change for review. Change subject: engine: Watchdog model validation ......................................................................
engine: Watchdog model validation This change displays an error if the watchdog model is not compatible with the selected operating system. Change-Id: I7a470fd389f0fcd5d077c56a2f69ee2f79fce065 Signed-off-by: Gustavo Pedrosa <gustavo.pedr...@eldorado.org.br> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidator.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidatorTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java M frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties M frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties 14 files changed, 191 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/18448/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java index 6c66e65..12f6f0d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractVmWatchdogCommand.java @@ -5,9 +5,13 @@ import java.util.List; import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.bll.validator.VmWatchdogValidator; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.WatchdogParameters; +import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmDevice; +import org.ovirt.engine.core.common.businessentities.VmTemplate; +import org.ovirt.engine.core.common.businessentities.VmWatchdog; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.common.businessentities.VmDeviceGeneralType; import org.ovirt.engine.core.dao.VmDeviceDAO; @@ -65,4 +69,25 @@ return getVmTemplateDAO().get(getParameters().getId()) != null; } } + + protected VmWatchdogValidator getVmWatchdogValidator() { + VmWatchdogValidator vmWatchdogValidator = null; + VmWatchdog watchdog = new VmWatchdog(); + watchdog.setAction(getParameters().getAction()); + watchdog.setModel(getParameters().getModel()); + watchdog.setVmId(getParameters().getId()); + + if (getParameters().isVm()) { + VM vm = getVmDAO().get(getParameters().getId()); + vmWatchdogValidator = new VmWatchdogValidator(vm.getOs(), watchdog, + vm.getVdsGroupCompatibilityVersion()); + } else { + VmTemplate vmTemplate = getVmTemplateDAO().get(getParameters().getId()); + vmWatchdogValidator = new VmWatchdogValidator(vmTemplate.getOsId(), watchdog, + (getVdsGroupDAO().get((vmTemplate).getVdsGroupId())).getcompatibility_version()); + } + + return vmWatchdogValidator; + } + } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java index ce3499b..1c5fa02 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java @@ -20,6 +20,7 @@ import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; import org.ovirt.engine.core.bll.validator.StorageDomainValidator; +import org.ovirt.engine.core.bll.validator.VmWatchdogValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.CreateSnapshotFromTemplateParameters; @@ -371,6 +372,15 @@ } } + // check for Vm Watchdog Model + if (getParameters().getWatchdog() != null) { + if (!validate((new VmWatchdogValidator(vmFromParams.getOs(), + getParameters().getWatchdog(), + getVdsGroup().getcompatibility_version())).isModelCompatibleWithOs())) { + return false; + } + } + // Check that the USB policy is legal if (!VmHandler.isUsbPolicyLegal(vmFromParams.getUsbPolicy(), vmFromParams.getOs(), getVdsGroup(), getReturnValue().getCanDoActionMessages())) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index 146335b..4298705 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -21,6 +21,7 @@ import org.ovirt.engine.core.bll.validator.DiskImagesValidator; import org.ovirt.engine.core.bll.validator.MultipleStorageDomainsValidator; import org.ovirt.engine.core.bll.validator.StorageDomainValidator; +import org.ovirt.engine.core.bll.validator.VmWatchdogValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.AddVmTemplateParameters; @@ -288,6 +289,15 @@ return false; } + // Check if the watchdog model is supported + if (getParameters().getWatchdog() != null) { + if (!validate((new VmWatchdogValidator(getParameters().getMasterVm().getOsId(), + getParameters().getWatchdog(), + getVdsGroup().getcompatibility_version())).isModelCompatibleWithOs())) { + return false; + } + } + return imagesRelatedChecks() && AddVmCommand.CheckCpuSockets(getParameters().getMasterVm().getNumOfSockets(), getParameters().getMasterVm().getCpuPerSocket(), getVdsGroup() .getcompatibility_version().toString(), getReturnValue().getCanDoActionMessages()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java index b832c2d..6fd6ff0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddWatchdogCommand.java @@ -53,6 +53,11 @@ if (!watchdogs.isEmpty()) { return failCanDoAction(VdcBllMessages.WATCHDOG_ALREADY_EXISTS); } + + if (!validate(getVmWatchdogValidator().isModelCompatibleWithOs())) { + return false; + } + return true; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java index bc17e60..b6f272a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java @@ -16,6 +16,7 @@ import org.ovirt.engine.core.bll.quota.QuotaVdsGroupConsumptionParameter; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; +import org.ovirt.engine.core.bll.validator.VmWatchdogValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.VdcActionType; @@ -327,6 +328,15 @@ } } + // check for Vm Watchdog Model + if (getParameters().getWatchdog() != null) { + if (!validate((new VmWatchdogValidator(vmFromParams.getOs(), + getParameters().getWatchdog(), + getVdsGroup().getcompatibility_version())).isModelCompatibleWithOs())) { + return false; + } + } + // Check that the USB policy is legal if (!VmHandler.isUsbPolicyLegal(vmFromParams.getUsbPolicy(), vmFromParams.getOs(), diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java index e192aea..08ba4e6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmTemplateCommand.java @@ -11,6 +11,7 @@ import org.ovirt.engine.core.bll.quota.QuotaVdsDependent; import org.ovirt.engine.core.bll.utils.PermissionSubject; import org.ovirt.engine.core.bll.utils.VmDeviceUtils; +import org.ovirt.engine.core.bll.validator.VmWatchdogValidator; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.UpdateVmTemplateParameters; @@ -91,6 +92,13 @@ returnValue = VmHandler.isUsbPolicyLegal(getParameters().getVmTemplateData().getUsbPolicy(), getParameters().getVmTemplateData().getOsId(), getVdsGroup(), getReturnValue().getCanDoActionMessages()); } + // Check if the watchdog model is supported + if (returnValue) { + returnValue = validate((new VmWatchdogValidator(getParameters().getVmTemplateData().getOsId(), + getParameters().getWatchdog(), + getVdsGroup().getcompatibility_version())).isModelCompatibleWithOs()); + } + if (returnValue) { returnValue = AddVmCommand.CheckCpuSockets(getParameters().getVmTemplateData().getNumOfSockets(), getParameters().getVmTemplateData().getCpuPerSocket(), getVdsGroup().getcompatibility_version() diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java index 8cbc396..204e155 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateWatchdogCommand.java @@ -22,14 +22,21 @@ setSucceeded(true); } + @Override protected boolean canDoAction() { if (!super.canDoAction()) { return false; } + List<VmDevice> watchdogs = getWatchdogs(); if (watchdogs.isEmpty()) { return failCanDoAction(VdcBllMessages.WATCHDOG_NOT_FOUND); } + + if (!validate(getVmWatchdogValidator().isModelCompatibleWithOs())) { + return false; + } + return true; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidator.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidator.java new file mode 100644 index 0000000..6442caf --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidator.java @@ -0,0 +1,54 @@ +package org.ovirt.engine.core.bll.validator; + +import java.util.ArrayList; +import java.util.List; + +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.VmWatchdog; +import org.ovirt.engine.core.common.businessentities.VmWatchdogType; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.osinfo.OsRepository; +import org.ovirt.engine.core.common.utils.SimpleDependecyInjector; +import org.ovirt.engine.core.compat.Version; + +/** + * A class that can validate a {@link VmWatchdog} is valid from certain aspects. + */ +public class VmWatchdogValidator { + + private int osId; + private Version version; + private VmWatchdog vmWatchdog; + + public VmWatchdogValidator(int osId, VmWatchdog vmWatchdog, Version version) { + this.osId = osId; + this.vmWatchdog = vmWatchdog; + this.version = version; + } + + /** + * Check if the watchdog model is supported (as per the configuration), taking into account the + * OS type. + * + * @return An error if the watchdog model is not compatible with the selected operating system, + * otherwise it's OK. + */ + public ValidationResult isModelCompatibleWithOs() { + + List<String> watchDogModels = getOsRepository().getWatchDogModels(osId, version); + List<VmWatchdogType> vmWatchdogTypes = new ArrayList<VmWatchdogType>(); + + for (String watchDogModel : watchDogModels) { + vmWatchdogTypes.add(VmWatchdogType.getByName(watchDogModel)); + } + + return (!vmWatchdogTypes.contains(vmWatchdog.getModel())) + ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS) + : ValidationResult.VALID; + } + + public OsRepository getOsRepository() { + return SimpleDependecyInjector.getInstance().get(OsRepository.class); + } + +} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidatorTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidatorTest.java new file mode 100644 index 0000000..46aa24c --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/validator/VmWatchdogValidatorTest.java @@ -0,0 +1,55 @@ +package org.ovirt.engine.core.bll.validator; + +import static org.junit.Assert.assertThat; +import static org.junit.matchers.JUnitMatchers.both; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; +import static org.ovirt.engine.core.bll.validator.ValidationResultMatchers.failsWith; +import static org.ovirt.engine.core.bll.validator.ValidationResultMatchers.isValid; + +import java.util.ArrayList; +import java.util.Arrays; + +import org.hamcrest.Matcher; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.runners.MockitoJUnitRunner; +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.businessentities.VmWatchdog; +import org.ovirt.engine.core.common.businessentities.VmWatchdogType; +import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.osinfo.OsRepository; +import org.ovirt.engine.core.compat.Version; + +@RunWith(MockitoJUnitRunner.class) +public class VmWatchdogValidatorTest { + + private static final ArrayList<String> WATCHDOG_MODELS = new ArrayList<String>(Arrays.asList("i6300esb")); + + @Test + public void ib700VmWatchdogTypeWhenNotIsCompatibleWithOs() throws Exception { + isModelCompatibleWithOsTest(both(failsWith(VdcBllMessages.ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS)), + VmWatchdogType.ib700); + } + + @Test + public void i6300esbVmWatchdogTypeWhenIsCompatibleWithOs() throws Exception { + isModelCompatibleWithOsTest(isValid(), VmWatchdogType.i6300esb); + } + + private void isModelCompatibleWithOsTest(Matcher<ValidationResult> matcher, VmWatchdogType watchDogModel) { + Version version = new Version(); + VmWatchdog vmWatchdog = new VmWatchdog(); + vmWatchdog.setModel(watchDogModel); + VmWatchdogValidator validator = spy(new VmWatchdogValidator(0, vmWatchdog, version)); + OsRepository osRepository = mock(OsRepository.class); + + when(validator.getOsRepository()).thenReturn(osRepository); + when(osRepository.getWatchDogModels(any(Integer.class), any(Version.class))).thenReturn(WATCHDOG_MODELS); + + assertThat(validator.isModelCompatibleWithOs(), matcher); + } + +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java index 276e24f..29af7b6 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java @@ -191,6 +191,7 @@ ACTION_TYPE_FAILED_ILLEGAL_MEMORY_SIZE(ErrorType.CONSTRAINT_VIOLATION), ACTION_TYPE_FAILED_ILLEGAL_NUM_OF_MONITORS(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_DISPLAY_TYPE(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_OS_TYPE(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_INCOMPATIBLE_VERSION(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_ILLEGAL_DOMAIN_NAME(ErrorType.BAD_PARAMETERS), diff --git a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties index 47cb478..d40cb06 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -551,6 +551,7 @@ ACTION_TYPE_FAILED_ILLEGAL_NUM_OF_MONITORS=Cannot ${action} ${type}. Illegal number of monitors is provided, max allowed number of monitors is 1 for VNC and the max number in the ValidNumOfMonitors configuration variable for SPICE. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_OS_TYPE=Cannot ${action} ${type}. Cannot set single display device to non Linux operating system. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_DISPLAY_TYPE=Cannot ${action} ${type}. Cannot set single display device via VNC display. +ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS=Cannot ${action} ${type}. Selected watchdog model is not supported by the operating system. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_INCOMPATIBLE_VERSION=Cannot ${action} ${type}. Cluster does not support Single Qxl Pci devices. ACTION_TYPE_FAILED_ILLEGAL_DOMAIN_NAME=Cannot ${action} ${type}. Illegal Domain name: ${Domain}. Domain name has unsupported special character ${Char}. ACTION_TYPE_FAILED_CANNOT_DECREASE_COMPATIBILITY_VERSION=Cannot decrease data center compatibility version. diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java index 6f30ea8..e3f5318 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java @@ -1492,6 +1492,9 @@ @DefaultStringValue("Cannot ${action} ${type}. Cannot set single display device via VNC display.") String ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_DISPLAY_TYPE(); + @DefaultStringValue("Cannot ${action} ${type}. Selected watchdog model is not supported by the operating system.") + String ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS(); + @DefaultStringValue("Cannot ${action} ${type}. Cannot set single display device to non Linux operating system.") String ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_OS_TYPE(); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties index 8adafcf..e293860 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties @@ -537,6 +537,7 @@ ACTION_TYPE_FAILED_ILLEGAL_NUM_OF_MONITORS=Cannot ${action} ${type}. Illegal number of monitors is provided, max allowed number of monitors is 1 for VNC and the max number in the ValidNumOfMonitors configuration variable for SPICE. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_OS_TYPE=Cannot ${action} ${type}. Cannot set single display device to non Linux operating system. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_DISPLAY_TYPE=Cannot ${action} ${type}. Cannot set single display device via VNC display. +ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS=Cannot ${action} ${type}. Selected watchdog model is not supported by the operating system. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_INCOMPATIBLE_VERSION=Cannot ${action} ${type}. Cluster does not support Single Qxl Pci devices. ACTION_TYPE_FAILED_ILLEGAL_DOMAIN_NAME=Cannot ${action} ${type}. Illegal Domain name: ${Domain}. Domain name has unsupported special character ${Char}. ACTION_TYPE_FAILED_CANNOT_DECREASE_COMPATIBILITY_VERSION=Cannot decrease data center compatibility version. diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties index c60e334..4066454 100644 --- a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties @@ -555,6 +555,7 @@ ACTION_TYPE_FAILED_ILLEGAL_NUM_OF_MONITORS=Cannot ${action} ${type}. Illegal number of monitors is provided, max allowed number of monitors is 1 for VNC and the max number in the ValidNumOfMonitors configuration variable for SPICE. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_OS_TYPE=Cannot ${action} ${type}. Cannot set single display device to non Linux operating system. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_DISPLAY_TYPE=Cannot ${action} ${type}. Cannot set single display device via VNC display. +ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS=Cannot ${action} ${type}. Selected watchdog model is not supported by the operating system. ACTION_TYPE_FAILED_ILLEGAL_SINGLE_DEVICE_INCOMPATIBLE_VERSION=Cannot ${action} ${type}. Cluster does not support Single Qxl Pci devices. ACTION_TYPE_FAILED_ILLEGAL_DOMAIN_NAME=Cannot ${action} ${type}. Illegal Domain name: ${Domain}. Domain name has unsupported special character ${Char}. ACTION_TYPE_FAILED_CANNOT_DECREASE_COMPATIBILITY_VERSION=Cannot decrease data center compatibility version. -- To view, visit http://gerrit.ovirt.org/18448 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7a470fd389f0fcd5d077c56a2f69ee2f79fce065 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Gustavo Frederico Temple Pedrosa <gustavo.pedr...@eldorado.org.br> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches