Shahar Havivi has uploaded a new change for review. Change subject: engine: VmPayload needs to inherit from VmDevice ......................................................................
engine: VmPayload needs to inherit from VmDevice It is represent a device and we need the Address and the Id for stable devices. Change-Id: Ieabf99eaaff0d6e68a0521af3df43a774ca31590 Bug-Url: https://bugzilla.redhat.com/1138314 Signed-off-by: Shahar Havivi <[email protected]> --- 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/GetVmPayloadQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmOnceCommand.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/VmCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmsResourceTest.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java M backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java 12 files changed, 34 insertions(+), 29 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/33679/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 54477fd..f5828ac 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 @@ -846,7 +846,7 @@ if (payload != null) { VmDeviceUtils.addManagedDevice(new VmDeviceId(Guid.newGuid(), getParameters().getVmId()), VmDeviceGeneralType.DISK, - payload.getType(), + payload.getDeviceType(), payload.getSpecParams(), true, true, diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmPayloadQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmPayloadQuery.java index 639d778..8651101 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmPayloadQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmPayloadQuery.java @@ -32,7 +32,7 @@ if (VmPayload.isPayload(disk.getSpecParams())) { VmPayload payload = new VmPayload(VmDeviceType.valueOf(disk.getType().name()), disk.getSpecParams()); - payload.setType(VmDeviceType.valueOf(disk.getDevice().toUpperCase())); + payload.setDeviceType(VmDeviceType.valueOf(disk.getDevice().toUpperCase())); for (Map.Entry<String, String> entry : payload.getFiles().entrySet()) { entry.setValue(new String(Base64.decodeBase64(entry.getValue()))); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java index d21f833..ed0c849 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java @@ -842,7 +842,7 @@ if (checkPayload(getParameters().getVmPayload(), getParameters().getDiskPath()) && !StringUtils.isEmpty(getParameters().getFloppyPath()) && - getParameters().getVmPayload().getType() == VmDeviceType.FLOPPY) { + getParameters().getVmPayload().getDeviceType() == VmDeviceType.FLOPPY) { return failCanDoAction(VdcBllMessages.VMPAYLOAD_FLOPPY_EXCEEDED); } 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 b33035f..a8223e7 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 @@ -91,7 +91,7 @@ if (VmPayload.isPayload(disk.getSpecParams())) { VmPayload payload = new VmPayload(VmDeviceType.valueOf(disk.getType().name()), disk.getSpecParams()); - payload.setType(VmDeviceType.valueOf(disk.getDevice().toUpperCase())); + payload.setDeviceType(VmDeviceType.valueOf(disk.getDevice().toUpperCase())); getVm().setVmPayload(payload); break; } 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 da046a1..cef3a9b 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 @@ -322,7 +322,7 @@ if (!getParameters().isClearPayload()) { VmDeviceUtils.addManagedDevice(new VmDeviceId(Guid.newGuid(), getVmId()), VmDeviceGeneralType.DISK, - payload.getType(), + payload.getDeviceType(), payload.getSpecParams(), true, true, 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 f0fcec5..39b989a 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 @@ -527,7 +527,7 @@ protected boolean checkPayload(VmPayload payload, String isoPath) { boolean returnValue = true; - if (payload.getType() != VmDeviceType.CDROM && payload.getType() != VmDeviceType.FLOPPY) { + if (payload.getDeviceType() != VmDeviceType.CDROM && payload.getDeviceType() != VmDeviceType.FLOPPY) { addCanDoActionMessage(VdcBllMessages.VMPAYLOAD_INVALID_PAYLOAD_TYPE); returnValue = false; } else { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java index cfd8dcc..9a70c04 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmPayload.java @@ -3,31 +3,37 @@ import java.io.Serializable; import java.util.HashMap; import java.util.Map; - import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.utils.VmDeviceType; -public class VmPayload implements Serializable { +public class VmPayload extends VmDevice implements Serializable { private static final long serialVersionUID = -3665087594884425768L; private static final String SpecParamsPayload = "vmPayload"; private static final String SpecParamsVolumeIdType = "volId"; private static final String SpecParamsFileType = "file"; - private VmDeviceType type; private String volumeId; private HashMap<String, String> files; // file data is base64-encoded public VmPayload() { - this.type = VmDeviceType.CDROM; + setDeviceType(VmDeviceType.CDROM); this.volumeId = null; this.files = new HashMap<String, String>(); } + public VmPayload(VmDevice dev) { + super(dev.getId(), dev.getType(), dev.getDevice(), + dev.getAddress(), dev.getBootOrder(), dev.getSpecParams(), + dev.getIsManaged(), dev.getIsPlugged(), dev.getIsReadOnly(), + dev.getAlias(), dev.getCustomProperties(), dev.getSnapshotId(), + dev.getLogicalName()); + } + @SuppressWarnings("unchecked") public VmPayload(VmDeviceType type, Map<String, Object> specParams) { - this.type = type; + setDeviceType(type); Map<String, Object> payload = (Map<String, Object>)specParams.get(SpecParamsPayload); this.volumeId = (String)payload.get(SpecParamsVolumeIdType); @@ -42,12 +48,12 @@ return payload.length() <= Config.<Integer> getValue(ConfigValues.PayloadSize); } - public VmDeviceType getType() { - return this.type; + public VmDeviceType getDeviceType() { + return VmDeviceType.getByName(super.getDevice()); } - public void setType(VmDeviceType type) { - this.type = type; + public void setDeviceType(VmDeviceType type) { + super.setDevice(type.getName()); } public String getVolumeId() { diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java index 36ba68f..7a1d489 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java @@ -1072,7 +1072,7 @@ private VmPayload getPayloadModel() { VmPayload payload = new VmPayload(); - payload.setType(VmDeviceType.CDROM); + payload.setDeviceType(VmDeviceType.CDROM); payload.getFiles().put("payloadFile", new String(Base64.decodeBase64(PAYLOAD_COMTENT))); return payload; } diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmsResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmsResourceTest.java index 359d846..b40a69f 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmsResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmsResourceTest.java @@ -1224,7 +1224,7 @@ private VmPayload getPayloadModel() { VmPayload payload = new VmPayload(); - payload.setType(VmDeviceType.CDROM); + payload.setDeviceType(VmDeviceType.CDROM); payload.getFiles().put("payloadFile", new String(Base64.decodeBase64(PAYLOAD_COMTENT))); return payload; } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java index 8ac2d01..b335e7f 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java @@ -831,10 +831,10 @@ @Mapping(from = VmPayload.class, to = Payload.class) public static Payload map(VmPayload entity, Payload template) { - if (entity.getType() != null || entity.getFiles().isEmpty()) { + if (entity.getDeviceType() != null || entity.getFiles().isEmpty()) { Payload model = template != null ? template : new Payload(); - if (entity.getType() != null) { - org.ovirt.engine.api.model.VmDeviceType deviceType = map(entity.getType(), null); + if (entity.getDeviceType() != null) { + org.ovirt.engine.api.model.VmDeviceType deviceType = map(entity.getDeviceType(), null); if (deviceType != null) { model.setType(deviceType.value()); } @@ -860,7 +860,7 @@ if (model.getType() != null) { org.ovirt.engine.api.model.VmDeviceType deviceType = org.ovirt.engine.api.model.VmDeviceType.fromValue(model.getType()); if (deviceType!=null) { - entity.setType(map(deviceType, null)); + entity.setDeviceType(map(deviceType, null)); } } if (model.isSetVolumeId()) { diff --git a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java index 750cc3d..283b6f3 100644 --- a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java +++ b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java @@ -156,10 +156,10 @@ @Test public void testVmPayloadMapToPaylod() { VmPayload vmPayload = new VmPayload(); - vmPayload.setType(org.ovirt.engine.core.common.utils.VmDeviceType.CDROM); + vmPayload.setDeviceType(org.ovirt.engine.core.common.utils.VmDeviceType.CDROM); vmPayload.setVolumeId("CD-VOL"); Payload payload = VmMapper.map(vmPayload, null); - assertEquals(vmPayload.getType().name().toLowerCase(), payload.getType()); + assertEquals(vmPayload.getDeviceType().name().toLowerCase(), payload.getType()); assertEquals(vmPayload.getVolumeId(), payload.getVolumeId()); } @@ -169,7 +169,7 @@ payload.setType("CDROM"); payload.setVolumeId("CD-VOL"); VmPayload vmPayload = VmMapper.map(payload, null); - assertEquals(payload.getType(), vmPayload.getType().name()); + assertEquals(payload.getType(), vmPayload.getDeviceType().name()); assertEquals(payload.getVolumeId(), vmPayload.getVolumeId()); } 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 a591fad..9b07645 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 @@ -7,7 +7,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; - import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.FeatureSupported; @@ -132,7 +131,7 @@ protected void buildVmCD() { Map<String, Object> struct; // check if we have payload CD - if (vm.getVmPayload() != null && vm.getVmPayload().getType() == VmDeviceType.CDROM) { + if (vm.getVmPayload() != null && vm.getVmPayload().getDeviceType() == VmDeviceType.CDROM) { VmDevice vmDevice = new VmDevice(new VmDeviceId(Guid.newGuid(), vm.getId()), VmDeviceGeneralType.DISK, @@ -195,7 +194,7 @@ @Override protected void buildVmFloppy() { // check if we have payload CD - if (vm.getVmPayload() != null && vm.getVmPayload().getType() == VmDeviceType.FLOPPY) { + if (vm.getVmPayload() != null && vm.getVmPayload().getDeviceType() == VmDeviceType.FLOPPY) { VmDevice vmDevice = new VmDevice(new VmDeviceId(Guid.newGuid(), vm.getId()), VmDeviceGeneralType.DISK, @@ -556,7 +555,7 @@ // We do not validate the size of the content being passed to the VM payload by VmPayload.isPayloadSizeLegal(). // The sysprep file size isn't being verified for 3.0 clusters and below, so we maintain the same behavior here. VmPayload vmPayload = new VmPayload(); - vmPayload.setType(VmDeviceType.FLOPPY); + vmPayload.setDeviceType(VmDeviceType.FLOPPY); vmPayload.getFiles().put(SYSPREP_FILE_NAME, Base64.encodeBase64String(sysPrepContent.getBytes())); VmDevice vmDevice = @@ -581,7 +580,7 @@ @Override protected void buildCloudInitVmPayload(Map<String, byte[]> cloudInitContent) { VmPayload vmPayload = new VmPayload(); - vmPayload.setType(VmDeviceType.CDROM); + vmPayload.setDeviceType(VmDeviceType.CDROM); vmPayload.setVolumeId(CLOUD_INIT_VOL_ID); for (Map.Entry<String, byte[]> entry : cloudInitContent.entrySet()) { vmPayload.getFiles().put(entry.getKey(), Base64.encodeBase64String(entry.getValue())); -- To view, visit http://gerrit.ovirt.org/33679 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ieabf99eaaff0d6e68a0521af3df43a774ca31590 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
