Eldan Shachar has uploaded a new change for review. Change subject: core: Add migration options to OVF ......................................................................
core: Add migration options to OVF Most migration options were not saved in OVF, this caused a problem when changing those options while VM was running (due to the "next run" snapshot OVF). - Added support for the options: MIGRATION_SUPPORT, DEDICATED_VM_FOR_VDS and USE_HOST_CPU in the OVF reader\writer. - Added verifcation for the DEDICATED_VM_FOR_VDS option - makes sure host exists in the current cluser. Added in: import vm, import template, snapshot manager. Change-Id: I5f0025e5ac59dac0a1569729c2fef8186e0885db Bug-Url: https://bugzilla.redhat.com/1124449 Signed-off-by: Eldan Shachar <eshac...@redhat.com> --- 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/CommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.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/VmManagementCommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.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 backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmReader.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmWriter.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java 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 17 files changed, 123 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/32899/1 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 33232a7..10ad09e 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 @@ -296,7 +296,7 @@ return false; } } - return isDedicatedVdsOnSameCluster(vmStaticFromParams); + return isDedicatedVdsExistOnSameCluster(vmStaticFromParams, false); } protected boolean shouldCheckSpaceInStorageDomains() { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java index 8f7965b..244f9a7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; import java.util.Set; import javax.ejb.TransactionRolledbackLocalException; @@ -63,6 +64,8 @@ import org.ovirt.engine.core.common.businessentities.CommandEntity; import org.ovirt.engine.core.common.businessentities.IVdsAsyncCommand; import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum; +import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.errors.VdcBllErrors; @@ -2306,4 +2309,37 @@ protected MacPoolManagerStrategy getMacPool() { return MacPoolPerDcSingleton.getInstance().poolForDataCenter(getStoragePoolId()); } + + /** + * Checks that dedicated host exists on the same cluster as the VM + * + * @param vm + * - the VM to check + * @param isQuietMode + * - don't write errors (used for cases where the caller fixes the problem instead of throwing an error). + * @return + */ + protected boolean isDedicatedVdsExistOnSameCluster(VmBase vm, Boolean isQuietMode) { + boolean result = true; + if (vm.getDedicatedVmForVds() != null) { + // get dedicated host id + Guid guid = vm.getDedicatedVmForVds(); + // get dedicated host, checks if exists and compare its cluster to the VM cluster + VDS vds = getVdsDAO().get(guid); + if (vds == null) { + if(!isQuietMode) { + getReturnValue().getCanDoActionMessages() + .add(VdcBllMessages.ACTION_TYPE_FAILED_DEDICATED_VDS_DOES_NOT_EXIST.toString()); + } + result = false; + } else if (!Objects.equals(vm.getVdsGroupId(), vds.getVdsGroupId())) { + if(!isQuietMode) { + getReturnValue().getCanDoActionMessages() + .add(VdcBllMessages.ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER.toString()); + } + result = false; + } + } + return result; + } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java index 90d2ef1..d03e83d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java @@ -1024,6 +1024,11 @@ getVm().getStaticData().setMinAllocatedMem(computeMinAllocatedMem()); getVm().getStaticData().setQuotaId(getParameters().getQuotaId()); + // if "run on host" field points to a non existent vds (in the current cluster) -> remove field and continue + if(!isDedicatedVdsExistOnSameCluster(getVm().getStaticData(), true)){ + getVm().setDedicatedVmForVds(null); + } + if (getVm().getOriginalTemplateGuid() != null && !VmTemplateHandler.BLANK_VM_TEMPLATE_ID.equals(getVm().getOriginalTemplateGuid())) { // no need to check this for blank VmTemplate originalTemplate = getVmTemplateDAO().get(getVm().getOriginalTemplateGuid()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java index f299fb7..917c736 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java @@ -404,6 +404,12 @@ protected void addVmTemplateToDb() { getVmTemplate().setVdsGroupId(getParameters().getVdsGroupId()); + + // if "run on host" field points to a non existent vds (in the current cluster) -> remove field and continue + if(!isDedicatedVdsExistOnSameCluster(getVmTemplate(), true)){ + getVmTemplate().setDedicatedVmForVds(null); + } + getVmTemplate().setStatus(VmTemplateStatus.Locked); getVmTemplate().setQuotaId(getParameters().getQuotaId()); VmHandler.updateImportedVmUsbPolicy(getVmTemplate()); 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 5b2a6be..5132110 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 @@ -439,7 +439,7 @@ return failCanDoAction(VdcBllMessages.VM_CANNOT_UPDATE_CLUSTER); } - if (!isDedicatedVdsOnSameCluster(vmFromParams.getStaticData())) { + if (!isDedicatedVdsExistOnSameCluster(vmFromParams.getStaticData(), false)) { return false; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java index 50469f5..fa95c26 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmManagementCommandBase.java @@ -5,7 +5,6 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; -import java.util.Objects; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; @@ -66,29 +65,6 @@ instanceType = getVmTemplateDAO().getInstanceType(getInstanceTypeId()); } return instanceType; - } - - /** - * Checks that dedicated host is on the same cluster as the VM - * - * @param vm - * - the VM to check - * @return - */ - protected boolean isDedicatedVdsOnSameCluster(VmStatic vm) { - boolean result = true; - if (vm.getDedicatedVmForVds() != null) { - // get dedicated host id - Guid guid = vm.getDedicatedVmForVds(); - // get dedicated host cluster and comparing it to VM cluster - VDS vds = getVdsDAO().get(guid); - result = vds != null && (Objects.equals(vm.getVdsGroupId(), vds.getVdsGroupId())); - } - if (!result) { - getReturnValue().getCanDoActionMessages() - .add(VdcBllMessages.ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER.toString()); - } - return result; } private final static Pattern cpuPinningPattern = diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java index b856908..eaed86e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/snapshots/SnapshotsManager.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import org.apache.commons.lang.StringUtils; @@ -25,6 +26,7 @@ import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType; import org.ovirt.engine.core.common.businessentities.Snapshot; +import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VmDevice; @@ -543,7 +545,6 @@ vm.setInterfaces(interfaces); // These fields are not saved in the OVF, so get them from the current VM. - vm.setDedicatedVmForVds(oldVmStatic.getDedicatedVmForVds()); vm.setIsoPath(oldVmStatic.getIsoPath()); vm.setVdsGroupId(oldVmStatic.getVdsGroupId()); // The VM configuration does not hold the vds group Id. @@ -558,6 +559,10 @@ vm.setVdsGroupCpuName(vdsGroup.getcpu_name()); } } + // if the required dedicated host is invalid -> use current VM dedicated host + if(!isDedicatedVdsExistOnSameCluster(vm.getStaticData())) { + vm.setDedicatedVmForVds(oldVmStatic.getDedicatedVmForVds()); + } validateQuota(vm); return true; } catch (OvfReaderException e) { @@ -567,6 +572,27 @@ } /** + * Checks that dedicated host exists on the same cluster as the VM + * + * @param vm + * - the VM to check + * @return + */ + protected boolean isDedicatedVdsExistOnSameCluster(VmStatic vm) { + boolean result = true; + if (vm.getDedicatedVmForVds() != null) { + // get dedicated host id + Guid guid = vm.getDedicatedVmForVds(); + // get dedicated host, checks if exists and compare its cluster to the VM cluster + VDS vds = DbFacade.getInstance().getVdsDao().get(guid); + if (vds == null || !Objects.equals(vm.getVdsGroupId(), vds.getVdsGroupId())) { + result = false; + } + } + return result; + } + + /** * Validate whether the quota supplied in snapshot configuration exists in<br> * current setup, if not reset to null.<br> * 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 f95ca61..bf88157 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 @@ -196,6 +196,7 @@ ACTION_TYPE_FAILED_SPM_CHANGED(ErrorType.CONFLICT), ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_STORAGE_DOMAIN(ErrorType.CONFLICT), ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER(ErrorType.CONFLICT), + ACTION_TYPE_FAILED_DEDICATED_VDS_DOES_NOT_EXIST(ErrorType.CONFLICT), ACTION_TYPE_FAILED_DISK_MAX_SIZE_EXCEEDED(ErrorType.CONFLICT), ACTION_TYPE_FAILED_DISK_CONFIGURATION_NOT_SUPPORTED(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED(ErrorType.CONFLICT), 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 7103806..1e04874 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -214,6 +214,7 @@ ACTION_TYPE_FAILED_SPM_CHANGED=Cannot ${action} ${type}. The Data Center's Storage Pool Manager has changed. ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_STORAGE_DOMAIN=Cannot ${action} ${type}. Low disk space on Storage Domain ${storageName}. ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER=Cannot ${action} ${type}. VM is pinned to a specific host. The host's cluster must be the same as the selected VM cluster. +ACTION_TYPE_FAILED_DEDICATED_VDS_DOES_NOT_EXIST=Cannot ${action} ${type}. VM is pinned to a specific host. The required host doesn't exist. ACTION_TYPE_FAILED_DISK_CONFIGURATION_NOT_SUPPORTED=Cannot ${action} ${type}. Disk configuration (${volumeFormat} ${volumeType}) is incompatible with the storage domain type. ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED=Cannot ${action} ${type}. The OVF configuration could not be parsed. ACTION_TYPE_FAILED_DISK_LUN_IS_ALREADY_IN_USE=Cannot ${action} ${type}. The provided lun is used by another disk. diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java index 8a013b2..4d85f14 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java @@ -69,4 +69,7 @@ final static String IS_SPICE_FILE_TRANSFER_ENABLED = "IsSpiceFileTransferEnabled"; final static String IS_SPICE_COPY_PASTE_ENABLED = "IsSpiceCopyPasteEnabled"; final static String COMMENT = "Comment"; + final static String MIGRATION_SUPPORT = "MigrationSupport"; + final static String DEDICATED_VM_FOR_VDS = "DedicatedVmForVds"; + final static String USE_HOST_CPU = "UseHostCpu"; } diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java index 16c1b12..6f50efb 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.common.businessentities.DiskInterface; import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.ImageStatus; +import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.OriginType; import org.ovirt.engine.core.common.businessentities.SerialNumberPolicy; import org.ovirt.engine.core.common.businessentities.SsoMethod; @@ -642,6 +643,21 @@ } } + node = content.SelectSingleNode(OvfProperties.MIGRATION_SUPPORT); + if (node != null) { + if (StringUtils.isNotEmpty(node.innerText)) { + MigrationSupport migrationSupport = MigrationSupport.forValue(Integer.parseInt(node.innerText)); + vmBase.setMigrationSupport(migrationSupport); + } + } + + node = content.SelectSingleNode(OvfProperties.DEDICATED_VM_FOR_VDS); + if (node != null) { + if (StringUtils.isNotEmpty(node.innerText)) { + vmBase.setDedicatedVmForVds(Guid.createGuidFromString(node.innerText)); + } + } + node = content.SelectSingleNode(OvfProperties.SERIAL_NUMBER_POLICY); if (node != null) { if (StringUtils.isNotEmpty(node.innerText)) { diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmReader.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmReader.java index ad3e099..efec66a 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmReader.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmReader.java @@ -207,6 +207,11 @@ if (node != null) { _vm.setUseLatestVersion(Boolean.parseBoolean(node.innerText)); } + + node = content.SelectSingleNode(OvfProperties.USE_HOST_CPU); + if (node != null) { + _vm.setUseHostCpuFlags(Boolean.parseBoolean(node.innerText)); + } } @Override diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmWriter.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmWriter.java index 97bd737..35b629a 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmWriter.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfVmWriter.java @@ -86,6 +86,10 @@ _writer.WriteEndElement(); } + _writer.WriteStartElement(OvfProperties.USE_HOST_CPU); + _writer.WriteRaw(String.valueOf(_vm.getStaticData().isUseHostCpuFlags())); + _writer.WriteEndElement(); + _writer.WriteStartElement(OvfProperties.USE_LATEST_VERSION); _writer.WriteRaw(String.valueOf(_vm.isUseLatestVersion())); _writer.WriteEndElement(); diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java index 02e0ef6..5e12e52 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java @@ -346,6 +346,18 @@ } writeVmInit(); + if (vmBase.getMigrationSupport() != null) { + _writer.WriteStartElement(OvfProperties.MIGRATION_SUPPORT); + _writer.WriteRaw(String.valueOf(vmBase.getMigrationSupport().getValue())); + _writer.WriteEndElement(); + } + + if (vmBase.getDedicatedVmForVds() != null) { + _writer.WriteStartElement(OvfProperties.DEDICATED_VM_FOR_VDS); + _writer.WriteRaw(String.valueOf(vmBase.getDedicatedVmForVds())); + _writer.WriteEndElement(); + } + if (vmBase.getSerialNumberPolicy() != null) { _writer.WriteStartElement(OvfProperties.SERIAL_NUMBER_POLICY); _writer.WriteRaw(String.valueOf(vmBase.getSerialNumberPolicy().getValue())); 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 460f230..977ca95 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 @@ -577,6 +577,9 @@ @DefaultStringValue("Cannot ${action} ${type}. VM is pinned to a specific host. The host's cluster must be the same as the selected VM cluster.") String ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER(); + @DefaultStringValue("Cannot ${action} ${type}. VM is pinned to a specific host. The required host doesn't exist.") + String ACTION_TYPE_FAILED_DEDICATED_VDS_DOES_NOT_EXIST(); + @DefaultStringValue("Cannot ${action} ${type}. Disk configuration (${volumeFormat} ${volumeType}) is incompatible with the storage domain type.") String ACTION_TYPE_FAILED_DISK_CONFIGURATION_NOT_SUPPORTED(); 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 56f66c7..5a8a7e7 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 @@ -201,6 +201,7 @@ ACTION_TYPE_FAILED_SPM_CHANGED=Cannot ${action} ${type}. The Data Center's Storage Pool Manager has changed. ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_STORAGE_DOMAIN=Cannot ${action} ${type}. Low disk space on Storage Domain ${storageName}. ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER=Cannot ${action} ${type}. VM is pinned to a specific host. The host's cluster must be the same as the selected VM cluster. +ACTION_TYPE_FAILED_DEDICATED_VDS_DOES_NOT_EXIST=Cannot ${action} ${type}. VM is pinned to a specific host. The required host doesn't exist. ACTION_TYPE_FAILED_DISK_CONFIGURATION_NOT_SUPPORTED=Cannot ${action} ${type}. Disk configuration (${volumeFormat} ${volumeType}) is incompatible with the storage domain type. ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED=Cannot ${action} ${type}. The OVF configuration could not be parsed. ACTION_TYPE_FAILED_DISK_LUN_IS_ALREADY_IN_USE=Cannot ${action} ${type}. The provided lun is used by another disk. 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 29ee2ac..778d010 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 @@ -212,6 +212,7 @@ ACTION_TYPE_FAILED_SPM_CHANGED=Cannot ${action} ${type}. The Data Center's Storage Pool Manager has changed. ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_STORAGE_DOMAIN=Cannot ${action} ${type}. Low disk space on Storage Domain ${storageName}. ACTION_TYPE_FAILED_DEDICATED_VDS_NOT_IN_SAME_CLUSTER=Cannot ${action} ${type}. VM is pinned to a specific host. The host's cluster must be the same as the selected VM cluster. +ACTION_TYPE_FAILED_DEDICATED_VDS_DOES_NOT_EXIST=Cannot ${action} ${type}. VM is pinned to a specific host. The required host doesn't exist. ACTION_TYPE_FAILED_DISK_CONFIGURATION_NOT_SUPPORTED=Cannot ${action} ${type}. Disk configuration (${volumeFormat} ${volumeType}) is incompatible with the storage domain type. ACTION_TYPE_FAILED_OVF_CONFIGURATION_NOT_SUPPORTED=Cannot ${action} ${type}. The OVF configuration could not be parsed. ACTION_TYPE_FAILED_DISK_LUN_HAS_NO_VALID_TYPE=Cannot ${action} ${type}. The provided lun has no valid lun type. -- To view, visit http://gerrit.ovirt.org/32899 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5f0025e5ac59dac0a1569729c2fef8186e0885db Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Eldan Shachar <eshac...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches