Daniel Erez has uploaded a new change for review.

Change subject: core: update DiskImageDynamic on RemoveSnapshot
......................................................................

core: update DiskImageDynamic on RemoveSnapshot

* Fetching image's size on endSuccessfully of
  RemoveSnapshotSingleDiskCommand.
* Updating DiskImageDynamic with the retrieved value.

Change-Id: Ie124fb42c34860ee349e91172e0248a2d824b127
Bug-Url: https://bugzilla.redhat.com/923864
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java
2 files changed, 27 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/13243/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
index b548b3d..cbfafee 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/BaseImagesCommand.java
@@ -23,6 +23,7 @@
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.dao.BaseDiskDao;
+import org.ovirt.engine.core.dao.DiskImageDynamicDAO;
 import org.ovirt.engine.core.dao.ImageDao;
 import org.ovirt.engine.core.dao.SnapshotDao;
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
@@ -77,6 +78,11 @@
         return getDbFacade().getSnapshotDao();
     }
 
+    @Override
+    protected DiskImageDynamicDAO getDiskImageDynamicDAO() {
+        return getDbFacade().getDiskImageDynamicDao();
+    }
+
     protected void setImage(DiskImage image) {
         mImage = image;
     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java
index 0324a48..a1b41a6 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotSingleDiskCommand.java
@@ -8,7 +8,9 @@
 import org.ovirt.engine.core.common.action.VdcActionType;
 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.job.StepEnum;
+import 
org.ovirt.engine.core.common.vdscommands.GetImageInfoVDSCommandParameters;
 import 
org.ovirt.engine.core.common.vdscommands.MergeSnapshotsVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
@@ -82,11 +84,30 @@
             
getDestinationDiskImage().setParentId(getDiskImage().getParentId());
             getBaseDiskDao().update(curr);
             getImageDao().update(getDestinationDiskImage().getImage());
+            updateDiskImageDynamic();
         }
 
         setSucceeded(true);
     }
 
+    private void updateDiskImageDynamic() {
+        VDSReturnValue ret = 
Backend.getInstance().getResourceManager().RunVdsCommand(
+                VDSCommandType.GetImageInfo,
+                new 
GetImageInfoVDSCommandParameters(getDestinationDiskImage().getStoragePoolId().getValue(),
+                        getDestinationDiskImage().getStorageIds().get(0),
+                        getDestinationDiskImage().getId(),
+                        getDestinationDiskImage().getImageId()));
+
+        DiskImage imageFromIRS = (DiskImage) ret.getReturnValue();
+        DiskImageDynamic diskImageDynamic = 
getDiskImageDynamicDAO().get(getDestinationDiskImage().getImageId());
+
+        // Update image's actual size in DB
+        if (imageFromIRS != null && diskImageDynamic != null) {
+            
diskImageDynamic.setactual_size(imageFromIRS.getActualSizeFromDiskImage());
+            getDiskImageDynamicDAO().update(diskImageDynamic);
+        }
+    }
+
     @Override
     protected void endWithFailure() {
         // TODO: FILL! We should determine what to do in case of


--
To view, visit http://gerrit.ovirt.org/13243
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie124fb42c34860ee349e91172e0248a2d824b127
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

Reply via email to