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

Reply via email to