Michael Kublin has uploaded a new change for review. Change subject: engine: AsyncTaskManager - fix restart part 1 (Clean ups) ......................................................................
engine: AsyncTaskManager - fix restart part 1 (Clean ups) The following patch contains a clean ups, the following code is not needed anymore after introducing a fix. Also at some classes like AddVmFromTemplateCommand we can see that child parameters are added to list only after persist of the task to DB, so after a restart we will never have a task which have a parent parameters with all list of child parameters (sic!) Change-Id: I2c8c26b79df08a139c6bd19b28dd376ba69829ca Signed-off-by: Michael Kublin <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionParametersBase.java D backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/IEndedTaskVisitor.java D backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/SetTaskGroupStatusVisitor.java 19 files changed, 1 insertion(+), 63 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/30/12130/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java index 8719237..f810e3d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java @@ -386,7 +386,6 @@ parameters.setParentCommand(VdcActionType.AddDisk); parameters.setEntityId(getParameters().getEntityId()); parameters.setStoragePoolId(getStorageDomain().getstorage_pool_id().getValue()); - getParameters().getImagesParameters().add(parameters); parameters.setParentParameters(getParameters()); if (getVm() != null) { setVmSnapshotIdForDisk(parameters); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java index 7d2430a..282d618 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmAndCloneImageCommand.java @@ -162,7 +162,6 @@ protected void handleCopyResult(DiskImage copiedDiskImage, VdcActionParametersBase parameters, VdcReturnValueBase result) { - getParameters().getImagesParameters().add(parameters); // If a copy cannot be made, abort if (!result.getSucceeded()) { throw new VdcBLLException(VdcBllErrors.VolumeCreationError); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java index a178d22..751e564 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java @@ -648,7 +648,6 @@ getBackend().runInternalAction(VdcActionType.CreateSnapshotFromTemplate, tempVar, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(tempVar); /** * if couldn't create snapshot then stop the transaction and the command diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java index 9c4e96f..870ccf6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmFromTemplateCommand.java @@ -86,7 +86,6 @@ VdcActionType.CreateCloneOfTemplate, p, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(p); /** * if couldnt create snapshot then stop the transaction and the command diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index 71b9419..a3bc7a5 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -357,7 +357,6 @@ createParams.setQuotaId(getParameters().getDiskInfoDestinationMap().get(diskImage.getId()).getQuotaId() != null ? getParameters().getDiskInfoDestinationMap().get(diskImage.getId()).getQuotaId() : null); } - getParameters().getImagesParameters().add(createParams); // The return value of this action is the 'copyImage' task GUID: VdcReturnValueBase retValue = Backend.getInstance().runInternalAction( VdcActionType.CreateImageTemplate, diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java index 50741c5..169ac2f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java @@ -135,7 +135,6 @@ VdcActionParametersBase parrentParamsForTask = getParametersForTask(parentCommand, getParameters()); p.setParentParameters(parrentParamsForTask); - getParameters().getImagesParameters().add(p); VdcReturnValueBase vdcReturnValue = Backend.getInstance().runInternalAction( VdcActionType.CreateSnapshot, diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java index 8e2a771..ea2f8ac 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmCommand.java @@ -305,7 +305,6 @@ if (!vdcRetValue.getSucceeded()) { throw new VdcBLLException(vdcRetValue.getFault().getError(), "Failed during ExportVmCommand"); } - getParameters().getImagesParameters().add(p); getReturnValue().getTaskIdList().addAll(vdcRetValue.getInternalTaskIdList()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java index 83c1757..b2e5937 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ExportVmTemplateCommand.java @@ -63,7 +63,6 @@ VdcActionType.MoveOrCopyImageGroup, p, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(p); if (!vdcRetValue.getSucceeded()) { throw new VdcBLLException(vdcRetValue.getFault().getError(), vdcRetValue.getFault() diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java index 40efa66..cadd508 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java @@ -620,7 +620,6 @@ throw new VdcBLLException(vdcRetValue.getFault().getError(), "ImportVmCommand::MoveOrCopyAllImageGroups: Failed to copy disk!"); } - getParameters().getImagesParameters().add(p); getReturnValue().getTaskIdList().addAll(vdcRetValue.getInternalTaskIdList()); i++; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java index b575197..51091ae 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmTemplateCommand.java @@ -309,7 +309,6 @@ : new VdcBLLException(VdcBllErrors.ENGINE)); } - getParameters().getImagesParameters().add(p); getReturnValue().getTaskIdList().addAll(vdcRetValue.getInternalTaskIdList()); i++; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java index 500db23..51abb8c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MoveOrCopyTemplateCommand.java @@ -182,7 +182,6 @@ VdcActionType.MoveOrCopyImageGroup, p, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(p); getReturnValue().getTaskIdList().addAll(vdcRetValue.getInternalTaskIdList()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java index 7ba2c35..0f29ddc 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java @@ -293,7 +293,6 @@ // Setting lock to null because the lock is released in the child command (RemoveImage) setLock(null); if (vdcReturnValue.getSucceeded()) { - getParameters().getImagesParameters().add(p); getReturnValue().getTaskIdList().addAll(vdcReturnValue.getInternalTaskIdList()); setSucceeded(vdcReturnValue.getSucceeded()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java index 97776bd..e811d40 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveSnapshotCommand.java @@ -124,7 +124,6 @@ VdcActionType.RemoveSnapshotSingleDisk, p, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(p); if (vdcReturnValue != null && vdcReturnValue.getInternalTaskIdList() != null) { getReturnValue().getTaskIdList().addAll(vdcReturnValue.getInternalTaskIdList()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java index 28a832a..e742b79 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RestoreAllSnapshotsCommand.java @@ -173,7 +173,6 @@ taskType, params, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(params); getTaskIdList().addAll(returnValue.getInternalTaskIdList()); return returnValue; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java index ed4a898..a2e02db 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java @@ -346,7 +346,6 @@ setSucceeded(vdcReturnValue.getSucceeded()); if (vdcReturnValue.getSucceeded()) { - getParameters().getImagesParameters().add(createAllSnapshotsFromVmParameters); getReturnValue().getTaskIdList().addAll(vdcReturnValue.getInternalTaskIdList()); // save RunVmParams so we'll know how to run diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java index de7073b..1a0c5ce 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/TryBackToAllSnapshotsOfVmCommand.java @@ -162,7 +162,6 @@ Backend.getInstance().runInternalAction(VdcActionType.TryBackToSnapshot, p, ExecutionHandler.createDefaultContexForTasks(getExecutionContext())); - getParameters().getImagesParameters().add(p); if (vdcReturnValue.getSucceeded()) { getTaskIdList().addAll(vdcReturnValue.getInternalTaskIdList()); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionParametersBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionParametersBase.java index e34f02c..5ef03b8 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionParametersBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionParametersBase.java @@ -5,8 +5,6 @@ import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; -import org.ovirt.engine.core.common.asynctasks.EndedTaskInfo; -import org.ovirt.engine.core.common.asynctasks.IEndedTaskVisitor; import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; import org.ovirt.engine.core.common.interfaces.IVdcUser; import org.ovirt.engine.core.common.utils.ValidationUtils; @@ -43,7 +41,7 @@ private Object entityId; - private ArrayList<VdcActionParametersBase> imagesParameters; + private transient ArrayList<VdcActionParametersBase> imagesParameters; private boolean taskGroupSuccess = true; @@ -185,20 +183,6 @@ public void setTaskGroupSuccess(boolean value) { taskGroupSuccess = value; } - - public boolean Accept(EndedTaskInfo taskInfo, IEndedTaskVisitor visitor) { - boolean retVal = visitor.Visit(taskInfo, this); - if (!retVal) { - for (VdcActionParametersBase parameters : getImagesParameters()) { - retVal = parameters.Accept(taskInfo, visitor); - if (retVal) { - break; - } - } - } - return retVal; - } - public Object getEntityId() { return entityId; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/IEndedTaskVisitor.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/IEndedTaskVisitor.java deleted file mode 100644 index 16184a0..0000000 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/IEndedTaskVisitor.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.ovirt.engine.core.common.asynctasks; - -import org.ovirt.engine.core.common.action.*; - -public interface IEndedTaskVisitor { - boolean Visit(EndedTaskInfo taskInfo, VdcActionParametersBase parameters); -} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/SetTaskGroupStatusVisitor.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/SetTaskGroupStatusVisitor.java deleted file mode 100644 index f096db8..0000000 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/SetTaskGroupStatusVisitor.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.ovirt.engine.core.common.asynctasks; - -import org.ovirt.engine.core.common.action.VdcActionParametersBase; - -public class SetTaskGroupStatusVisitor implements IEndedTaskVisitor { - - /** - * Set the task success by the task status, but only when the command id parameters correspond with the task command - * id. - * - * @param taskInfo - * Task info containing command ID & success indication. - * @param parameters - * Command parameters to set success for. - */ - public boolean Visit(EndedTaskInfo taskInfo, VdcActionParametersBase parameters) { - if (parameters.getCommandId().equals(taskInfo.getTaskParameters().getDbAsyncTask().getCommandId())) { - parameters.setTaskGroupSuccess(taskInfo.getTaskStatus().getTaskEndedSuccessfully()); - } - - return false; - } -} -- To view, visit http://gerrit.ovirt.org/12130 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2c8c26b79df08a139c6bd19b28dd376ba69829ca Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Kublin <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
