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

Reply via email to