From 0247edaa9e79757e8bb93d52608d2df828685d02 Mon Sep 17 00:00:00 2001 From: Arik Hadas Date: Tue, 18 Jul 2023 22:56:33 +0300 Subject: [PATCH] core: do not change qcow+preallocated volumes when moving disks Base volumes can be of QCOW format and preallocated type when the disk is set with incremental-backup enabled. When moving disks, we now propagate the incremental-backup settings forward to CreateVolume so it will keep these volumes preallocated on the destination storage domain. Bug-Url: https://bugzilla.redhat.com/2211608 Signed-off-by: Arik Hadas --- .../org/ovirt/engine/core/bll/CloneVmNoCollapseCommand.java | 3 +-- .../disk/image/CloneImageGroupVolumesStructureCommand.java | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CloneVmNoCollapseCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CloneVmNoCollapseCommand.java index 2a0401ff371..0f2cb76327e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CloneVmNoCollapseCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CloneVmNoCollapseCommand.java @@ -234,8 +234,7 @@ private List prepareImageChainMap(DiskImage diskImage, Guid destImage oldToNewDiskImageMap .keySet() .stream() - .collect(Collectors.toMap(d -> d.getImageId(), - d -> oldToNewDiskImageMap.get(d)))); + .collect(Collectors.toMap(DiskImage::getImageId, oldToNewDiskImageMap::get))); List newChain = new ArrayList(oldToNewDiskImageMap.values()); ImagesHandler.sortImageList(newChain); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/disk/image/CloneImageGroupVolumesStructureCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/disk/image/CloneImageGroupVolumesStructureCommand.java index e8b0ba290ff..71073965600 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/disk/image/CloneImageGroupVolumesStructureCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/disk/image/CloneImageGroupVolumesStructureCommand.java @@ -188,6 +188,7 @@ private void createImage(DiskImage image, int imageIndex) { parameters.setParentCommand(getActionType()); parameters.setParentParameters(getParameters()); parameters.setJobWeight(getParameters().getOperationsJobWeight().get(image.getImageId().toString())); + parameters.setBackup(image.getBackup()); runInternalActionWithTasksContext(ActionType.CreateVolumeContainer, parameters); }