Federico Simoncelli has uploaded a new change for review.

Change subject: core: new job when reverting ImportRepoImage
......................................................................

core: new job when reverting ImportRepoImage

Spawning a new task when reverting a task handler generates all sorts of
glitches, e.g.:

- task might asynchronously complete when the command execution index
  reached -1 causing an endless loop in internalEndWithFailure because
  getSucceeded is false (ImportRepoImage hasnt succeeded, not clearing
  tasks)
- the audit log would report (immediately) that the reverting task has
  failed even if it's still running (probably because the end result is
  per command and not per single task)

It seems that the correct way to revert a task using a new async task
is to create a new separate job which would track its execution.

Change-Id: I2fea15129eb9e1b0dc1ed6d7d09d8dd63cddd5db
Signed-off-by: Federico Simoncelli <fsimo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java
1 file changed, 4 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/56/17756/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java
index 83e9eb1..f10d2b6 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCreateTaskHandler.java
@@ -8,9 +8,9 @@
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.AddImageFromScratchParameters;
 import org.ovirt.engine.core.common.action.ImportRepoImageParameters;
+import org.ovirt.engine.core.common.action.RemoveDiskParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
-import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo;
 import org.ovirt.engine.core.common.asynctasks.AsyncTaskType;
 import org.ovirt.engine.core.common.asynctasks.EntityInfo;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
@@ -18,9 +18,6 @@
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.VolumeFormat;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
-import 
org.ovirt.engine.core.common.vdscommands.DeleteImageGroupVDSCommandParameters;
-import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
-import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 
@@ -113,25 +110,9 @@
     }
 
     protected void deleteImageGroup() {
-        VDSReturnValue vdsReturnValue =
-                
Backend.getInstance().getResourceManager().RunVdsCommand(VDSCommandType.DeleteImageGroup,
-                    new DeleteImageGroupVDSCommandParameters(
-                            
enclosingCommand.getParameters().getStoragePoolId(),
-                            
enclosingCommand.getParameters().getStorageDomainId(),
-                            enclosingCommand.getParameters().getImageGroupID(),
-                            true, true));
-
-        AsyncTaskCreationInfo taskCreationInfo = 
vdsReturnValue.getCreationInfo();
-        
enclosingCommand.getReturnValue().getInternalVdsmTaskIdList().add(enclosingCommand.createTask(
-                Guid.Empty,
-                taskCreationInfo,
-                enclosingCommand.getActionType(),
-                VdcObjectType.Disk,
-                new Guid[] { 
enclosingCommand.getParameters().getImageGroupID() })
-        );
-
-        Guid vdsmTaskId = taskCreationInfo.getVdsmTaskId();
-        enclosingCommand.getReturnValue().getVdsmTaskIdList().add(vdsmTaskId);
+        Backend.getInstance().runInternalAction(VdcActionType.RemoveDisk,
+                new 
RemoveDiskParameters(enclosingCommand.getParameters().getImageGroupID()),
+                ExecutionHandler.createInternalJobContext());
     }
 
     @Override


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

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

Reply via email to