Vitor de Lima has uploaded a new change for review. Change subject: core, engine: Avoid migration in ppc64 ......................................................................
core, engine: Avoid migration in ppc64 This patch forces every ppc64 VM to be pinned to a host and every ppc64 cluster to have the "Do not migrate" resilience policy. Since there is not a proper class to handle this kind of information, it was temporarily hard-coded in the code. Change-Id: I4808f3e91ccf37462727a28d35f9f9faae1dfd6c Signed-off-by: Vitor de Lima <vitor.l...@eldorado.org.br> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.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/MigrateVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.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/VdsGroupOperationCommandBase.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/architecture/IsMigrationSupported.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmCommandTest.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, 115 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/21522/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java index 38f99c7..5e5597d9 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java @@ -8,6 +8,7 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.VdsGroupOperationParameters; +import org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.network.Network; @@ -158,6 +159,11 @@ result = false; } + if (!isMigrationSupported() + && getVdsGroup().getMigrateOnError() != MigrateOnErrorOptions.NO) { + return failCanDoAction(VdcBllMessages.MIGRATION_ON_ERROR_IS_NOT_SUPPORTED); + } + if (result) { result = validateClusterPolicy(); } 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 776f602..08e7ae4 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 @@ -10,6 +10,7 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; +import org.ovirt.engine.core.bll.architecture.IsMigrationSupported; import org.ovirt.engine.core.bll.job.ExecutionHandler; import org.ovirt.engine.core.bll.network.MacPoolManager; import org.ovirt.engine.core.bll.quota.QuotaConsumptionParameter; @@ -29,6 +30,7 @@ import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.action.VmManagementParametersBase; import org.ovirt.engine.core.common.action.WatchdogParameters; +import org.ovirt.engine.core.common.archstrategy.ArchStrategyFactory; import org.ovirt.engine.core.common.asynctasks.EntityInfo; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.Disk; @@ -414,6 +416,16 @@ return false; } + boolean isMigrationSupported = + ArchStrategyFactory.getStrategy(getVdsGroup().getArchitecture()) + .run(new IsMigrationSupported(getVdsGroup().getcompatibility_version())) + .returnValue(); + + if (!isMigrationSupported + && vmFromParams.getMigrationSupport() != MigrationSupport.PINNED_TO_HOST) { + return failCanDoAction(VdcBllMessages.VM_MIGRATION_IS_NOT_SUPPORTED); + } + // check cpuPinning if the check haven't failed yet if (!isCpuPinningValid(vmFromParams.getCpuPinning(), vmFromParams.getStaticData())) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java index 13dbecd..f073d06 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java @@ -4,6 +4,7 @@ import java.util.Date; import java.util.List; +import org.ovirt.engine.core.bll.architecture.IsMigrationSupported; import org.ovirt.engine.core.bll.job.ExecutionHandler; import org.ovirt.engine.core.bll.scheduling.SchedulingManager; import org.ovirt.engine.core.bll.scheduling.VdsFreeMemoryChecker; @@ -14,6 +15,7 @@ import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.action.MigrateVmParameters; +import org.ovirt.engine.core.common.archstrategy.ArchStrategyFactory; import org.ovirt.engine.core.common.businessentities.MigrationMethod; import org.ovirt.engine.core.common.businessentities.MigrationSupport; import org.ovirt.engine.core.common.businessentities.VDS; @@ -278,6 +280,15 @@ return false; } + boolean isMigrationSupported = + ArchStrategyFactory.getStrategy(getVdsGroup().getArchitecture()) + .run(new IsMigrationSupported(getVdsGroup().getcompatibility_version())) + .returnValue(); + + if (!isMigrationSupported) { + return failCanDoAction(VdcBllMessages.MIGRATION_IS_NOT_SUPPORTED); + } + // If VM is pinned to host, no migration can occur if (vm.getMigrationSupport() == MigrationSupport.PINNED_TO_HOST) { return failCanDoAction(VdcBllMessages.ACTION_TYPE_FAILED_VM_IS_PINNED_TO_HOST); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java index 302e408..80df6db 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java @@ -11,6 +11,7 @@ import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.action.VdsActionParameters; import org.ovirt.engine.core.common.action.VdsGroupOperationParameters; +import org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDS; @@ -319,6 +320,12 @@ addCanDoActionMessage(VdcBllMessages.VDS_GROUP_CANNOT_SET_TRUSTED_ATTESTATION_SERVER_NOT_CONFIGURED); result = false; } + + if (!isMigrationSupported() + && getVdsGroup().getMigrateOnError() != MigrateOnErrorOptions.NO) { + return failCanDoAction(VdcBllMessages.MIGRATION_ON_ERROR_IS_NOT_SUPPORTED); + } + if (result) { result = validateClusterPolicy(); } 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 ed78f79..2ee703f 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 @@ -9,6 +9,7 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; +import org.ovirt.engine.core.bll.architecture.IsMigrationSupported; import org.ovirt.engine.core.bll.network.cluster.NetworkHelper; import org.ovirt.engine.core.bll.quota.QuotaConsumptionParameter; import org.ovirt.engine.core.bll.quota.QuotaSanityParameter; @@ -22,6 +23,7 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VmManagementParametersBase; import org.ovirt.engine.core.common.action.WatchdogParameters; +import org.ovirt.engine.core.common.archstrategy.ArchStrategyFactory; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskInterface; @@ -330,6 +332,16 @@ return false; } + boolean isMigrationSupported = + ArchStrategyFactory.getStrategy(getVdsGroup().getArchitecture()) + .run(new IsMigrationSupported(getVdsGroup().getcompatibility_version())) + .returnValue(); + + if (!isMigrationSupported + && vmFromParams.getMigrationSupport() != MigrationSupport.PINNED_TO_HOST) { + return failCanDoAction(VdcBllMessages.VM_MIGRATION_IS_NOT_SUPPORTED); + } + // check cpuPinning if (!isCpuPinningValid(vmFromParams.getCpuPinning(), vmFromParams.getStaticData())) { return false; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java index b8dabf6..75c46e9 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VdsGroupOperationCommandBase.java @@ -7,8 +7,10 @@ import java.util.Map.Entry; import org.apache.commons.lang.StringUtils; +import org.ovirt.engine.core.bll.architecture.IsMigrationSupported; import org.ovirt.engine.core.bll.scheduling.SchedulingManager; import org.ovirt.engine.core.common.action.VdsGroupOperationParameters; +import org.ovirt.engine.core.common.archstrategy.ArchStrategyFactory; import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.config.Config; @@ -48,6 +50,12 @@ return getVdsGroup().getArchitecture(); } + protected boolean isMigrationSupported() { + return ArchStrategyFactory.getStrategy(getArchitecture()) + .run(new IsMigrationSupported(getVdsGroup().getcompatibility_version())) + .returnValue(); + } + protected void checkMaxMemoryOverCommitValue() { if (getVdsGroup().getmax_vds_memory_over_commit() <= 0) { getVdsGroup().setmax_vds_memory_over_commit( diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/architecture/IsMigrationSupported.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/architecture/IsMigrationSupported.java new file mode 100644 index 0000000..da4451b --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/architecture/IsMigrationSupported.java @@ -0,0 +1,34 @@ +package org.ovirt.engine.core.bll.architecture; + +import org.ovirt.engine.core.common.archstrategy.ArchCommand; +import org.ovirt.engine.core.compat.Version; + +public class IsMigrationSupported implements ArchCommand { + + // This is reserved for future use, currently there is not a + // class that handles architecture specific capabilities, so + // this class will check if the cluster version supports + // migration + @SuppressWarnings("unused") + private Version version; + + public IsMigrationSupported(Version version) { + this.version = version; + } + + private boolean value; + + @Override + public void runForX86_64() { + value = true; + } + + @Override + public void runForPPC64() { + value = false; + } + + public boolean returnValue() { + return this.value; + } +} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java index 09a7082..d3495f6 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommandTest.java @@ -278,6 +278,7 @@ cmd = spy(new UpdateVdsGroupCommand<VdsGroupOperationParameters>(params)); doReturn(0).when(cmd).compareCpuLevels(any(VDSGroup.class)); + doReturn(true).when(cmd).isMigrationSupported(); doReturn(vdsGroupDAO).when(cmd).getVdsGroupDAO(); doReturn(vdsDAO).when(cmd).getVdsDAO(); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmCommandTest.java index 64b8528..698f08d 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/UpdateVmCommandTest.java @@ -22,6 +22,7 @@ import org.mockito.runners.MockitoJUnitRunner; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VmManagementParametersBase; +import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.DiskInterface; @@ -96,6 +97,7 @@ group = new VDSGroup(); group.setId(Guid.newGuid()); group.setcompatibility_version(Version.v3_0); + group.setArchitecture(ArchitectureType.x86_64); vm.setVdsGroupId(group.getId()); vmStatic.setVdsGroupId(group.getId()); 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 d5c3c68..9a01b55 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 @@ -605,6 +605,9 @@ VM_PINNED_TO_HOST_CANNOT_RUN_ON_THE_DEFAULT_VDS(ErrorType.CONFLICT), HOST_NAME_NOT_AVAILABLE(ErrorType.BAD_PARAMETERS), VM_HOSTCPU_MUST_BE_PINNED_TO_HOST(ErrorType.CONFLICT), + MIGRATION_IS_NOT_SUPPORTED(ErrorType.CONFLICT), + MIGRATION_ON_ERROR_IS_NOT_SUPPORTED(ErrorType.CONFLICT), + VM_MIGRATION_IS_NOT_SUPPORTED(ErrorType.CONFLICT), ACTION_TYPE_FAILED_STORAGE_POOL_IS_NOT_LOCAL(ErrorType.BAD_PARAMETERS), RHEVH_LOCALFS_WRONG_PATH_LOCATION(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 dcc1342..790a659 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -174,6 +174,9 @@ VM_PINNED_TO_HOST_CANNOT_RUN_ON_THE_DEFAULT_VDS=Note: The VM is pinned to Host '${VdsName}' but cannot run on it. HOST_NAME_NOT_AVAILABLE=$VdsName [N/A] VM_HOSTCPU_MUST_BE_PINNED_TO_HOST=Cannot ${action} ${type}. VM with host cpu flags must be pinned to host. +MIGRATION_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Migration is not supported in this CPU architecture. +MIGRATION_ON_ERROR_IS_NOT_SUPPORTED=Cannot ${action} ${type}. This resilience policy is not supported in this CPU architecture. +VM_MIGRATION_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Migration option is not supported in this CPU architecture. ACTION_TYPE_FAILED_VM_NOT_EXIST=Cannot ${action} ${type}. VM doesn't exist. ACTION_TYPE_FAILED_VM_CANNOT_BE_HIGHLY_AVAILABLE_AND_PINNED_TO_HOST=Cannot ${action} ${type}. A highly available VM cannot be pinned to a specific Host ACTION_TYPE_FAILED_VM_GUID_ALREADY_EXIST=Cannot ${action} ${type}. VM with the same identifier already exists. 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 00404e3..8858a18 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 @@ -433,6 +433,15 @@ @DefaultStringValue("$VdsName [N/A]") String HOST_NAME_NOT_AVAILABLE(); + @DefaultStringValue("Cannot ${action} ${type}. Migration is not supported in this CPU architecture.") + String MIGRATION_IS_NOT_SUPPORTED(); + + @DefaultStringValue("Cannot ${action} ${type}. This resilience policy is not supported in this CPU architecture.") + String MIGRATION_ON_ERROR_IS_NOT_SUPPORTED(); + + @DefaultStringValue("Cannot ${action} ${type}. Migration option is not supported in this CPU architecture.") + String VM_MIGRATION_IS_NOT_SUPPORTED(); + @DefaultStringValue("CPU pinning format invalid.") String VM_PINNING_FORMAT_INVALID(); 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 7ac02db..a11fbdc 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 @@ -167,6 +167,9 @@ VM_PINNED_TO_HOST_CANNOT_RUN_ON_THE_DEFAULT_VDS=Note: The VM is pinned to Host '${VdsName}' but cannot run on it. HOST_NAME_NOT_AVAILABLE=$VdsName [N/A] VM_HOSTCPU_MUST_BE_PINNED_TO_HOST=Cannot ${action} ${type}. VM with host cpu flags must be pinned to host. +MIGRATION_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Migration is not supported in this CPU architecture. +MIGRATION_ON_ERROR_IS_NOT_SUPPORTED=Cannot ${action} ${type}. This resilience policy is not supported in this CPU architecture. +VM_MIGRATION_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Migration option is not supported in this CPU architecture. ACTION_TYPE_FAILED_VM_NOT_EXIST=Cannot ${action} ${type}. VM doesn't exist. ACTION_TYPE_FAILED_VM_CANNOT_BE_HIGHLY_AVAILABLE_AND_PINNED_TO_HOST=Cannot ${action} ${type}. A highly available VM cannot be pinned to a specific Host ACTION_TYPE_FAILED_VM_CANNOT_BE_PINNED_TO_CPU_AND_MIGRATABLE=Migratable VM's cannot be pinned to CPU. @@ -918,4 +921,4 @@ SCHEDULING_HOST_FILTERED_REASON=The host ${hostName} did not satisfy ${filterType} filter ${filterName}. VAR__FILTERTYPE__EXTERNAL=$filterType external VAR__FILTERTYPE__INTERNAL=$filterType internal -POWER_MANAGEMENT_ACTION_ON_ENTITY_ALREADY_IN_PROGRESS=Cannot perform ${action}. Another power management action is already in progress. \ No newline at end of file +POWER_MANAGEMENT_ACTION_ON_ENTITY_ALREADY_IN_PROGRESS=Cannot perform ${action}. Another power management action is already in progress. 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 9d5b68a..2a6c608 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 @@ -171,6 +171,9 @@ VM_PINNED_TO_HOST_CANNOT_RUN_ON_THE_DEFAULT_VDS=Note: The VM is pinned to Host '${VdsName}' but cannot run on it. HOST_NAME_NOT_AVAILABLE=$VdsName [N/A] VM_HOSTCPU_MUST_BE_PINNED_TO_HOST=Cannot ${action} ${type}. VM with host cpu flags must be pinned to host. +MIGRATION_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Migration is not supported in this CPU architecture. +MIGRATION_ON_ERROR_IS_NOT_SUPPORTED=Cannot ${action} ${type}. This resilience policy is not supported in this CPU architecture. +VM_MIGRATION_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Migration option is not supported in this CPU architecture. ACTION_TYPE_FAILED_VM_NOT_EXIST=Cannot ${action} ${type}. VM doesn't exist. ACTION_TYPE_FAILED_VM_CANNOT_BE_HIGHLY_AVAILABLE_AND_PINNED_TO_HOST=Cannot ${action} ${type}. A highly available VM cannot be pinned to a specific Host ACTION_TYPE_FAILED_VM_GUID_ALREADY_EXIST=Cannot ${action} ${type}. VM with the same identifier already exists. -- To view, visit http://gerrit.ovirt.org/21522 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4808f3e91ccf37462727a28d35f9f9faae1dfd6c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Vitor de Lima <vitor.l...@eldorado.org.br> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches