Shahar Havivi has uploaded a new change for review.

Change subject: engine: enable payload with CDROM
......................................................................

engine: enable payload with CDROM

enable VM to run with storage domain CDROM as well as a payload CDROM

Change-Id: Ie1c1a4fc606f67cec90c803d13a052fab9ac1b7e
bug-url: https://bugzilla.redhat.com/882651
Signed-off-by: Shahar Havivi <shav...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
M backend/manager/modules/utils/src/test/resources/AppErrors.properties
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.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
8 files changed, 8 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/10422/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
index 2fc0d5f..ae2e666 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/VmCommand.java
@@ -506,9 +506,6 @@
             addCanDoActionMessage(VdcBllMessages.VMPAYLOAD_SIZE_EXCEEDED);
             addCanDoActionMessage(String.format("$size %1$s", 
lengthInKb.toString()));
             returnValue = false;
-        } else if (!StringUtils.isEmpty(isoPath) && payload.getType() == 
VmDeviceType.CDROM) {
-            addCanDoActionMessage(VdcBllMessages.VMPAYLOAD_CDROM_EXCEEDED);
-            returnValue = false;
         }
         return returnValue;
     }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
index eecdfe19..97d3075 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/VdcBllMessages.java
@@ -500,7 +500,6 @@
     NETWORK_CANNOT_CONTAIN_BOND_NAME,
     VMPAYLOAD_INVALID_PAYLOAD_TYPE,
     VMPAYLOAD_SIZE_EXCEEDED,
-    VMPAYLOAD_CDROM_EXCEEDED,
     VMPAYLOAD_FLOPPY_EXCEEDED,
 
     CONFIG_UNKNOWN_KEY,
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 257117a..8e4ee0a 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties
@@ -785,7 +785,6 @@
 ACTION_TYPE_FAILED_BRICK_ID_REQUIRED=Cannot ${action} ${type}. Brick ID is 
required.
 VMPAYLOAD_INVALID_PAYLOAD_TYPE=VM Payload only supported in CDROM or Floppy 
devices
 VMPAYLOAD_SIZE_EXCEEDED=Payload is limited to ${size}K
-VMPAYLOAD_CDROM_EXCEEDED=Payload CDROM cannot be used when using an additional 
CDROM
 VMPAYLOAD_FLOPPY_EXCEEDED=Payload Floppy cannot be used when using an 
additional Floppy
 ACTION_TYPE_FAILED_GLUSTER_VOLUME_IS_UP=Cannot ${action} ${type}. Gluster 
volume ${volumeName} is up.
 ACTION_TYPE_FAILED_GLUSTER_VOLUME_IS_DOWN=Cannot ${action} ${type}. Gluster 
Volume is down.
diff --git 
a/backend/manager/modules/utils/src/test/resources/AppErrors.properties 
b/backend/manager/modules/utils/src/test/resources/AppErrors.properties
index 150c3c7..d44c741 100644
--- a/backend/manager/modules/utils/src/test/resources/AppErrors.properties
+++ b/backend/manager/modules/utils/src/test/resources/AppErrors.properties
@@ -346,6 +346,5 @@
 ACTION_TYPE_FAILED_QUOTA_VDS_GROUP_LIMIT_EXCEEDED=Cannot ${action} ${type}. 
Quota has no sufficient cluster resources.
 VMPAYLOAD_INVALID_PAYLOAD_TYPE=VM Payload only supported in CDROM or Floppy 
devices
 VMPAYLOAD_SIZE_EXCEEDED=Payload is limited to ${size}K
-VMPAYLOAD_CDROM_EXCEEDED=Payload CDROM cannot be used when using an additional 
CDROM
 VMPAYLOAD_FLOPPY_EXCEEDED=Payload Floppy cannot be used when using an 
additional Floppy
 ACTION_TYPE_FAILED_NETWORK_INTERFACE_MAC_INVALID=Cannot ${action} ${type}. The 
Network Interface ${IfaceName} has an invalid MAC address ${MacAddress}. MAC 
address must be in format "HH:HH:HH:HH:HH:HH" where H is a hexadecimal 
character (either a digit or A-F, case is insignificant).
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
index 2f62dc6..a0fbbb9 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
@@ -115,7 +115,7 @@
             addDevice(struct, vmDevice, "");
         }
         // check first if CD was given as a parameter
-        else if (vm.isRunOnce() && !StringUtils.isEmpty(vm.getCdPath())) {
+        if (vm.isRunOnce() && !StringUtils.isEmpty(vm.getCdPath())) {
             VmDevice vmDevice =
                     new VmDevice(new VmDeviceId(Guid.NewGuid(), vm.getId()),
                             VmDeviceType.DISK.getName(),
@@ -143,17 +143,17 @@
                 if (!vmDevice.getIsManaged()) {
                     continue;
                 }
-                // more then one device mean that we have payload and should 
use it
-                // instead of the blank cd
-                if (!VmPayload.isPayload(vmDevice.getSpecParams()) && 
vmDevices.size() > 1) {
-                    continue;
-                }
+                boolean isPayload = 
(VmPayload.isPayload(vmDevice.getSpecParams()) &&
+                        
vmDevice.getDevice().equals(VmDeviceType.CDROM.getName()));
                 struct = new XmlRpcStruct();
                 String cdPath = vm.getCdPath();
                 addCdDetails(vmDevice, struct);
+                if (isPayload) {
+                    struct.add(VdsProperties.Index, "3");
+                }
                 addAddress(vmDevice, struct);
-                addDevice(struct, vmDevice, cdPath == null ? "" : cdPath);
-                break; // currently only one is supported, may change in 
future releases
+
+                addDevice(struct, vmDevice, (cdPath == null && !isPayload) ? 
"" : cdPath);
             }
         }
     }
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 a238f12..6fda31c 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
@@ -2014,8 +2014,6 @@
 
     String VMPAYLOAD_SIZE_EXCEEDED();
 
-    String VMPAYLOAD_CDROM_EXCEEDED();
-
     String VMPAYLOAD_FLOPPY_EXCEEDED();
 
     // Gluster Messages
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 1ddc439..348fed6 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
@@ -742,7 +742,6 @@
 NON_VM_NETWORK_NOT_SUPPORTED_FOR_POOL_LEVEL=Non-VM networks are not supported 
in this Data-Center.
 VMPAYLOAD_INVALID_PAYLOAD_TYPE=VM Payload only supported in CDROM or Floppy 
devices
 VMPAYLOAD_SIZE_EXCEEDED=Payload is limited to ${size}K
-VMPAYLOAD_CDROM_EXCEEDED=Payload CDROM cannot be used when using an additional 
CDROM
 VMPAYLOAD_FLOPPY_EXCEEDED=Payload Floppy cannot be used when using an 
additional Floppy
 
 ERROR_GET_STORAGE_DOMAIN_LIST=Cannot get Storage Domains list.
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 51e2f56..9cdc936 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
@@ -742,7 +742,6 @@
 NON_VM_NETWORK_NOT_SUPPORTED_FOR_POOL_LEVEL=Non-VM networks are not supported 
in this Data-Center.
 VMPAYLOAD_INVALID_PAYLOAD_TYPE=VM Payload only supported in CDROM or Floppy 
devices
 VMPAYLOAD_SIZE_EXCEEDED=Payload is limited to ${size}K
-VMPAYLOAD_CDROM_EXCEEDED=Payload CDROM cannot be used when using an additional 
CDROM
 VMPAYLOAD_FLOPPY_EXCEEDED=Payload Floppy cannot be used when using an 
additional Floppy
 ERROR_GET_STORAGE_DOMAIN_LIST=Cannot get Storage Domains list.
 ACTION_TYPE_FAILED_VM_CANNOT_BE_PINNED_TO_CPU_AND_MIGRATABLE=Migratable VM's 
cannot be pinned to CPU.


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie1c1a4fc606f67cec90c803d13a052fab9ac1b7e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Shahar Havivi <shav...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to