Yair Zaslavsky has uploaded a new change for review.

Change subject: core: ExportRepoImage should be non transactive and support 
compensation
......................................................................

core: ExportRepoImage should be non transactive and support compensation

Change-Id: I43a223abdf4bfab6a8a65a74e4efea3af03f706c
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportRepoImageCommand.java
1 file changed, 14 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/35413/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportRepoImageCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportRepoImageCommand.java
index 6c3d7cc..2b49902 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportRepoImageCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportRepoImageCommand.java
@@ -29,6 +29,8 @@
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dao.DiskDao;
+import org.ovirt.engine.core.utils.transaction.TransactionMethod;
+import org.ovirt.engine.core.utils.transaction.TransactionSupport;
 
 import java.util.Arrays;
 import java.util.ArrayList;
@@ -37,6 +39,7 @@
 import java.util.Map;
 
 @SuppressWarnings("unused")
+@NonTransactiveCommandAttribute(forceCompensation = true)
 public class ExportRepoImageCommand<T extends ExportRepoImageParameters> 
extends CommandBase<T> {
 
     private DiskImage diskImage;
@@ -96,10 +99,19 @@
 
     @Override
     protected void executeCommand() {
-        DiskImage diskImage = getDiskImage();
+        final DiskImage diskImage = getDiskImage();
         OpenStackImageProviderProxy proxy = getProviderProxy();
 
-        acquireImageDbLock();
+        TransactionSupport.executeInNewTransaction(new 
TransactionMethod<Void>() {
+
+            @Override
+            public Void runInTransaction() {
+                getCompensationContext().snapshotEntityStatus(diskImage, 
diskImage.getStatus());
+                acquireImageDbLock();
+                getCompensationContext().stateChanged();
+                return null;
+            }
+        });
 
         String newImageId = proxy.createImageFromDiskImage(diskImage);
         getParameters().setParentCommand(VdcActionType.ExportRepoImage);


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I43a223abdf4bfab6a8a65a74e4efea3af03f706c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to