Hello Ravi Nori,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/14103

to review the following change.

Change subject: engine : Introduction of Poller, CommandEntity and Ehcache
......................................................................

engine : Introduction of Poller, CommandEntity and Ehcache

The poller interface eliminates all dependencies from the
AsyncTaskManager and the bll package

The CommandEntity has all required parameters to recreate

Change-Id: I7c1e4619819a6e323fd5bf0bd3568b666aff63ff
Signed-off-by: Ravi Nori <rn...@redhat.com>
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M backend/manager/modules/bll/pom.xml
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskManager.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntitCacheHandlerImpl.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityCacheHandler.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EhcacheWrapperImpl.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/interfaces/CommandCoordinator.java
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/Poller.java
A 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/CommandEntity.java
12 files changed, 319 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/03/14103/1

diff --git a/backend/manager/modules/bll/pom.xml 
b/backend/manager/modules/bll/pom.xml
index 20c92f5..5f7c672 100644
--- a/backend/manager/modules/bll/pom.xml
+++ b/backend/manager/modules/bll/pom.xml
@@ -111,6 +111,14 @@
       <version>1.6</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>net.sf.ehcache</groupId>
+      <artifactId>ehcache</artifactId>
+      <version>2.6.5</version>
+      <type>pom</type>
+   </dependency>
+
   </dependencies>
 
   <build>
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 7b5c58a..749b15e 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
@@ -11,7 +11,6 @@
 import java.util.concurrent.TimeUnit;
 
 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.bll.tasks.interfaces.SPMTask;
 import org.ovirt.engine.core.common.AuditLogType;
@@ -26,7 +25,6 @@
 import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.common.errors.VdcBLLException;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
-import org.ovirt.engine.core.common.vdscommands.IrsBaseVDSCommandParameters;
 import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.compat.DateTime;
 import org.ovirt.engine.core.compat.Guid;
@@ -46,7 +44,7 @@
 /**
  * AsyncTaskManager: Singleton, manages all tasks in the system.
  */
-final class AsyncTaskManager {
+public final class AsyncTaskManager {
     private static final Log log = LogFactory.getLog(AsyncTaskManager.class);
 
     /** Map which consist all tasks that currently are monitored **/
@@ -300,9 +298,7 @@
         for (Guid storagePoolID : poolsOfActiveTasks) {
             try {
                 Map<Guid, AsyncTaskStatus> map =
-                        (Map<Guid, AsyncTaskStatus>) 
Backend.getInstance().getResourceManager().RunVdsCommand(
-                        VDSCommandType.SPMGetAllTasksStatuses,
-                        new 
IrsBaseVDSCommandParameters(storagePoolID)).getReturnValue();
+                        (Map<Guid, AsyncTaskStatus>) 
coco.getAllTasksStatuses(storagePoolID);
                 if (map != null) {
                     poolsAsyncTaskMap.put(storagePoolID, map);
                 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
new file mode 100644
index 0000000..69f3acb
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheProviderFactory.java
@@ -0,0 +1,37 @@
+package org.ovirt.engine.core.bll.tasks;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.config.CacheConfiguration;
+import net.sf.ehcache.config.PersistenceConfiguration;
+import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
+
+public class CacheProviderFactory {
+    private static final int MAX_ELEMENTS = 50;
+    private static CacheManager manager = CacheManager.create();
+
+    public static <K, V> CacheWrapper<K, V> getCacheWrapper(String name) {
+        return new EhcacheWrapperImpl<K, V>(getCache(name));
+    }
+
+    private static Cache getCache(String name) {
+        Cache cache = manager.getCache(name);
+        if (cache == null) {
+            cache = initGetCache(name);
+            manager.addCache(cache);
+        }
+        return cache;
+    }
+
+    private static Cache initGetCache(final String name) {
+        //Create a Cache specifying its configuration.
+        Cache cache = new Cache(
+                new CacheConfiguration(name, MAX_ELEMENTS)
+                .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU)
+                .eternal(true)
+                .diskExpiryThreadIntervalSeconds(0)
+                .persistence(new 
PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.LOCALTEMPSWAP)));
+        return cache;
+    }
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
new file mode 100644
index 0000000..4ce085c
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CacheWrapper.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.core.bll.tasks;
+
+public interface CacheWrapper<K, V> {
+
+    void put(K key, V value);
+
+    V get(K key);
+
+    void remove(final K key);
+
+    public boolean containsKey(K key);
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
index 5f8ec11..cf93a5c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandCoordinatorImpl.java
@@ -1,10 +1,11 @@
 package org.ovirt.engine.core.bll.tasks;
 
-import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
+
 import javax.transaction.Transaction;
+
 import org.ovirt.engine.core.bll.Backend;
 import org.ovirt.engine.core.bll.CommandBase;
 import org.ovirt.engine.core.bll.CommandsFactory;
@@ -12,6 +13,7 @@
 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.bll.tasks.interfaces.SPMTask;
 import org.ovirt.engine.core.common.VdcObjectType;
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
@@ -24,6 +26,7 @@
 import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus;
 import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum;
 import org.ovirt.engine.core.common.businessentities.AsyncTasks;
+import org.ovirt.engine.core.common.businessentities.CommandEntity;
 import org.ovirt.engine.core.common.job.ExternalSystemType;
 import org.ovirt.engine.core.common.job.JobExecutionStatus;
 import org.ovirt.engine.core.common.job.Step;
@@ -49,11 +52,11 @@
     public static CommandCoordinatorImpl getInstance() {
         return instance;
     }
-
-    Map<NGuid, ExecutionContext> executionContextMap;
+    CacheWrapper<NGuid, ExecutionContext> executionContextMap;
+    CommandEntityCacheHandler commandEntityDAO = new 
CommandEntitCacheHandlerImpl();
 
     private CommandCoordinatorImpl() {
-        executionContextMap = new HashMap<>();
+        executionContextMap = CacheProviderFactory.<NGuid, 
ExecutionContext>getCacheWrapper(EXECUTION_CONTEXT_MAP_NAME);
     }
 
     @Override
@@ -68,10 +71,27 @@
                 context = createFinalizingContext(stepId.getValue());
                 executionContextMap.put(stepId, context);
             }
+            if (stepId != null) {
+                CommandEntity commandEntity = commandEntityDAO.get(stepId);
+                if (!actionType.equals(commandEntity.getCommandType())) {
+                    throw new RuntimeException("action types dont match");
+                } else {
+                    log.info("in CommandManager.endAction action types match " 
+ actionType.toString());
+                }
+                Map<String, Object> data = commandEntity.getData();
+                VdcActionParametersBase paramsOfCommand = 
(VdcActionParametersBase) data.get("params");
+                if (!parameters.equals(paramsOfCommand)) {
+                    throw new RuntimeException("parameters dont match");
+                } else {
+                    log.info("in CommandManager.endAction parameters match " + 
parameters.toString());
+                }
+            }
             CommandBase<?> command = 
CommandsFactory.getInstance().CreateCommand(actionType, parameters);
             command.setContext(new CommandContext(context));
             return command.endAction();
+//            return new DecoratedCommand(command, dbAsyncTask).endAction();
         } finally {
+            commandEntityDAO.remove(stepId);
         }
     }
 
@@ -153,7 +173,11 @@
             task.setEntityType(entityType);
             task.setAssociatedEntities(entityIds);
             AsyncTaskUtils.addOrUpdateTaskInDB(task);
-
+            commandEntityDAO.put(
+                    task.getParameters().getDbAsyncTask().getStepId(),
+                    command.getCommandId(),
+                    command.getParameters().getParentParameters() == null ? 
Guid.Empty : command.getParameters().getParentParameters().getCommandId(),
+                    task);
             getAsyncTaskManager().lockAndAddTaskToManager(task);
             retValue = task.getTaskID();
             updateStepExternalId(taskStep, retValue, ExternalSystemType.VDSM);
@@ -381,6 +405,18 @@
         }
     }
 
+    @Override
+    public AsyncTaskStatus getTaskStatus(Guid storagePoolID, Guid taskID) {
+        Object tempVar = runVdsCommand(VDSCommandType.SPMGetTaskStatus,
+                new SPMTaskGuidBaseVDSCommandParameters(storagePoolID, 
taskID)).getReturnValue();
+        return (AsyncTaskStatus) ((tempVar instanceof AsyncTaskStatus) ? 
tempVar : null);
+    }
+    @Override
+    public Map<Guid, AsyncTaskStatus> getAllTasksStatuses(Guid storagePoolID) {
+        return (Map<Guid, AsyncTaskStatus>) 
runVdsCommand(VDSCommandType.SPMGetAllTasksStatuses,
+                new 
IrsBaseVDSCommandParameters(storagePoolID)).getReturnValue();
+    }
+
     private BackendInternal getBackend() {
         return Backend.getInstance();
     }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntitCacheHandlerImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntitCacheHandlerImpl.java
new file mode 100644
index 0000000..26c5cd0
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntitCacheHandlerImpl.java
@@ -0,0 +1,43 @@
+package org.ovirt.engine.core.bll.tasks;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.ovirt.engine.core.common.businessentities.CommandEntity;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.NGuid;
+
+public class CommandEntitCacheHandlerImpl implements CommandEntityCacheHandler 
{
+
+    private static final String COMMAND_MAP_NAME = "commandMap";
+    CacheWrapper<NGuid, CommandEntity> commandMap;
+
+    public CommandEntitCacheHandlerImpl() {
+        commandMap = CacheProviderFactory.<NGuid, 
CommandEntity>getCacheWrapper(COMMAND_MAP_NAME);
+    }
+
+    @Override
+    public CommandEntity get(NGuid stepId) {
+        return commandMap.get(stepId);
+    }
+
+    @Override
+    public void remove(NGuid stepId) {
+        commandMap.remove(stepId);
+    }
+
+    @Override
+    public void put(NGuid stepId, Guid commandId, Guid parentCommandId, 
SPMAsyncTask task) {
+        commandMap.put(stepId, buildGetCommandEntity(commandId, 
parentCommandId, task));
+    }
+
+    private CommandEntity buildGetCommandEntity(Guid commandId, Guid 
parentCommandId, SPMAsyncTask task) {
+        CommandEntity entity = new CommandEntity();
+        entity.setId(commandId);
+        entity.setParentCommandId(parentCommandId);
+        
entity.setCommandType(task.getParameters().getDbAsyncTask().getaction_type());
+        Map<String, Object> data = new HashMap<String, Object>();
+        data.put("params", 
task.getParameters().getDbAsyncTask().getActionParameters());
+        return entity;
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityCacheHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityCacheHandler.java
new file mode 100644
index 0000000..b358e7f
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/CommandEntityCacheHandler.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.core.bll.tasks;
+
+import org.ovirt.engine.core.common.businessentities.CommandEntity;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.NGuid;
+
+public interface CommandEntityCacheHandler {
+
+    public CommandEntity get(NGuid stepId);
+
+    public void remove(NGuid stepId);
+
+    public void put(NGuid stepId, Guid commandId, Guid parentCommandId, 
SPMAsyncTask task);
+
+}
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EhcacheWrapperImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EhcacheWrapperImpl.java
new file mode 100644
index 0000000..97358a2
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EhcacheWrapperImpl.java
@@ -0,0 +1,42 @@
+package org.ovirt.engine.core.bll.tasks;
+
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.Element;
+
+public class EhcacheWrapperImpl<K, V> implements CacheWrapper<K, V> {
+
+    private final Cache cache;
+
+    public EhcacheWrapperImpl(final Cache cache) {
+        this.cache = cache;
+    }
+
+    @Override
+    public void put(final K key, final V value) {
+        getCache().put(new Element(key, value));
+    }
+
+    @Override
+    public V get(final K key) {
+        Element element = getCache().get(key);
+        if (element != null) {
+            return (V) element.getValue();
+        }
+        return null;
+    }
+
+    @Override
+    public void remove(final K key) {
+        getCache().remove(key);
+    }
+
+    public Cache getCache() {
+        return cache;
+    }
+
+    @Override
+    public boolean containsKey(final K key) {
+        return getCache().isKeyInCache(key) || getCache().get(key) != null;
+    }
+}
+
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 0e5668f..0f4c258 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
@@ -1,6 +1,5 @@
 package org.ovirt.engine.core.bll.tasks;
 
-import org.ovirt.engine.core.bll.Backend;
 import static 
org.ovirt.engine.core.common.config.ConfigValues.UknownTaskPrePollingLapse;
 
 import org.ovirt.engine.core.bll.tasks.interfaces.CommandCoordinator;
@@ -12,8 +11,6 @@
 import org.ovirt.engine.core.common.config.Config;
 import org.ovirt.engine.core.common.errors.VdcBllErrors;
 import org.ovirt.engine.core.common.job.JobExecutionStatus;
-import 
org.ovirt.engine.core.common.vdscommands.SPMTaskGuidBaseVDSCommandParameters;
-import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
 import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
@@ -396,10 +393,7 @@
         AsyncTaskStatus returnValue = null;
 
         try {
-            Object tempVar = Backend.getInstance().getResourceManager()
-                    .RunVdsCommand(VDSCommandType.SPMGetTaskStatus,
-                    new 
SPMTaskGuidBaseVDSCommandParameters(getStoragePoolID(), 
getTaskID())).getReturnValue();
-            returnValue = (AsyncTaskStatus) ((tempVar instanceof 
AsyncTaskStatus) ? tempVar : null);
+            returnValue = coco.getTaskStatus(getStoragePoolID(), getTaskID());
         }
         catch (RuntimeException e) {
             log.error(
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
index 0a119fc..a7c381a 100644
--- 
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
@@ -1,5 +1,5 @@
 package org.ovirt.engine.core.bll.tasks.interfaces;
 
 
-public abstract class CommandCoordinator implements CallBack, TaskHelper {
+public abstract class CommandCoordinator implements CallBack, TaskHelper, 
Poller {
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/Poller.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/Poller.java
new file mode 100644
index 0000000..d0606a7
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/Poller.java
@@ -0,0 +1,11 @@
+package org.ovirt.engine.core.bll.tasks.interfaces;
+
+import java.util.Map;
+import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus;
+import org.ovirt.engine.core.compat.Guid;
+
+public interface Poller {
+    Map<Guid, AsyncTaskStatus> getAllTasksStatuses(Guid storagePoolID);
+    AsyncTaskStatus getTaskStatus(Guid storagePoolID, Guid taskID);
+}
+
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/CommandEntity.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/CommandEntity.java
new file mode 100644
index 0000000..3637092
--- /dev/null
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/CommandEntity.java
@@ -0,0 +1,106 @@
+package org.ovirt.engine.core.common.businessentities;
+
+import java.util.Date;
+import java.util.Map;
+
+import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.NGuid;
+
+public class CommandEntity implements BusinessEntity<Guid> {
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((commandId == null) ? 0 : 
commandId.hashCode());
+        result = prime * result + ((commandType == null) ? 0 : 
commandType.hashCode());
+        result = prime * result + ((createdAt == null) ? 0 : 
createdAt.hashCode());
+        result = prime * result + ((data == null) ? 0 : data.hashCode());
+        result = prime * result + ((parentCommandId == null) ? 0 : 
parentCommandId.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (!(obj instanceof CommandEntity))
+            return false;
+        CommandEntity other = (CommandEntity) obj;
+        if (commandId == null) {
+            if (other.commandId != null)
+                return false;
+        } else if (!commandId.equals(other.commandId))
+            return false;
+        if (commandType != other.commandType)
+            return false;
+        if (createdAt == null) {
+            if (other.createdAt != null)
+                return false;
+        } else if (!createdAt.equals(other.createdAt))
+            return false;
+        if (data == null) {
+            if (other.data != null)
+                return false;
+        } else if (!data.equals(other.data))
+            return false;
+        if (parentCommandId == null) {
+            if (other.parentCommandId != null)
+                return false;
+        } else if (!parentCommandId.equals(other.parentCommandId))
+            return false;
+        return true;
+    }
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 5293055556971973650L;
+    private Guid commandId;
+    private NGuid parentCommandId;
+    private VdcActionType commandType;
+    private Map<String, Object> data;
+    private Date createdAt;
+
+    public Date getCreatedAt() {
+        return createdAt;
+    }
+
+    public void setCreatedAt(Date createdAt) {
+        this.createdAt = createdAt;
+    }
+
+    public Map<String, Object> getData() {
+        return data;
+    }
+
+    public void setData(Map<String, Object> data) {
+        this.data = data;
+    }
+
+    public Guid getId() {
+        return commandId;
+    }
+
+    public void setId(Guid commandId) {
+        this.commandId = commandId;
+    }
+
+    public NGuid getParentCommandId() {
+        return parentCommandId;
+    }
+
+    public void setParentCommandId(NGuid parentCommandId) {
+        this.parentCommandId = parentCommandId;
+    }
+
+    public VdcActionType getCommandType() {
+        return commandType;
+    }
+
+    public void setCommandType(VdcActionType type) {
+        this.commandType = type;
+    }
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7c1e4619819a6e323fd5bf0bd3568b666aff63ff
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
Gerrit-Reviewer: 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