Liron Aravot has uploaded a new change for review. Change subject: core: jobs/steps handling for domain deactivation ......................................................................
core: jobs/steps handling for domain deactivation When a Storage Domain is being deactivated, we first attempt to update the OVF data on the domain and only afterward attempt to deactivate it. The OVF update phase may contain create volume operations (in case more OVF stores are needed) and upload image operations afterwards (to update OVF data contained on the OVF stores). This patch handle the jobs/steps of the deactivation scenario, so that on the EXECUTING step all the Upload/Create Image tasks will appear. Change-Id: I4cde77da50fe63a4fda6d9fb61e95fc113e4b54c Signed-off-by: Liron Aravot <lara...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateOvfStoresForStorageDomainCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ProcessOvfUpdateForStorageDomainCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainWithOvfUpdateCommand.java 5 files changed, 26 insertions(+), 6 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/35748/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java index 41149c9..f290858 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java @@ -488,9 +488,13 @@ } } + protected void startFinalizingStep() { + ExecutionHandler.startFinalizingStep(getExecutionContext()); + } + public VdcReturnValueBase endAction() { if (!hasTaskHandlers() || getExecutionIndex() == getTaskHandlers().size() - 1) { - ExecutionHandler.startFinalizingStep(getExecutionContext()); + startFinalizingStep(); } try { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateOvfStoresForStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateOvfStoresForStorageDomainCommand.java index 46e0508..69fe786 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateOvfStoresForStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateOvfStoresForStorageDomainCommand.java @@ -50,6 +50,8 @@ return null; } + protected void startFinalizingStep() {} + @Override protected void endSuccessfully() { endCommandOperations(); @@ -94,7 +96,7 @@ // if we'd have the possibility to know whether we failed because of failure to acquire locks as there's an // update in progress, we could // try again (avoid setSucceeded(true) in that scenario). - VdcReturnValueBase returnValue = getBackend().runInternalAction(VdcActionType.ProcessOvfUpdateForStorageDomain, createProcessOvfUpdateForDomainParams()); + VdcReturnValueBase returnValue = runInternalActionWithTasksContext(VdcActionType.ProcessOvfUpdateForStorageDomain, createProcessOvfUpdateForDomainParams(), null); getReturnValue().getInternalVdsmTaskIdList().addAll(returnValue.getInternalVdsmTaskIdList()); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ProcessOvfUpdateForStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ProcessOvfUpdateForStorageDomainCommand.java index 9ff71c6..5bf7f1a 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ProcessOvfUpdateForStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ProcessOvfUpdateForStorageDomainCommand.java @@ -349,8 +349,8 @@ parameters.setParentParameters(getParameters().getParentParameters()); parameters.setParentCommand(getParameters().getParentCommand()); parameters.setSkipDomainChecks(getParameters().isSkipDomainChecks()); - VdcReturnValueBase returnValueBase = runInternalAction(VdcActionType.CreateOvfStoresForStorageDomain, - parameters, cloneContextAndDetachFromParent()); + VdcReturnValueBase returnValueBase = runInternalActionWithTasksContext(VdcActionType.CreateOvfStoresForStorageDomain, + parameters); if (hasParentCommand()) { getReturnValue().getInternalVdsmTaskIdList().addAll(returnValueBase.getInternalVdsmTaskIdList()); } else { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java index 4ae3510..2529650 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainCommand.java @@ -313,7 +313,11 @@ return null; } }); - notifyAsyncTasks(); + + if (!getParameters().isSkipChecks()) { + notifyAsyncTasks(); + } + setSucceeded(true); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainWithOvfUpdateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainWithOvfUpdateCommand.java index 6bffb53..dcf9d99 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainWithOvfUpdateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/DeactivateStorageDomainWithOvfUpdateCommand.java @@ -8,6 +8,7 @@ import org.ovirt.engine.core.bll.context.CommandContext; import org.ovirt.engine.core.bll.context.CompensationContext; import org.ovirt.engine.core.bll.tasks.CommandCoordinatorUtil; +import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.FeatureSupported; import org.ovirt.engine.core.common.action.CreateOvfStoresForStorageDomainCommandParameters; import org.ovirt.engine.core.common.action.LockProperties; @@ -127,7 +128,7 @@ parameters.setParentParameters(getParameters()); parameters.setParentCommand(getActionType()); parameters.setSkipDomainChecks(true); - VdcReturnValueBase vdsReturnValue = getBackend().endAction(VdcActionType.CreateOvfStoresForStorageDomain, parameters, null); + VdcReturnValueBase vdsReturnValue = getBackend().endAction(VdcActionType.CreateOvfStoresForStorageDomain, parameters, getContext()); createdTasks.addAll(vdsReturnValue.getInternalVdsmTaskIdList()); break; } @@ -140,13 +141,22 @@ return; } + super.startFinalizingStep(); + deactivateStorageDomainAfterTaskExecution(); + } + + protected void startFinalizingStep() {} + + public AuditLogType getAuditLogTypeValue() { + return AuditLogType.UNASSIGNED; } private boolean executeDeactivateCommnad(boolean passContext) { final StorageDomainPoolParametersBase params = new StorageDomainPoolParametersBase(getStorageDomainId(), getStoragePoolId()); params.setSkipChecks(true); params.setSkipLock(true); + params.setShouldBeLogged(true); CommandContext context = passContext ? cloneContext() : null; return getBackend().runInternalAction(VdcActionType.DeactivateStorageDomain, params, context).getSucceeded(); } -- To view, visit http://gerrit.ovirt.org/35748 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4cde77da50fe63a4fda6d9fb61e95fc113e4b54c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Liron Aravot <lara...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches