Daniel Erez has uploaded a new change for review. Change subject: core: update images size in DB after migration ......................................................................
core: update images size in DB after migration Images actual size should be updated in db after live disk migration (info data is fetched using GetImageInfo). Change-Id: I4ec8e2e0c8017b6576f9a849d419e87d6d509c69 Bug-Url: https://bugzilla.redhat.com/878460 Signed-off-by: Daniel Erez <de...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java 1 file changed, 29 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/11482/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java index dba186a..af94eff 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/lsm/VmReplicateDiskFinishTaskHandler.java @@ -8,11 +8,13 @@ import org.ovirt.engine.core.common.action.LiveMigrateDiskParameters; import org.ovirt.engine.core.common.asynctasks.AsyncTaskType; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.DiskImageDynamic; import org.ovirt.engine.core.common.businessentities.ImageStatus; import org.ovirt.engine.core.common.businessentities.ImageStorageDomainMapId; import org.ovirt.engine.core.common.businessentities.image_storage_domain_map; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.vdscommands.DeleteImageGroupVDSCommandParameters; +import org.ovirt.engine.core.common.vdscommands.GetImageInfoVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; import org.ovirt.engine.core.common.vdscommands.VDSParametersBase; import org.ovirt.engine.core.common.vdscommands.VDSReturnValue; @@ -21,6 +23,7 @@ import org.ovirt.engine.core.compat.TransactionScopeOption; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dao.DiskImageDAO; +import org.ovirt.engine.core.dao.DiskImageDynamicDAO; import org.ovirt.engine.core.dao.ImageStorageDomainMapDao; import org.ovirt.engine.core.utils.transaction.TransactionMethod; import org.ovirt.engine.core.utils.transaction.TransactionSupport; @@ -50,6 +53,7 @@ // If the split succeeded, update the database if (ret.getSucceeded()) { moveDiskInDB(); + updateImagesInfo(); ImagesHandler.updateImageStatus(getEnclosingCommand().getParameters().getDestinationImageId(), ImageStatus.OK); } @@ -81,6 +85,27 @@ }); } + private void updateImagesInfo() { + for (DiskImage image : getDiskImageDao().getAllSnapshotsForImageGroup + (getEnclosingCommand().getParameters().getImageGroupID())) { + VDSReturnValue ret = Backend.getInstance().getResourceManager().RunVdsCommand( + VDSCommandType.GetImageInfo, + new GetImageInfoVDSCommandParameters(getEnclosingCommand().getParameters().getStoragePoolId(), + getEnclosingCommand().getParameters().getTargetStorageDomainId(), + getEnclosingCommand().getParameters().getImageGroupID(), + image.getImageId())); + + DiskImage imageFromIRS = (DiskImage) ret.getReturnValue(); + DiskImageDynamic diskImageDynamic = getDiskImageDynamicDao().get(image.getImageId()); + + // Update image's actual size in DB + if (imageFromIRS != null && diskImageDynamic != null) { + diskImageDynamic.setactual_size(imageFromIRS.getactual_size()); + getDiskImageDynamicDao().update(diskImageDynamic); + } + } + } + private static DiskImageDAO getDiskImageDao() { return DbFacade.getInstance().getDiskImageDao(); } @@ -89,6 +114,10 @@ return DbFacade.getInstance().getImageStorageDomainMapDao(); } + private static DiskImageDynamicDAO getDiskImageDynamicDao() { + return DbFacade.getInstance().getDiskImageDynamicDao(); + } + @Override protected VDSCommandType getVDSCommandType() { return VDSCommandType.DeleteImageGroup; -- To view, visit http://gerrit.ovirt.org/11482 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4ec8e2e0c8017b6576f9a849d419e87d6d509c69 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <de...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches