Arik Hadas has uploaded a new change for review. Change subject: core: cow-sparse base volumes of templates ......................................................................
core: cow-sparse base volumes of templates This patch allows to create a template with base volumes which are of type sparse and format qcow2. Change-Id: I9ed39f0360c09799581f146b282e7ccadd1109d9 Bug-Url: https://bugzilla.redhat.com/1168576 Signed-off-by: Arik Hadas <aha...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateImageTemplateCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CreateImageTemplateParameters.java 3 files changed, 34 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/38376/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index 2efbcf1..0c4308f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -203,18 +203,19 @@ } private CreateImageTemplateParameters buildChildCommandParameters(DiskImage diskImage, Guid vmSnapshotId) { + DiskImage imageFromParams = diskInfoDestinationMap.get(diskImage.getId()); CreateImageTemplateParameters createParams = new CreateImageTemplateParameters(diskImage.getImageId(), getVmTemplateId(), getVmTemplateName(), getVmId()); createParams.setStorageDomainId(diskImage.getStorageIds().get(0)); createParams.setVmSnapshotId(vmSnapshotId); createParams.setEntityInfo(getParameters().getEntityInfo()); - createParams.setDestinationStorageDomainId(diskInfoDestinationMap.get(diskImage.getId()) - .getStorageIds() - .get(0)); - createParams.setDiskAlias(diskInfoDestinationMap.get(diskImage.getId()).getDiskAlias()); + createParams.setDestinationStorageDomainId(imageFromParams.getStorageIds().get(0)); + createParams.setDiskAlias(imageFromParams.getDiskAlias()); createParams.setParentParameters(getParameters()); createParams.setQuotaId(getQuotaIdForDisk(diskImage)); - createParams.setDiskProfileId(diskInfoDestinationMap.get(diskImage.getId()).getDiskProfileId()); + createParams.setDiskProfileId(imageFromParams.getDiskProfileId()); + createParams.setVolumeFormat(imageFromParams.getVolumeFormat()); + createParams.setVolumeType(imageFromParams.getVolumeType()); return createParams; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateImageTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateImageTemplateCommand.java index d338ad0..1dacecd 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateImageTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateImageTemplateCommand.java @@ -49,6 +49,13 @@ DiskImage newImage = cloneDiskImage(getDestinationImageId()); fillVolumeInformation(newImage); + if (getParameters().getVolumeFormat() != null) { + newImage.setvolumeFormat(getParameters().getVolumeFormat()); + } + if (getParameters().getVolumeType() != null) { + newImage.setVolumeType(getParameters().getVolumeType()); + } + Guid taskId = persistAsyncTaskPlaceHolder(VdcActionType.AddVmTemplate); VolumeFormat targetFormat = getTargetVolumeFormat(newImage.getVolumeFormat(), newImage.getVolumeType(), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CreateImageTemplateParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CreateImageTemplateParameters.java index 96c7b54..63cc53b 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CreateImageTemplateParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/CreateImageTemplateParameters.java @@ -1,6 +1,9 @@ package org.ovirt.engine.core.common.action; import java.io.Serializable; + +import org.ovirt.engine.core.common.businessentities.VolumeFormat; +import org.ovirt.engine.core.common.businessentities.VolumeType; import org.ovirt.engine.core.compat.Guid; public class CreateImageTemplateParameters extends ImagesActionsParametersBase implements Serializable { @@ -8,6 +11,8 @@ private Guid destinationStorageDomainId; private Guid privateVmTemplateId; + private VolumeType volumeType; + private VolumeFormat volumeFormat; public Guid getVmTemplateId() { return privateVmTemplateId; @@ -56,4 +61,20 @@ public Guid getDestinationStorageDomainId() { return destinationStorageDomainId; } + + public VolumeFormat getVolumeFormat() { + return volumeFormat; + } + + public void setVolumeFormat(VolumeFormat volumeFormat) { + this.volumeFormat = volumeFormat; + } + + public VolumeType getVolumeType() { + return volumeType; + } + + public void setVolumeType(VolumeType volumeType) { + this.volumeType = volumeType; + } } -- To view, visit https://gerrit.ovirt.org/38376 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9ed39f0360c09799581f146b282e7ccadd1109d9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches