Liron Aravot has uploaded a new change for review. Change subject: core: jobs/steps/audit log handling for domain deactivation ......................................................................
core: jobs/steps/audit log 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. Furthermore, when the execution is initiated by the user there's no need to log that there are tasks, as the tasks were created by the flow itself (it's being checked on the CDA phase that there are no tasks prior to the execution). 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/20/35820/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 7dbba31..ab18085 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 @@ -490,9 +490,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 4a09dc0..fe92a66 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 c2e8090..93bbb8e 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 @@ -315,7 +315,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 5d3d917..52425ed 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/35820 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4cde77da50fe63a4fda6d9fb61e95fc113e4b54c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Liron Aravot <lara...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches