Ravi Nori has uploaded a new change for review.

Change subject: engine : Introduction of CallBack interface
......................................................................

engine : Introduction of CallBack interface

CallBack interface with endAction method has been
introduced. This reduces the depency of AsyncTaskManager
on bll.

Change-Id: Id95a80277ca82ccf034680a302159ca050ee7ba7
Signed-off-by: Ravi Nori <rn...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/ExecutionHandler.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskFactory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandAsyncTask.java
R 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/TaskManagerUtil.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CallBack.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CommandCoordinator.java
10 files changed, 100 insertions(+), 46 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/26275/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
index 96e4dee..d2de8cf 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandsFactory.java
@@ -39,6 +39,12 @@
             "org.ovirt.engine.core.bll.scheduling.commands",
             "org.ovirt.engine.core.bll.scheduling.queries" };
 
+    private static CommandsFactory instance = new CommandsFactory();
+
+    public static CommandsFactory getInstance() {
+        return instance;
+    }
+
     private static ConcurrentMap<String, Class<CommandBase<? extends 
VdcActionParametersBase>>> commandsCache =
             new ConcurrentHashMap<String, Class<CommandBase<? extends 
VdcActionParametersBase>>>(VdcActionType.values().length);
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/ExecutionHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/ExecutionHandler.java
index af8a74b..6ed46f4 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/ExecutionHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/job/ExecutionHandler.java
@@ -49,6 +49,12 @@
 
     private static final List<Class<?>> validationGroups = Arrays.asList(new 
Class<?>[] { PreRun.class });
 
+    private static final ExecutionHandler instance = new ExecutionHandler();
+
+    public static ExecutionHandler getInstance() {
+        return instance;
+    }
+
     /**
      * Creates and returns an instance of {@link Job} entity.
      *
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskFactory.java
index 37671db..84d49fa 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskFactory.java
@@ -1,5 +1,6 @@
 package org.ovirt.engine.core.bll.tasks;
 
+import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.asynctasks.AsyncTaskCreationInfo;
@@ -27,7 +28,7 @@
      *            the info by which we construct the task.
      * @return
      */
-    public static SPMAsyncTask construct(AsyncTaskCreationInfo creationInfo) {
+    public static SPMAsyncTask construct(CommandCoordinator coco, 
AsyncTaskCreationInfo creationInfo) {
         AsyncTasks asyncTask = 
DbFacade.getInstance().getAsyncTaskDao().getByVdsmTaskId(creationInfo.getVdsmTaskId());
         if (asyncTask == null || asyncTask.getActionParameters() == null) {
             asyncTask =
@@ -45,12 +46,12 @@
             creationInfo.setTaskType(AsyncTaskType.unknown);
         }
         AsyncTaskParameters asyncTaskParams = new 
AsyncTaskParameters(creationInfo, asyncTask);
-        return construct(creationInfo.getTaskType(), asyncTaskParams, true);
+        return construct(coco, creationInfo.getTaskType(), asyncTaskParams, 
true);
     }
 
-    public static SPMAsyncTask construct(AsyncTaskCreationInfo creationInfo, 
AsyncTasks asyncTask) {
+    public static SPMAsyncTask construct(CommandCoordinator coco, 
AsyncTaskCreationInfo creationInfo, AsyncTasks asyncTask) {
         AsyncTaskParameters asyncTaskParams = new 
AsyncTaskParameters(creationInfo, asyncTask);
-        return construct(creationInfo.getTaskType(), asyncTaskParams, true);
+        return construct(coco, creationInfo.getTaskType(), asyncTaskParams, 
true);
     }
 
     /**
@@ -66,13 +67,13 @@
      *            the parameters by which we construct the task.
      * @return
      */
-    public static SPMAsyncTask construct(AsyncTaskType taskType, 
AsyncTaskParameters asyncTaskParams, boolean duringInit) {
+    public static SPMAsyncTask construct(CommandCoordinator coco, 
AsyncTaskType taskType, AsyncTaskParameters asyncTaskParams, boolean 
duringInit) {
         try {
             SPMAsyncTask result = null;
             if (taskType == AsyncTaskType.unknown) {
-                result = new SPMAsyncTask(asyncTaskParams);
+                result = new SPMAsyncTask(coco, asyncTaskParams);
             } else {
-                result = new CommandAsyncTask(asyncTaskParams, duringInit);
+                result = new CommandAsyncTask(coco, asyncTaskParams, 
duringInit);
             }
             return result;
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
index 59b0306..63fd1e8 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
@@ -14,6 +14,7 @@
 
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.ovirt.engine.core.bll.Backend;
+import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.VdcActionType;
@@ -72,13 +73,23 @@
 
     private CountDownLatch irsBrokerLatch;
 
-    private static final AsyncTaskManager _taskManager = new 
AsyncTaskManager();
+    private static AsyncTaskManager taskManager;
+    private static final Object LOCK = new Object();
+    private CommandCoordinator coco;
 
-    public static AsyncTaskManager getInstance() {
-        return _taskManager;
+    public static AsyncTaskManager getInstance(CommandCoordinator coco) {
+        if (taskManager == null) {
+            synchronized(LOCK) {
+                if (taskManager == null) {
+                    taskManager = new AsyncTaskManager(coco);
+                }
+            }
+        }
+        return taskManager;
     }
 
-    private AsyncTaskManager() {
+    private AsyncTaskManager(CommandCoordinator coco) {
+        this.coco = coco;
         _tasks = new ConcurrentHashMap<Guid, SPMAsyncTask>();
 
         SchedulerUtil scheduler = SchedulerUtilQuartzImpl.getInstance();
@@ -304,12 +315,12 @@
                 });
     }
 
-    public static void logAndFailTaskOfCommandWithEmptyVdsmId(Guid 
asyncTaskId, String message) {
+    public void logAndFailTaskOfCommandWithEmptyVdsmId(Guid asyncTaskId, 
String message) {
         AsyncTasks task = 
DbFacade.getInstance().getAsyncTaskDao().get(asyncTaskId);
         logAndFailTaskOfCommandWithEmptyVdsmId(task, message);
     }
 
-    public static void logAndFailTaskOfCommandWithEmptyVdsmId(final AsyncTasks 
task, String message) {
+    public void logAndFailTaskOfCommandWithEmptyVdsmId(final AsyncTasks task, 
String message) {
         log.infoFormat(
                 "Failing task with empty vdsm id AsyncTaskType {0} : Task 
'{1}' Parent Command {2}",
                 task.getTaskType(),
@@ -329,7 +340,7 @@
                     task.getTaskId(),
                     (task.getaction_type()));
         AsyncTaskCreationInfo creationInfo = new 
AsyncTaskCreationInfo(Guid.Empty, task.getTaskType(), task.getStoragePoolId());
-        SPMAsyncTask spmTask = AsyncTaskFactory.construct(creationInfo, task);
+        SPMAsyncTask spmTask = AsyncTaskFactory.construct(coco, creationInfo, 
task);
         AsyncTaskStatus failureStatus = new AsyncTaskStatus();
         failureStatus.setStatus(AsyncTaskStatusEnum.finished);
         failureStatus.setResult(AsyncTaskResultEnum.failure);
@@ -618,7 +629,7 @@
     }
 
     public SPMAsyncTask createTask(AsyncTaskType taskType, AsyncTaskParameters 
taskParameters) {
-        return AsyncTaskFactory.construct(taskType, taskParameters, false);
+        return AsyncTaskFactory.construct(coco, taskType, taskParameters, 
false);
     }
 
     public synchronized void startPollingTask(Guid vdsmTaskId) {
@@ -684,7 +695,7 @@
                             SPMAsyncTask task;
                             if 
(partiallyCompletedCommandTasks.containsKey(creationInfo.getVdsmTaskId())) {
                                 AsyncTasks asyncTaskInDb = 
partiallyCompletedCommandTasks.get(creationInfo.getVdsmTaskId());
-                                task = 
AsyncTaskFactory.construct(creationInfo, asyncTaskInDb);
+                                task = AsyncTaskFactory.construct(coco, 
creationInfo, asyncTaskInDb);
                                 if (task.getEntitiesMap() == null) {
                                     task.setEntitiesMap(new HashMap<Guid, 
VdcObjectType>());
                                 }
@@ -693,7 +704,7 @@
                                 // Will result in failure of the command
                                 task.setPartiallyCompletedCommandTask(true);
                             } else {
-                                task = 
AsyncTaskFactory.construct(creationInfo);
+                                task = AsyncTaskFactory.construct(coco, 
creationInfo);
                             }
                             addTaskToManager(task);
                             newlyAddedTasks.add(task);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandAsyncTask.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandAsyncTask.java
index bb39bb2..6209f42 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandAsyncTask.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandAsyncTask.java
@@ -4,13 +4,12 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.ovirt.engine.core.bll.Backend;
 import org.ovirt.engine.core.bll.CommandBase;
 import org.ovirt.engine.core.bll.CommandMultiAsyncTasks;
 import org.ovirt.engine.core.bll.CommandsFactory;
-import org.ovirt.engine.core.bll.context.CommandContext;
 import org.ovirt.engine.core.bll.job.ExecutionContext;
 import org.ovirt.engine.core.bll.job.ExecutionHandler;
+import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
@@ -40,8 +39,8 @@
         return entityInfo;
     }
 
-    public CommandAsyncTask(AsyncTaskParameters parameters, boolean 
duringInit) {
-        super(parameters);
+    public CommandAsyncTask(CommandCoordinator coco, AsyncTaskParameters 
parameters, boolean duringInit) {
+        super(coco, parameters);
         boolean isNewCommandAdded = false;
         synchronized (_lockObject) {
             if (!_multiTasksByCommandIds.containsKey(getCommandId())) {
@@ -148,10 +147,8 @@
                     context = ExecutionHandler.createFinalizingContext(stepId);
                 }
 
-                vdcReturnValue =
-                        
Backend.getInstance().endAction(getEndActionType(dbAsyncTask),
-                                dbAsyncTask.getActionParameters(),
-                                new CommandContext(context));
+                vdcReturnValue = coco.endAction(stepId, 
getEndActionType(dbAsyncTask), dbAsyncTask, context);
+
             } catch (VdcBLLException ex) {
                 log.error(getErrorMessage());
                 log.error(ex.toString());
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
similarity index 83%
rename from 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinator.java
rename to 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
index ca5c384..7268e2f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinator.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
@@ -4,11 +4,16 @@
 import java.util.Map;
 import org.ovirt.engine.core.bll.Backend;
 import org.ovirt.engine.core.bll.CommandBase;
+import org.ovirt.engine.core.bll.CommandsFactory;
+import org.ovirt.engine.core.bll.context.CommandContext;
 import org.ovirt.engine.core.bll.interfaces.BackendInternal;
+import org.ovirt.engine.core.bll.job.ExecutionContext;
 import org.ovirt.engine.core.bll.job.ExecutionHandler;
+import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 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.AsyncTaskParameters;
 import org.ovirt.engine.core.common.asynctasks.AsyncTaskType;
@@ -27,16 +32,16 @@
 import org.ovirt.engine.core.utils.log.LogFactory;
 import org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil;
 
-public class CommandCoordinator {
+public class CommandCoordinatorImpl extends CommandCoordinator {
 
-    private static final CommandCoordinator instance = new 
CommandCoordinator();
+    private static final CommandCoordinatorImpl instance = new 
CommandCoordinatorImpl();
     private static final Log log = LogFactory.getLog(CommandCoordinator.class);
 
-    public static CommandCoordinator getInstance() {
+    public static CommandCoordinatorImpl getInstance() {
         return instance;
     }
 
-    private CommandCoordinator() {
+    private CommandCoordinatorImpl() {
     }
 
     /**
@@ -54,11 +59,11 @@
      * @return Guid of the created task.
      */
     public Guid createTask(Guid taskId,
-                                CommandBase command,
-                                AsyncTaskCreationInfo asyncTaskCreationInfo,
-                                VdcActionType parentCommand,
-                                String description,
-                                Map<Guid, VdcObjectType> entitiesMap) {
+                           CommandBase command,
+                           AsyncTaskCreationInfo asyncTaskCreationInfo,
+                           VdcActionType parentCommand,
+                           String description,
+                           Map<Guid, VdcObjectType> entitiesMap) {
         Step taskStep =
                 ExecutionHandler.addTaskStep(command.getExecutionContext(),
                         
StepEnum.getStepNameByTaskType(asyncTaskCreationInfo.getTaskType()),
@@ -96,7 +101,7 @@
     }
 
     public SPMAsyncTask createTask(AsyncTaskType taskType, AsyncTaskParameters 
taskParameters) {
-        return AsyncTaskFactory.construct(taskType, taskParameters, false);
+        return AsyncTaskFactory.construct(this, taskType, taskParameters, 
false);
     }
 
     public AsyncTasks getAsyncTask(
@@ -181,8 +186,18 @@
         }
     }
 
+    public VdcReturnValueBase endAction(Guid stepId,
+                                        VdcActionType actionType,
+                                        AsyncTasks dbAsyncTask,
+                                        ExecutionContext context) {
+        VdcActionParametersBase parameters = dbAsyncTask.getActionParameters();
+        CommandBase<?> command = 
CommandsFactory.getInstance().createCommand(actionType, parameters);
+        command.setContext(new CommandContext(context));
+        return command.endAction();
+    }
+
     private AsyncTaskManager getAsyncTaskManager() {
-        return AsyncTaskManager.getInstance();
+        return AsyncTaskManager.getInstance(this);
     }
 
     protected BackendInternal getBackend() {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
index acbe1d8..030514e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/SPMAsyncTask.java
@@ -6,6 +6,7 @@
 
 import org.ovirt.engine.core.bll.Backend;
 import org.ovirt.engine.core.bll.job.ExecutionHandler;
+import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.asynctasks.AsyncTaskParameters;
 import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus;
@@ -22,7 +23,9 @@
 import org.ovirt.engine.core.utils.log.LogFactory;
 
 public class SPMAsyncTask {
-    public SPMAsyncTask(AsyncTaskParameters parameters) {
+    CommandCoordinator coco;
+    public SPMAsyncTask(CommandCoordinator coco, AsyncTaskParameters 
parameters) {
+        this.coco = coco;
         setParameters(parameters);
         setState(AsyncTaskState.Initializing);
     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/TaskManagerUtil.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/TaskManagerUtil.java
index 07a6598..f22d8a3 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/TaskManagerUtil.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/TaskManagerUtil.java
@@ -49,7 +49,7 @@
             VdcActionType parentCommand,
             String description,
             Map<Guid, VdcObjectType> entitiesMap) {
-        return CommandCoordinator.getInstance().createTask(taskId,
+        return CommandCoordinatorImpl.getInstance().createTask(taskId,
                 command,
                 asyncTaskCreationInfo,
                 parentCommand,
@@ -62,18 +62,18 @@
             CommandBase command,
             AsyncTaskCreationInfo asyncTaskCreationInfo,
             VdcActionType parentCommand) {
-        return CommandCoordinator.getInstance().concreteCreateTask(taskId,
+        return CommandCoordinatorImpl.getInstance().concreteCreateTask(taskId,
                 command,
                 asyncTaskCreationInfo,
                 parentCommand);
     }
 
     public static void cancelTasks(final CommandBase command) {
-        CommandCoordinator.getInstance().cancelTasks(command);
+        CommandCoordinatorImpl.getInstance().cancelTasks(command);
     }
 
     public static void revertTasks(final CommandBase command) {
-        CommandCoordinator.getInstance().revertTasks(command);
+        CommandCoordinatorImpl.getInstance().revertTasks(command);
     }
 
     public static AsyncTasks getAsyncTask(
@@ -81,22 +81,22 @@
             CommandBase command,
             AsyncTaskCreationInfo asyncTaskCreationInfo,
             VdcActionType parentCommand) {
-        return CommandCoordinator.getInstance().getAsyncTask(taskId, command, 
asyncTaskCreationInfo, parentCommand);
+        return CommandCoordinatorImpl.getInstance().getAsyncTask(taskId, 
command, asyncTaskCreationInfo, parentCommand);
     }
 
     public static AsyncTasks createAsyncTask(
             CommandBase command,
             AsyncTaskCreationInfo asyncTaskCreationInfo,
             VdcActionType parentCommand) {
-        return CommandCoordinator.getInstance().createAsyncTask(command, 
asyncTaskCreationInfo, parentCommand);
+        return CommandCoordinatorImpl.getInstance().createAsyncTask(command, 
asyncTaskCreationInfo, parentCommand);
     }
 
     public static void logAndFailTaskOfCommandWithEmptyVdsmId(Guid taskId, 
String message) {
-        AsyncTaskManager.logAndFailTaskOfCommandWithEmptyVdsmId(taskId, 
message);
+        getAsyncTaskManager().logAndFailTaskOfCommandWithEmptyVdsmId(taskId, 
message);
     }
 
     public static void logAndFailTaskOfCommandWithEmptyVdsmId(AsyncTasks task, 
String message) {
-        AsyncTaskManager.logAndFailTaskOfCommandWithEmptyVdsmId(task, message);
+        getAsyncTaskManager().logAndFailTaskOfCommandWithEmptyVdsmId(task, 
message);
     }
 
     public static void removeTaskFromDbByTaskId(Guid taskId) {
@@ -104,7 +104,7 @@
     }
 
     private static AsyncTaskManager getAsyncTaskManager() {
-        return AsyncTaskManager.getInstance();
+        return 
AsyncTaskManager.getInstance(CommandCoordinatorImpl.getInstance());
     }
 
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CallBack.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CallBack.java
new file mode 100644
index 0000000..808bf56
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CallBack.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.core.bll.tasks.interfaces;
+
+import org.ovirt.engine.core.bll.job.ExecutionContext;
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.action.VdcReturnValueBase;
+import org.ovirt.engine.core.common.businessentities.AsyncTasks;
+import org.ovirt.engine.core.compat.Guid;
+
+public interface CallBack {
+    public VdcReturnValueBase endAction(Guid stepId, VdcActionType actionType, 
AsyncTasks dbAsyncTask, ExecutionContext context);
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CommandCoordinator.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CommandCoordinator.java
new file mode 100644
index 0000000..ed21ae5
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/CommandCoordinator.java
@@ -0,0 +1,4 @@
+package org.ovirt.engine.core.bll.tasks.interfaces;
+
+public abstract class CommandCoordinator implements CallBack {
+}


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

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

Reply via email to