Shahar Havivi has uploaded a new change for review. Change subject: core: Payload is not attach via run once. ......................................................................
core: Payload is not attach via run once. Bug-Url: https://bugzilla.redhat.com/1082979 Change-Id: I096d5a8c9e4ed3dfeddb95cd3e48e1c4ef63b819 Signed-off-by: Shahar Havivi <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmOnceCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java 2 files changed, 27 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/27444/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmOnceCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmOnceCommand.java index ab47f32..9b4e4c6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmOnceCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmOnceCommand.java @@ -19,9 +19,14 @@ import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmBase; +import org.ovirt.engine.core.common.businessentities.VmDevice; +import org.ovirt.engine.core.common.businessentities.VmDeviceGeneralType; +import org.ovirt.engine.core.common.businessentities.VmPayload; import org.ovirt.engine.core.common.errors.VdcBllMessages; +import org.ovirt.engine.core.common.utils.VmDeviceType; import org.ovirt.engine.core.common.vdscommands.CreateVmVDSCommandParameters; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dao.VmDeviceDAO; import org.ovirt.engine.core.utils.OsRepositoryImpl; @LockIdNameAttribute @@ -57,9 +62,29 @@ } } + // Load payload if user didn't send via run-once + if (getParameters().getVmPayload() == null) { + loadPayload(); + } + return true; } + private void loadPayload() { + VmDeviceDAO dao = getDbFacade().getVmDeviceDao(); + List<VmDevice> disks = dao.getVmDeviceByVmIdAndType(getParameters().getVmId(), VmDeviceGeneralType.DISK); + + for (VmDevice disk : disks) { + if (VmPayload.isPayload(disk.getSpecParams())) { + VmPayload payload = new VmPayload(VmDeviceType.valueOf(disk.getType().name()), + disk.getSpecParams()); + payload.setType(VmDeviceType.valueOf(disk.getDevice().toUpperCase())); + getVm().setVmPayload(payload); + break; + } + } + } + @Override protected Guid getPredefinedVdsIdToRunOn() { // destination VDS ID has priority over the dedicated VDS 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 dc0e2b8..317fc8d 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 @@ -133,7 +133,7 @@ VmDeviceType.CDROM.getName(), "", 0, - (vm.getVmPayload() == null) ? null : vm.getVmPayload().getSpecParams(), + vm.getVmPayload().getSpecParams(), true, true, true, @@ -152,7 +152,7 @@ VmDeviceType.CDROM.getName(), "", 0, - (vm.getVmPayload() == null) ? null : vm.getVmPayload().getSpecParams(), + null, true, true, true, -- To view, visit http://gerrit.ovirt.org/27444 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I096d5a8c9e4ed3dfeddb95cd3e48e1c4ef63b819 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shahar Havivi <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
