Daniel Erez has uploaded a new change for review.

Change subject: core: block virtio-scsi for unsupported OSes
......................................................................

core: block virtio-scsi for unsupported OSes

Block VirtIO-SCSI for unsupported operation systems:
* Added isOsTypeSupportedForVirtioScsi method to VmHandler.
* Added an appropriate VdcBllMessage.
* Modified AddVmCommand and UpdateVmCommand accordingly.
* Updated tests.

Change-Id: Id9907d35b53c0447662bc638146c4c61ac5cce8a
Bug-Url: https://bugzilla.redhat.com/1038613
Signed-off-by: Daniel Erez <de...@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/ChangeVMClusterCommand.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/VmHandler.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.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
11 files changed, 131 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/23860/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 4b0c812..5964183 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
@@ -23,6 +23,7 @@
 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.bll.validator.VmValidationUtils;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.FeatureSupported;
 import org.ovirt.engine.core.common.VdcObjectType;
@@ -36,6 +37,7 @@
 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;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.ImageType;
 import org.ovirt.engine.core.common.businessentities.InstanceType;
@@ -515,9 +517,17 @@
             return failCanDoAction(VdcBllMessages.QOS_CPU_SHARES_OUT_OF_RANGE);
         }
 
-        if (Boolean.TRUE.equals(getParameters().isVirtioScsiEnabled()) &&
-                
!FeatureSupported.virtIoScsi(getVdsGroup().getcompatibility_version())) {
-            return 
failCanDoAction(VdcBllMessages.VIRTIO_SCSI_INTERFACE_IS_NOT_AVAILABLE_FOR_CLUSTER_LEVEL);
+        if (Boolean.TRUE.equals(getParameters().isVirtioScsiEnabled())) {
+            // Verify cluster compatibility
+            if 
(!FeatureSupported.virtIoScsi(getVdsGroup().getcompatibility_version())) {
+                return 
failCanDoAction(VdcBllMessages.VIRTIO_SCSI_INTERFACE_IS_NOT_AVAILABLE_FOR_CLUSTER_LEVEL);
+            }
+
+            // Verify OS compatibility
+            if 
(!VmHandler.isOsTypeSupportedForVirtioScsi(vmFromParams.getOs(), 
getVdsGroup().getcompatibility_version(),
+                    getReturnValue().getCanDoActionMessages())) {
+                return false;
+            }
         }
 
         return true;
@@ -1120,8 +1130,11 @@
 
     protected boolean isVirtioScsiEnabled() {
         Boolean virtioScsiEnabled = getParameters().isVirtioScsiEnabled();
+        boolean isOsSupportedForVirtIoScsi = 
VmValidationUtils.isDiskInterfaceSupportedByOs(
+                getParameters().getVm().getOs(), 
getVdsGroup().getcompatibility_version(), DiskInterface.VirtIO_SCSI);
+
         return virtioScsiEnabled != null ? virtioScsiEnabled :
-                
FeatureSupported.virtIoScsi(getVdsGroup().getcompatibility_version());
+                
FeatureSupported.virtIoScsi(getVdsGroup().getcompatibility_version()) && 
isOsSupportedForVirtIoScsi;
     }
 
     protected boolean isBalloonEnabled() {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
index deaaede..21535b5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ChangeVMClusterCommand.java
@@ -95,9 +95,17 @@
                     return false;
                 }
 
-                if (VmDeviceUtils.isVirtioScsiControllerAttached(vm.getId()) &&
-                        
!FeatureSupported.virtIoScsi(targetCluster.getcompatibility_version())) {
-                    return 
failCanDoAction(VdcBllMessages.VIRTIO_SCSI_INTERFACE_IS_NOT_AVAILABLE_FOR_CLUSTER_LEVEL);
+                if (VmDeviceUtils.isVirtioScsiControllerAttached(vm.getId())) {
+                    // Verify cluster compatibility
+                    if 
(!FeatureSupported.virtIoScsi(targetCluster.getcompatibility_version())) {
+                        return 
failCanDoAction(VdcBllMessages.VIRTIO_SCSI_INTERFACE_IS_NOT_AVAILABLE_FOR_CLUSTER_LEVEL);
+                    }
+
+                    // Verify OS compatibility
+                    if (!VmHandler.isOsTypeSupportedForVirtioScsi(vm.getOs(), 
targetCluster.getcompatibility_version(),
+                            getReturnValue().getCanDoActionMessages())) {
+                        return false;
+                    }
                 }
 
                 // A existing VM cannot be changed into a cluster without a 
defined architecture
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 5586752..85355e4 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
@@ -405,9 +405,17 @@
             return failCanDoAction(VdcBllMessages.QOS_CPU_SHARES_OUT_OF_RANGE);
         }
 
-        if (Boolean.TRUE.equals(getParameters().isVirtioScsiEnabled()) &&
-                
!FeatureSupported.virtIoScsi(getVdsGroup().getcompatibility_version())) {
-            return 
failCanDoAction(VdcBllMessages.VIRTIO_SCSI_INTERFACE_IS_NOT_AVAILABLE_FOR_CLUSTER_LEVEL);
+        if (Boolean.TRUE.equals(getParameters().isVirtioScsiEnabled()) || 
isVirtioScsiEnabledForVm(getVmId())) {
+            // Verify cluster compatibility
+            if 
(!FeatureSupported.virtIoScsi(getVdsGroup().getcompatibility_version())) {
+                return 
failCanDoAction(VdcBllMessages.VIRTIO_SCSI_INTERFACE_IS_NOT_AVAILABLE_FOR_CLUSTER_LEVEL);
+            }
+
+            // Verify OS compatibility
+            if 
(!VmHandler.isOsTypeSupportedForVirtioScsi(vmFromParams.getOs(), 
getVdsGroup().getcompatibility_version(),
+                    getReturnValue().getCanDoActionMessages())) {
+                return false;
+            }
         }
 
         if (Boolean.FALSE.equals(getParameters().isVirtioScsiEnabled())) {
@@ -605,8 +613,11 @@
 
     protected boolean isVirtioScsiEnabled() {
         Boolean virtioScsiEnabled = getParameters().isVirtioScsiEnabled();
-        return virtioScsiEnabled != null ? virtioScsiEnabled :
-                VmDeviceUtils.isVirtioScsiControllerAttached(getVmId());
+        return virtioScsiEnabled != null ? virtioScsiEnabled : 
isVirtioScsiEnabledForVm(getVmId());
+    }
+
+    public boolean isVirtioScsiEnabledForVm(Guid vmId) {
+        return VmDeviceUtils.isVirtioScsiControllerAttached(vmId);
     }
 
     protected boolean hasWatchdog() {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
index 0adb0fd..7dfe9ff 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmHandler.java
@@ -21,6 +21,7 @@
 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;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.EditableField;
 import org.ovirt.engine.core.common.businessentities.EditableOnVm;
@@ -458,6 +459,27 @@
     }
 
     /**
+     * Check if the OS type is supported for VirtIO-SCSI.
+     *
+     * @param osId
+     *            Type of the OS
+     * @param clusterVersion
+     *            Cluster's version
+     * @param reasons
+     *            Reasons List
+     * @return
+     */
+    public static boolean isOsTypeSupportedForVirtioScsi(int osId,
+                                            Version clusterVersion,
+                                            List<String> reasons) {
+        boolean result = VmValidationUtils.isDiskInterfaceSupportedByOs(osId, 
clusterVersion, DiskInterface.VirtIO_SCSI);
+        if (!result) {
+            
reasons.add(VdcBllMessages.ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI.name());
+        }
+        return result;
+    }
+
+    /**
      * Check if the interface name is not duplicate in the list of interfaces.
      *
      * @param interfaces
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
index 858452a..9b95202 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddVmCommandTest.java
@@ -34,6 +34,7 @@
 import org.ovirt.engine.core.common.businessentities.ArchitectureType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DiskImageBase;
+import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
@@ -225,12 +226,52 @@
     }
 
     @Test
+    public void canAddVmWithVirtioScsiControllerNotSupportedOs() {
+        VM vm = createVm();
+        AddVmFromTemplateCommand<AddVmFromTemplateParameters> cmd = 
createVmFromTemplateCommand(vm);
+
+        VDSGroup vdsGroup = createVdsGroup();
+
+        mockOsRepository();
+        mockStorageDomainDAOGetForStoragePool();
+        mockVmTemplateDAOReturnVmTemplate();
+        mockDiskImageDAOGetSnapshotById();
+        mockVerifyAddVM(cmd);
+        mockConfig();
+        mockConfigSizeDefaults();
+        mockMaxPciSlots();
+        mockStorageDomainDaoGetAllStoragesForPool(20);
+        mockUninterestingMethods(cmd);
+        mockDisplayTypes(vm.getOs(), vdsGroup.getcompatibility_version());
+        doReturn(true).when(cmd).checkCpuSockets();
+
+        doReturn(vdsGroup).when(cmd).getVdsGroup();
+        cmd.getParameters().setVirtioScsiEnabled(true);
+        
when(osRepository.getArchitectureFromOS(any(Integer.class))).thenReturn(ArchitectureType.x86_64);
+        when(osRepository.getDiskInterfaces(any(Integer.class), 
any(Version.class))).thenReturn(
+                new ArrayList<>(Arrays.asList("VirtIO")));
+
+        CanDoActionTestUtils.runAndAssertCanDoActionFailure(cmd,
+                
VdcBllMessages.ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI);
+    }
+
+    @Test
     public void isVirtioScsiEnabledDefaultedToTrue() {
+        mockOsRepository();
         AddVmCommand<VmManagementParametersBase> cmd = setupCanAddVmTests(0, 
0);
         doReturn(createVdsGroup()).when(cmd).getVdsGroup();
+        when(osRepository.getDiskInterfaces(any(Integer.class), 
any(Version.class))).thenReturn(
+                new ArrayList<>(Arrays.asList("VirtIO_SCSI")));
         assertTrue("isVirtioScsiEnabled hasn't been defaulted to true on 
cluster >= 3.3.", cmd.isVirtioScsiEnabled());
     }
 
+    private void mockDisplayTypes(int osId, Version clusterVersion) {
+        Map<Integer, Map<Version, List<DisplayType>>> displayTypeMap = new 
HashMap<>();
+        displayTypeMap.put(osId, new HashMap<Version, List<DisplayType>>());
+        displayTypeMap.get(osId).put(clusterVersion, 
Arrays.asList(DisplayType.qxl));
+        when(osRepository.getDisplayTypes()).thenReturn(displayTypeMap);
+    }
+
     protected void 
mockNonInterestingMethodsForCloneVmFromSnapshot(AddVmFromSnapshotCommand<AddVmFromSnapshotParameters>
 cmd) {
         mockUninterestingMethods(cmd);
         doReturn(true).when(cmd).checkCpuSockets();
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 4502ad9..5da8d7a 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
@@ -9,6 +9,7 @@
 import static org.mockito.Mockito.when;
 import static org.ovirt.engine.core.utils.MockConfigRule.mockConfig;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
@@ -89,6 +90,9 @@
             mockConfig(ConfigValues.MaxNumOfVmCpus, "3.0", 16),
             mockConfig(ConfigValues.MaxNumOfVmSockets, "3.0", 16),
             mockConfig(ConfigValues.MaxNumOfCpuPerSocket, "3.0", 16),
+            mockConfig(ConfigValues.MaxNumOfVmCpus, "3.3", 16),
+            mockConfig(ConfigValues.MaxNumOfVmSockets, "3.3", 16),
+            mockConfig(ConfigValues.MaxNumOfCpuPerSocket, "3.3", 16),
             mockConfig(ConfigValues.VirtIoScsiEnabled, 
Version.v3_3.toString(), true)
             );
 
@@ -135,6 +139,8 @@
             }
         });
         doReturn(vm).when(command).getVm();
+
+        
doReturn(false).when(command).isVirtioScsiEnabledForVm(any(Guid.class));
     }
 
     @Test
@@ -295,6 +301,17 @@
         CanDoActionTestUtils.runAndAssertCanDoActionSuccess(command);
     }
 
+    public void testCannotUpdateOSNotSupportVirtioScsi() {
+        prepareVmToPassCanDoAction();
+        group.setcompatibility_version(Version.v3_3);
+
+        
when(command.isVirtioScsiEnabledForVm(any(Guid.class))).thenReturn(true);
+        when(osRepository.getDiskInterfaces(any(Integer.class), 
any(Version.class))).thenReturn(
+                new ArrayList<>(Arrays.asList("VirtIO")));
+
+        CanDoActionTestUtils.runAndAssertCanDoActionFailure(command,
+                
VdcBllMessages.ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI);
+    }
 
     private void prepareVmToPassCanDoAction() {
         vmStatic.setName("vm1");
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 a146ac6..e05d0fe 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
@@ -245,6 +245,7 @@
     
ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_IS_NOT_SUPPORTED_BY_ARCHITECTURE_TYPE(ErrorType.BAD_PARAMETERS),
     
ACTION_TYPE_FAILED_ILLEGAL_WATCHDOG_MODEL_IS_NOT_SUPPORTED_BY_OS(ErrorType.BAD_PARAMETERS),
     
ACTION_TYPE_FAILED_ILLEGAL_VM_DISPLAY_TYPE_IS_NOT_SUPPORTED_BY_OS(ErrorType.BAD_PARAMETERS),
+    
ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI(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 32ded50..8e33664 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -623,6 +623,7 @@
 
ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_IS_NOT_SUPPORTED_BY_ARCHITECTURE_TYPE=Cannot 
${action} ${type}. Selected operating system is not supported by the 
architecture.
 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_VM_DISPLAY_TYPE_IS_NOT_SUPPORTED_BY_OS=Cannot 
${action} ${type}. Selected display type is not supported by the operating 
system.
+ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI=Cannot 
${action} ${type}. Selected operation system does not support VirtIO-SCSI. 
Please disable VirtIO-SCSI for the VM.
 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_ILLEGAL_ARCHITECTURE_TYPE_INCOMPATIBLE=Cannot ${action} 
${type}. Architecture does not match the expected value.
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 b73124b..c34da6b 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
@@ -1696,6 +1696,9 @@
     @DefaultStringValue("Cannot ${action} ${type}. Selected display type is 
not supported by the operating system.")
     String ACTION_TYPE_FAILED_ILLEGAL_VM_DISPLAY_TYPE_IS_NOT_SUPPORTED_BY_OS();
 
+    @DefaultStringValue("Cannot ${action} ${type}. Selected operation system 
does not support VirtIO-SCSI. Please disable VirtIO-SCSI for the VM.")
+    String ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI();
+
     @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 da46dfc..e3f40a3 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
@@ -603,6 +603,7 @@
 
ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_IS_NOT_SUPPORTED_BY_ARCHITECTURE_TYPE=Cannot 
${action} ${type}. Selected operating system is not supported by the 
architecture.
 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_VM_DISPLAY_TYPE_IS_NOT_SUPPORTED_BY_OS=Cannot 
${action} ${type}. Selected display type is not supported by the operating 
system.
+ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI=Cannot 
${action} ${type}. Selected operation system does not support VirtIO-SCSI. 
Please disable VirtIO-SCSI for the VM.
 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_ILLEGAL_ARCHITECTURE_TYPE_INCOMPATIBLE=Cannot ${action} 
${type}. Architecture does not match the expected value.
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 58e6e06..49c339a 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
@@ -624,6 +624,7 @@
 
ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_IS_NOT_SUPPORTED_BY_ARCHITECTURE_TYPE=Cannot 
${action} ${type}. Selected operating system is not supported by the 
architecture.
 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_VM_DISPLAY_TYPE_IS_NOT_SUPPORTED_BY_OS=Cannot 
${action} ${type}. Selected display type is not supported by the operating 
system.
+ACTION_TYPE_FAILED_ILLEGAL_OS_TYPE_DOES_NOT_SUPPORT_VIRTIO_SCSI=Cannot 
${action} ${type}. Selected operation system does not support VirtIO-SCSI. 
Please disable VirtIO-SCSI for the VM.
 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_ILLEGAL_ARCHITECTURE_TYPE_INCOMPATIBLE=Cannot ${action} 
${type}. Architecture does not match the expected value.


-- 
To view, visit http://gerrit.ovirt.org/23860
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id9907d35b53c0447662bc638146c4c61ac5cce8a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Daniel Erez <de...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to