Ravi Nori has uploaded a new change for review. Change subject: core : Distingushing between entity and vdsm task ids ......................................................................
core : Distingushing between entity and vdsm task ids his patch is first in series of patches to handle the required mechanism described at the bug (better support for cases of missing tasks upon engine crash). One of the steps in the proposed solution is to diffrentiate between an entity ID provided by engine and the vdsm task ID provided by VDSM. The first patch simply adds the vdsmTaskId column, and since older code relied on this id (even though inserted to a "task_id" column) this patch suggested appropriate fixes. One of the issues that will be handled in future patches is not to include the VDSM task ID at the insert_AsyncTasks stored procedure, but at this point this is not addressed (as this will be a part of a patch handling splitting the insert of task from getting vdsm task id + updating in db) Change-Id: I75e35773b18e342dbe61242829ce989b1f51ee70 Signed-off-by: Ravi Nori <rn...@redhat.com> --- M backend/manager/dbscripts/async_tasks_sp.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.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/AsyncTaskUtils.java M 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/EntityAsyncTask.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityMultiAsyncTasks.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/SPMTask.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskCreationInfo.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java M backend/manager/modules/dal/src/test/resources/fixtures.xml M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HSMGetAllTasksInfoVDSCommand.java 20 files changed, 198 insertions(+), 98 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/14075/1 diff --git a/backend/manager/dbscripts/async_tasks_sp.sql b/backend/manager/dbscripts/async_tasks_sp.sql index 3de682c..94db81a 100644 --- a/backend/manager/dbscripts/async_tasks_sp.sql +++ b/backend/manager/dbscripts/async_tasks_sp.sql @@ -4,6 +4,7 @@ Create or replace FUNCTION Insertasync_tasks(v_action_type INTEGER, v_result INTEGER, v_status INTEGER, + v_vdsm_task_id UUID, v_task_id UUID, v_action_parameters text, v_action_params_class varchar(256), @@ -19,8 +20,8 @@ RETURNS VOID AS $procedure$ BEGIN -INSERT INTO async_tasks(action_type, result, status, task_id, action_parameters,action_params_class, task_parameters, task_params_class, step_id, command_id, started_at,storage_pool_id, task_type) - VALUES(v_action_type, v_result, v_status, v_task_id, v_action_parameters,v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_started_at, v_storage_pool_id, v_async_task_type); +INSERT INTO async_tasks(action_type, result, status, vdsm_task_id, task_id, action_parameters,action_params_class, task_parameters, task_params_class, step_id, command_id, started_at,storage_pool_id, task_type) + VALUES(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters,v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_started_at, v_storage_pool_id, v_async_task_type); INSERT INTO async_tasks_entities (async_task_id,entity_id,entity_type) SELECT v_task_id,fnsplitteruuid(v_entity_ids),v_entity_type; END; $procedure$ @@ -30,6 +31,7 @@ Create or replace FUNCTION Updateasync_tasks(v_action_type INTEGER, v_result INTEGER, v_status INTEGER, + v_vdsm_task_id UUID, v_task_id UUID, v_action_parameters text, v_action_params_class varchar(256), @@ -51,7 +53,8 @@ task_parameters = v_task_parameters, task_params_class = v_task_params_class, step_id = v_step_id, - command_id = v_command_id + command_id = v_command_id, + vdsm_task_id = v_vdsm_task_id WHERE task_id = v_task_id; END; $procedure$ LANGUAGE plpgsql; @@ -59,6 +62,7 @@ Create or replace FUNCTION InsertOrUpdateAsyncTasks(v_action_type INTEGER, v_result INTEGER, v_status INTEGER, + v_vdsm_task_id UUID, v_task_id UUID, v_action_parameters text, v_action_params_class varchar(256), @@ -75,10 +79,10 @@ AS $procedure$ BEGIN IF NOT EXISTS (SELECT 1 from async_tasks where async_tasks.task_id = v_task_id) THEN - PERFORM Insertasync_tasks(v_action_type, v_result, v_status, v_task_id, v_action_parameters, + PERFORM Insertasync_tasks(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters, v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id, v_entity_type, v_started_at, v_storage_pool_id, v_async_task_type, v_entity_ids); ELSE - PERFORM Updateasync_tasks(v_action_type, v_result, v_status, v_task_id, v_action_parameters, v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id); + PERFORM Updateasync_tasks(v_action_type, v_result, v_status, v_vdsm_task_id, v_task_id, v_action_parameters, v_action_params_class, v_task_parameters, v_task_params_class, v_step_id, v_command_id); END IF; END; $procedure$ LANGUAGE plpgsql; @@ -100,6 +104,20 @@ BEGIN DELETE FROM async_tasks WHERE task_id = v_task_id; + GET DIAGNOSTICS deleted_rows = ROW_COUNT; + RETURN deleted_rows; + +END; $procedure$ +LANGUAGE plpgsql; + +Create or replace FUNCTION DeleteAsyncTasksByVdsmTaskId(v_vdsm_task_id UUID) +RETURNS integer + AS $procedure$ +DECLARE +deleted_rows int; +BEGIN + DELETE FROM async_tasks + WHERE vdsm_task_id = v_vdsm_task_id; GET DIAGNOSTICS deleted_rows = ROW_COUNT; RETURN deleted_rows; @@ -136,3 +154,14 @@ END; $procedure$ LANGUAGE plpgsql; + +Create or replace FUNCTION GetAsyncTasksByVdsmTaskId(v_vdsm_task_id UUID) RETURNS SETOF async_tasks + AS $procedure$ +BEGIN + RETURN QUERY SELECT * + FROM async_tasks + WHERE vdsm_task_id = v_vdsm_task_id; + +END; $procedure$ +LANGUAGE plpgsql; + diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java index ffb1f13..1ea8307 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AbstractSPMAsyncTaskHandler.java @@ -61,7 +61,7 @@ getTaskObjectType(), getTaskObjects()) ); - Guid taskId = taskCreationInfo.getTaskID(); + Guid taskId = taskCreationInfo.getVdsmTaskId(); getReturnValue().getTaskIdList().add(taskId); if (isRevertedTask) { log.infoFormat("Reverting task {0} with ID {1} on DataCenter {2}.", taskCreationInfo.getTaskType().name(), taskId, taskCreationInfo.getStoragePoolID()); 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 27247d3..0c90808 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 @@ -29,13 +29,13 @@ * @return */ public static SPMAsyncTask Construct(CommandCoordinator coco, AsyncTaskCreationInfo creationInfo) { - AsyncTasks asyncTask = DbFacade.getInstance().getAsyncTaskDao().get(creationInfo.getTaskID()); + AsyncTasks asyncTask = DbFacade.getInstance().getAsyncTaskDao().get(creationInfo.getVdsmTaskId()); if (asyncTask == null || asyncTask.getActionParameters() == null) { asyncTask = new AsyncTasks(VdcActionType.Unknown, AsyncTaskResultEnum.success, AsyncTaskStatusEnum.running, - creationInfo.getTaskID(), + creationInfo.getVdsmTaskId(), new VdcActionParametersBase(), new VdcActionParametersBase(), creationInfo.getStepId(), 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 749b15e..fe4ad40 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 @@ -271,7 +271,7 @@ // If the storage pool id exists if (asyncTasksForPoolMap != null) { AsyncTaskStatus cachedAsyncTaskStatus = asyncTasksForPoolMap - .get(task.getTaskID()); + .get(task.getVdsmTaskId()); // task found in VDSM. task.updateTask(cachedAsyncTaskStatus); @@ -348,7 +348,7 @@ ConcurrentMap<Guid, SPMTask> activeTaskMap = new ConcurrentHashMap<Guid, SPMTask>(); for (SPMTask task : _tasks.values()) { if (!cachingOver(task)) { - activeTaskMap.put(task.getTaskID(), task); + activeTaskMap.put(task.getVdsmTaskId(), task); poolsOfActiveTasks.add(task.getStoragePoolID()); } else { poolsOfClearedAndOldTasks.add(task.getStoragePoolID()); @@ -376,10 +376,10 @@ } else { - if (!_tasks.containsKey(task.getTaskID())) { + if (!_tasks.containsKey(task.getVdsmTaskId())) { log.infoFormat( "Adding task '{0}' (Parent Command {1}, Parameters Type {2}), {3}.", - task.getTaskID(), + task.getVdsmTaskId(), (task.getParameters().getDbAsyncTask().getaction_type()), task.getParameters().getClass().getName(), (task.getShouldPoll() ? "polling started." @@ -387,19 +387,19 @@ // Set the indication to true for logging _tasks status on next // quartz execution. - addTaskToMap(task.getTaskID(), task); + addTaskToMap(task.getVdsmTaskId(), task); } else { - SPMTask existingTask = _tasks.get(task.getTaskID()); + SPMTask existingTask = _tasks.get(task.getVdsmTaskId()); if (existingTask.getParameters().getDbAsyncTask().getaction_type() == VdcActionType.Unknown && task.getParameters().getDbAsyncTask().getaction_type() != VdcActionType.Unknown) { log.infoFormat( "Task '{0}' already exists with action type 'Unknown', now overriding it with action type '{1}'", - task.getTaskID(), + task.getVdsmTaskId(), task.getParameters().getDbAsyncTask().getaction_type()); // Set the indication to true for logging _tasks status on // next quartz execution. - addTaskToMap(task.getTaskID(), task); + addTaskToMap(task.getVdsmTaskId(), task); } } } @@ -437,21 +437,21 @@ log.infoFormat("Setting new tasks map. The map contains now {0} tasks", _tasks.size()); } - public synchronized void startPollingTask(Guid taskID) { - if (_tasks.containsKey(taskID)) { - _tasks.get(taskID).startPollingTask(); + public synchronized void startPollingTask(Guid vdsmTaskID) { + if (_tasks.containsKey(vdsmTaskID)) { + _tasks.get(vdsmTaskID).startPollingTask(); } } - public synchronized ArrayList<AsyncTaskStatus> pollTasks(java.util.ArrayList<Guid> taskIdList) { + public synchronized ArrayList<AsyncTaskStatus> pollTasks(java.util.ArrayList<Guid> vdsmTaskIdList) { ArrayList<AsyncTaskStatus> returnValue = new ArrayList<AsyncTaskStatus>(); - if (taskIdList != null && taskIdList.size() > 0) { - for (Guid taskId : taskIdList) { - if (_tasks.containsKey(taskId)) { + if (vdsmTaskIdList != null && vdsmTaskIdList.size() > 0) { + for (Guid vdsmTaskId : vdsmTaskIdList) { + if (_tasks.containsKey(vdsmTaskId)) { // task is still running or is still in the cache: - _tasks.get(taskId).setLastStatusAccessTime(); - returnValue.add(_tasks.get(taskId).getLastTaskStatus()); + _tasks.get(vdsmTaskId).setLastStatusAccessTime(); + returnValue.add(_tasks.get(vdsmTaskId).getLastTaskStatus()); } else @@ -460,7 +460,7 @@ { log.warnFormat( "Polling tasks. Task ID '{0}' doesn't exist in the manager -> assuming 'finished'.", - taskId); + vdsmTaskId); AsyncTaskStatus tempVar = new AsyncTaskStatus(); tempVar.setStatus(AsyncTaskStatusEnum.finished); @@ -498,14 +498,14 @@ for (AsyncTaskCreationInfo creationInfo : currPoolTasks) { creationInfo.setStoragePoolID(sp.getId()); - if (!_tasks.containsKey(creationInfo.getTaskID())) { + if (!_tasks.containsKey(creationInfo.getVdsmTaskId())) { try { SPMTask task = coco.construct(creationInfo); addTaskToManager(task); newlyAddedTasks.add(task); } catch (Exception e) { log.errorFormat("Failed to load task of type {0} with id {1}, due to: {2}.", - creationInfo.getTaskType(), creationInfo.getTaskID(), + creationInfo.getTaskType(), creationInfo.getVdsmTaskId(), ExceptionUtils.getRootCauseMessage(e)); } } @@ -523,7 +523,7 @@ }); for (SPMTask task : newlyAddedTasks) { - startPollingTask(task.getTaskID()); + startPollingTask(task.getVdsmTaskId()); } log.infoFormat( @@ -543,8 +543,8 @@ List<AsyncTasks> tasksInDForStoragePool = tasksInDbAfterRestart.get(sp.getId()); if (tasksInDForStoragePool != null) { for (AsyncTasks task : tasksInDForStoragePool) { - if (!_tasks.containsKey(task.gettask_id())) { - DbFacade.getInstance().getAsyncTaskDao().remove(task.gettask_id()); + if (!_tasks.containsKey(task.getVdsmTaskId())) { + DbFacade.getInstance().getAsyncTaskDao().removeByVdsmId(task.getVdsmTaskId()); } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskUtils.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskUtils.java index 3b3887f..76b621e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskUtils.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/AsyncTaskUtils.java @@ -27,7 +27,7 @@ } catch (RuntimeException e) { log.error(String.format( "Adding/Updating task %1$s to DataBase threw an exception.", - asyncTask.getTaskID()), e); + asyncTask.getVdsmTaskId()), e); } } 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 6fec449..9dd31e9 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 @@ -164,7 +164,7 @@ asyncTaskCreationInfo.setStepId(taskStep.getId()); } SPMAsyncTask task = concreteCreateTask(command, asyncTaskCreationInfo, parentCommand); - retValue = task.getTaskID(); + retValue = task.getVdsmTaskId(); task.setEntityType(entityType); task.setAssociatedEntities(entityIds); AsyncTaskUtils.addOrUpdateTaskInDB(task); @@ -174,7 +174,7 @@ command.getParameters().getParentParameters() == null ? Guid.Empty : command.getParameters().getParentParameters().getCommandId(), task); getAsyncTaskManager().lockAndAddTaskToManager(task); - retValue = task.getTaskID(); + retValue = task.getVdsmTaskId(); updateStepExternalId(taskStep, retValue, ExternalSystemType.VDSM); } catch (RuntimeException ex) { log.errorFormat("Error during CreateTask for command: {0}. Exception {1}", this.getClass().getName(), ex); @@ -205,7 +205,7 @@ new AsyncTaskParameters(asyncTaskCreationInfo, new AsyncTasks(parentCommand, AsyncTaskResultEnum.success, AsyncTaskStatusEnum.running, - asyncTaskCreationInfo.getTaskID(), + asyncTaskCreationInfo.getVdsmTaskId(), parentParameters, command.getParameters(), asyncTaskCreationInfo.getStepId(), diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityAsyncTask.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityAsyncTask.java index 3762172..6fb80e6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityAsyncTask.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityAsyncTask.java @@ -64,7 +64,7 @@ @Override public void concreteStartPollingTask() { EntityMultiAsyncTasks entityInfo = getEntityMultiAsyncTasks(); - entityInfo.StartPollingTask(getTaskID()); + entityInfo.StartPollingTask(getVdsmTaskId()); } @Override @@ -89,7 +89,7 @@ log.warnFormat( "EntityAsyncTask::EndActionIfNecessary: No info is available for entity '{0}', current task ('{1}') was probably created while other tasks were in progress, clearing task.", getContainerId(), - getTaskID()); + getVdsmTaskId()); clearAsyncTask(); } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityMultiAsyncTasks.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityMultiAsyncTasks.java index aeeb655..bd0f555 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityMultiAsyncTasks.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/EntityMultiAsyncTasks.java @@ -38,11 +38,11 @@ public void AttachTask(EntityAsyncTask asyncTask) { synchronized (_listTasks) { - if (!_listTasks.containsKey(asyncTask.getTaskID())) { + if (!_listTasks.containsKey(asyncTask.getVdsmTaskId())) { log.infoFormat("EntityMultiAsyncTasks::AttachTask: Attaching task '{0}' to entity '{1}'.", - asyncTask.getTaskID(), getContainerId()); + asyncTask.getVdsmTaskId(), getContainerId()); - _listTasks.put(asyncTask.getTaskID(), asyncTask); + _listTasks.put(asyncTask.getVdsmTaskId(), asyncTask); } } } @@ -169,11 +169,11 @@ log.infoFormat( "EntityMultiAsyncTasks::StartPollingNextTask: Starting to poll next task " + "(task ID: '{0}', action type '{1}')", - task.getTaskID(), + task.getVdsmTaskId(), task.getParameters().getDbAsyncTask().getaction_type()); setActionType(VdcActionType.Unknown); - StartPollingTask(task.getTaskID()); + StartPollingTask(task.getVdsmTaskId()); break; } } 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 0f4c258..57b4ede 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 @@ -61,7 +61,7 @@ } @Override - public Guid getTaskID() { + public Guid getVdsmTaskId() { return getParameters().getTaskID(); } @@ -140,7 +140,7 @@ if (state != AsyncTaskState.AttemptingEndAction && state != AsyncTaskState.Cleared && state != AsyncTaskState.ClearFailed) { - log.infoFormat("BaseAsyncTask::StartPollingTask: Starting to poll task '{0}'.", getTaskID()); + log.infoFormat("BaseAsyncTask::StartPollingTask: Starting to poll task '{0}'.", getVdsmTaskId()); concreteStartPollingTask(); } } @@ -213,7 +213,7 @@ log.error( String.format( "BaseAsyncTask::PollAndUpdateTask: Handling task '%1$s' (State: %2$s, Parent Command: %3$s, Parameters Type: %4$s) threw an exception", - getTaskID(), + getVdsmTaskId(), getState(), (getParameters().getDbAsyncTask() .getaction_type()), @@ -253,15 +253,15 @@ protected void RemoveTaskFromDB() { try { - if (DbFacade.getInstance().getAsyncTaskDao().remove(getTaskID()) != 0) { - log.infoFormat("BaseAsyncTask::RemoveTaskFromDB: Removed task {0} from DataBase", getTaskID()); + if (DbFacade.getInstance().getAsyncTaskDao().removeByVdsmId(getVdsmTaskId()) != 0) { + log.infoFormat("BaseAsyncTask::RemoveTaskFromDB: Removed task {0} from DataBase", getVdsmTaskId()); } } catch (RuntimeException e) { log.error(String.format( "BaseAsyncTask::RemoveTaskFromDB: Removing task %1$s from DataBase threw an exception.", - getTaskID()), e); + getVdsmTaskId()), e); } } @@ -285,7 +285,7 @@ protected void LogEndTaskSuccess() { log.infoFormat( "BaseAsyncTask::OnTaskEndSuccess: Task '{0}' (Parent Command {1}, Parameters Type {2}) ended successfully.", - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters() .getClass().getName()); @@ -300,7 +300,7 @@ log.errorFormat( "BaseAsyncTask::LogEndTaskFailure: Task '{0}' (Parent Command {1}, Parameters Type {2}) ended with failure:" + "\r\n" + "-- Result: '{3}'" + "\r\n" + "-- Message: '{4}'," + "\r\n" + "-- Exception: '{5}'", - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters() .getClass().getName(), @@ -318,7 +318,7 @@ protected void LogTaskDoesntExist() { log.errorFormat( "BaseAsyncTask::LogTaskDoesntExist: Task '{0}' (Parent Command {1}, Parameters Type {2}) does not exist.", - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters() .getClass().getName()); @@ -341,7 +341,7 @@ log.errorFormat("SPMAsyncTask::PollTask: Task '{0}' (Parent Command {1}, Parameters Type {2}) " + "was not found in VDSM, will change its status to unknown.", - getTaskID(), (getParameters().getDbAsyncTask().getaction_type()), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters().getClass().getName()); } else { returnedStatusTask = cachedStatusTask; @@ -365,7 +365,7 @@ if (cachedStatusTask.getTaskIsInUnusualState()) { log.warnFormat( formatString, - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask() .getaction_type()), getParameters().getClass().getName(), @@ -378,7 +378,7 @@ else { log.infoFormat( formatString, - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask() .getaction_type()), getParameters().getClass().getName(), @@ -393,13 +393,13 @@ AsyncTaskStatus returnValue = null; try { - returnValue = coco.getTaskStatus(getStoragePoolID(), getTaskID()); + returnValue = coco.getTaskStatus(getStoragePoolID(), getVdsmTaskId()); } catch (RuntimeException e) { log.error( String.format( "SPMAsyncTask::PollTask: Polling task '%1$s' (Parent Command %2$s, Parameters Type %3$s) threw an exception, task is still considered running.", - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters().getClass().getName()), e); @@ -408,7 +408,7 @@ if (returnValue == null) { log.errorFormat( "SPMAsyncTask::PollTask: Polling task '{0}' (Parent Command {1}, Parameters Type {2}) failed, task is still considered running.", - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters() .getClass().getName()); @@ -424,7 +424,7 @@ if (returnValue.getTaskIsInUnusualState()) { log.warnFormat( formatString, - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters().getClass().getName(), returnValue.getStatus(), @@ -435,7 +435,7 @@ else { log.infoFormat( formatString, - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters().getClass().getName(), returnValue.getStatus(), @@ -458,14 +458,14 @@ try { log.infoFormat( "SPMAsyncTask::StopTask: Attempting to stop task '{0}' (Parent Command {1}, Parameters Type {2}).", - getTaskID(), + getVdsmTaskId(), (getParameters().getDbAsyncTask().getaction_type()), getParameters().getClass().getName()); - coco.stopTask(getStoragePoolID(), getTaskID()); + coco.stopTask(getStoragePoolID(), getVdsmTaskId()); } catch (RuntimeException e) { log.error( - String.format("SPMAsyncTask::StopTask: Stopping task '%1$s' threw an exception.", getTaskID()), + String.format("SPMAsyncTask::StopTask: Stopping task '%1$s' threw an exception.", getVdsmTaskId()), e); } finally { if (forceFinish) { @@ -489,13 +489,13 @@ VDSReturnValue vdsReturnValue = null; try { - log.infoFormat("SPMAsyncTask::ClearAsyncTask: Attempting to clear task '{0}'", getTaskID()); - vdsReturnValue = coco.clearTask(getStoragePoolID(), getTaskID()); + log.infoFormat("SPMAsyncTask::ClearAsyncTask: Attempting to clear task '{0}'", getVdsmTaskId()); + vdsReturnValue = coco.clearTask(getStoragePoolID(), getVdsmTaskId()); } catch (RuntimeException e) { log.error(String.format("SPMAsyncTask::ClearAsyncTask: Clearing task '%1$s' threw an exception.", - getTaskID()), e); + getVdsmTaskId()), e); } boolean shouldGracefullyDeleteTask = false; @@ -526,7 +526,7 @@ && vdsReturnValue.getVdsError().getCode() == VdcBllErrors.TaskStateError) { log.infoFormat( "SPMAsyncTask::ClearAsyncTask: At time of attemp to clear task '{0}' the response code was {2} and message was {3}. Task will not be cleaned", - getTaskID(), + getVdsmTaskId(), vdsReturnValue.getVdsError().getCode(), vdsReturnValue.getVdsError().getMessage()); return true; @@ -539,7 +539,7 @@ } protected void LogTaskCleanFailure() { - log.errorFormat("SPMAsyncTask::ClearAsyncTask: Clearing task '{0}' failed.", getTaskID()); + log.errorFormat("SPMAsyncTask::ClearAsyncTask: Clearing task '{0}' failed.", getVdsmTaskId()); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java index c180185..3240a33 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/tasks/interfaces/SPMTask.java @@ -42,7 +42,7 @@ Guid getStoragePoolID(); - Guid getTaskID(); + Guid getVdsmTaskId(); void setAssociatedEntities(Guid[] associatedEntities); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java index 1e09173..79841c7 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/BackwardCompatibilityTaskCreationTest.java @@ -160,7 +160,7 @@ SPMTask spmAsyncTask = cmd.concreteCreateTask(info, cmd.getParameters().getParentCommand()); assertEquals("wrong storage pool ID", info.getStoragePoolID(), spmAsyncTask.getStoragePoolID()); - assertEquals("wrong task ID", info.getTaskID(), spmAsyncTask.getTaskID()); + assertEquals("wrong task ID", info.getVdsmTaskId(), spmAsyncTask.getVdsmTaskId()); assertEquals("wrong task result", AsyncTaskResultEnum.success, spmAsyncTask.getLastTaskStatus().getResult()); assertEquals("wrong task status", AsyncTaskStatusEnum.init, spmAsyncTask.getLastTaskStatus().getStatus()); assertEquals("wrong task state", AsyncTaskState.Initializing, spmAsyncTask.getState()); @@ -188,7 +188,7 @@ AsyncTaskCreationInfo info = new AsyncTaskCreationInfo(); info.setStepId(Guid.NewGuid()); info.setStoragePoolID(Guid.NewGuid()); - info.setTaskID(Guid.NewGuid()); + info.setVdsmTaskId(Guid.NewGuid()); info.setTaskType(RandomUtils.instance().nextEnum(AsyncTaskType.class)); return info; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskCreationInfo.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskCreationInfo.java index b246b0d..4a214ce 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskCreationInfo.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskCreationInfo.java @@ -5,7 +5,7 @@ public class AsyncTaskCreationInfo { - private Guid privateTaskID = new Guid(); + private Guid vdsmTaskID = new Guid(); private Guid privateStoragePoolID = new Guid(); private AsyncTaskType privateTaskType = AsyncTaskType.forValue(0); @@ -18,17 +18,17 @@ } public AsyncTaskCreationInfo(Guid taskID, AsyncTaskType taskType, Guid storagePoolID) { - setTaskID(taskID); + setVdsmTaskId(taskID); setTaskType(taskType); setStoragePoolID(storagePoolID); } - public Guid getTaskID() { - return privateTaskID; + public Guid getVdsmTaskId() { + return vdsmTaskID; } - public void setTaskID(Guid value) { - privateTaskID = value; + public void setVdsmTaskId(Guid value) { + vdsmTaskID = value; } public AsyncTaskType getTaskType() { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskParameters.java index 605e14a..efb887f 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/asynctasks/AsyncTaskParameters.java @@ -34,7 +34,7 @@ } public Guid getTaskID() { - return getCreationInfo().getTaskID(); + return getCreationInfo().getVdsmTaskId(); } private Object _entityId; diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java index 9a50aca..49d9116 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AsyncTasks.java @@ -18,18 +18,19 @@ public AsyncTasks() { } - public AsyncTasks(VdcActionType action_type, AsyncTaskResultEnum result, AsyncTaskStatusEnum status, Guid task_id, + public AsyncTasks(VdcActionType action_type, AsyncTaskResultEnum result, AsyncTaskStatusEnum status, Guid vdsmTaskId, VdcActionParametersBase parentParameters, VdcActionParametersBase taskParameters, NGuid stepId, Guid commandId, Guid storagePoolId, AsyncTaskType taskType) { this.actionType = action_type; this.result = result; this.status = status; - this.taskId = task_id; + this.vdsmTaskId = vdsmTaskId; this.actionParameters = parentParameters; this.taskParameters = taskParameters; this.stepId = stepId; this.startTime = new Date(); this.commandId = commandId; this.storagePoolId = storagePoolId; + this.taskId = Guid.NewGuid(); this.taskType = taskType; } @@ -75,13 +76,23 @@ this.status = value; } - private Guid taskId = new Guid(); + private Guid vdsmTaskId = new Guid(); - public Guid gettask_id() { + public Guid getVdsmTaskId() { + return this.vdsmTaskId; + } + + public void setVdsmTaskId(Guid value) { + this.vdsmTaskId = value; + } + + private Guid taskId; + + public Guid getTaskId() { return this.taskId; } - public void settask_id(Guid value) { + public void setTaskId(Guid value) { this.taskId = value; } @@ -149,7 +160,7 @@ public int hashCode() { final int prime = 31; int results = 1; - results = prime * results + ((taskId == null) ? 0 : taskId.hashCode()); + results = prime * results + ((vdsmTaskId == null) ? 0 : vdsmTaskId.hashCode()); results = prime * results + ((stepId == null) ? 0 : stepId.hashCode()); results = prime * results + ((commandId == null) ? 0 : commandId.hashCode()); results = prime * results + ((actionParameters == null) ? 0 : actionParameters.hashCode()); @@ -174,7 +185,8 @@ return false; } AsyncTasks other = (AsyncTasks) obj; - return (ObjectUtils.objectsEqual(taskId, other.taskId) + return (ObjectUtils.objectsEqual(vdsmTaskId, other.vdsmTaskId) + && ObjectUtils.objectsEqual(taskId, other.taskId) && ObjectUtils.objectsEqual(stepId, other.stepId) && ObjectUtils.objectsEqual(commandId, other.commandId) && ObjectUtils.objectsEqual(actionParameters, other.actionParameters) diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAO.java index e8ff590..99e66d0 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAO.java @@ -21,6 +21,12 @@ AsyncTasks get(Guid id); /** + * Retrieves the task with the specified VDSM taskId + * @param vdsmTaskId id of the task as reported by VDSM + * @return the task + */ + AsyncTasks getByVdsmTaskId(Guid vdsmTaskId); + /** * Gets async task Ids by a given entity Id. * @param entityId the Id of the entity to return the tasks for * @return @@ -81,4 +87,11 @@ * @param task the task to save */ void save(AsyncTasks newAsyncTask); + + /** + * Removes the specified task according to its VDSM task id. + * @param vdsmTaskId the VDSM task id. + * @return the number of tasks deleted + */ + int removeByVdsmId(Guid vdsmTaskId); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java index 37e5600..e3130e9 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AsyncTaskDAODbFacadeImpl.java @@ -53,7 +53,8 @@ entity.setaction_type(VdcActionType.forValue(rs.getInt("action_type"))); entity.setresult(AsyncTaskResultEnum.forValue(rs.getInt("result"))); entity.setstatus(AsyncTaskStatusEnum.forValue(rs.getInt("status"))); - entity.settask_id(Guid.createGuidFromString(rs.getString("task_id"))); + entity.setTaskId(Guid.createGuidFromString(rs.getString("task_id"))); + entity.setVdsmTaskId(Guid.createGuidFromString(rs.getString("vdsm_task_id"))); entity.setActionParameters(deserializeParameters(rs.getString("action_parameters"),rs.getString("action_params_class"))); entity.setTaskParameters(deserializeParameters(rs.getString("task_parameters"),rs.getString("task_params_class"))); entity.setStepId(NGuid.createGuidFromString(rs.getString("step_id"))); @@ -81,7 +82,8 @@ addValue("action_type", task.getaction_type()); addValue("result", task.getresult()); addValue("status", task.getstatus()); - addValue("task_id", task.gettask_id()); + addValue("vdsm_task_id", task.getVdsmTaskId()); + addValue("task_id", task.getTaskId()); addValue("action_parameters", serializeParameters(task.getActionParameters())); addValue("action_params_class",task.getActionParameters().getClass().getName()); addValue("task_parameters", serializeParameters(task.getTaskParameters())); @@ -101,6 +103,13 @@ .addValue("task_id", id); return getCallsHandler().executeRead("Getasync_tasksBytask_id", AsyncTaskRowMapper.instance, parameterSource); + } + + @Override + public AsyncTasks getByVdsmTaskId(Guid vdsmTaskId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("vdsm_task_id", vdsmTaskId); + return getCallsHandler().executeRead("GetAsyncTasksByVdsmTaskId", AsyncTaskRowMapper.instance, parameterSource); } @Override @@ -172,6 +181,12 @@ return getCallsHandler().executeModificationReturnResult("Deleteasync_tasks", parameterSource); } + public int removeByVdsmId(Guid vdsmTaskId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("vdsm_task_id", vdsmTaskId); + return getCallsHandler().executeModificationReturnResult("DeleteAsyncTasksByVdsmTaskId", parameterSource); + } + @Override public List<Guid> getAsyncTaskIdsByEntity(Guid entityId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource(); diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java index 080b679..206af54 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/AsyncTaskDAOTest.java @@ -53,7 +53,8 @@ // create some test data newAsyncTask = new AsyncTasks(); - newAsyncTask.settask_id(Guid.NewGuid()); + newAsyncTask.setTaskId(Guid.NewGuid()); + newAsyncTask.setVdsmTaskId(Guid.NewGuid()); newAsyncTask.setStartTime(new Date()); newAsyncTask.setaction_type(VdcActionType.AddDisk); newAsyncTask.setstatus(AsyncTaskStatusEnum.running); @@ -112,7 +113,7 @@ */ @Test public void testGet() { - AsyncTasks result = dao.get(existingAsyncTask.gettask_id()); + AsyncTasks result = dao.get(existingAsyncTask.getTaskId()); assertNotNull(result); assertEquals(existingAsyncTask, result); @@ -135,7 +136,7 @@ public void testSave() { dao.save(newAsyncTask); - AsyncTasks result = dao.get(newAsyncTask.gettask_id()); + AsyncTasks result = dao.get(newAsyncTask.getTaskId()); /* //Setting startTime to null is required as DB auto generates //the value of start time @@ -155,7 +156,7 @@ List<Guid> asyncTasks = dao.getAsyncTaskIdsByEntity(storageId); assertNotNull(asyncTasks); assertEquals(asyncTasks.size(),1); - assertEquals(asyncTasks.get(0),newAsyncTask.gettask_id()); + assertEquals(asyncTasks.get(0),newAsyncTask.getTaskId()); } /** @@ -175,7 +176,7 @@ existingAsyncTask.setTaskParameters(taskParameters); dao.update(existingAsyncTask); - AsyncTasks result = dao.get(existingAsyncTask.gettask_id()); + AsyncTasks result = dao.get(existingAsyncTask.getTaskId()); assertEquals(existingAsyncTask, result); } @@ -185,14 +186,14 @@ */ @Test public void testRemove() { - AsyncTasks result = dao.get(existingAsyncTask.gettask_id()); + AsyncTasks result = dao.get(existingAsyncTask.getTaskId()); assertNotNull(result); - assertEquals(dao.remove(existingAsyncTask.gettask_id()), 1); - result = dao.get(existingAsyncTask.gettask_id()); + assertEquals(dao.remove(existingAsyncTask.getTaskId()), 1); + result = dao.get(existingAsyncTask.getTaskId()); assertNull(result); - assertEquals(dao.remove(existingAsyncTask.gettask_id()), 0); + assertEquals(dao.remove(existingAsyncTask.getTaskId()), 0); // The removed task is associated with an entity, try to fetch // tasks for the entity, and see no task is returned @@ -201,6 +202,31 @@ assertTrue(taskIds.isEmpty()); } + @Test + public void testGetTaskByVdsmTaskId() { + AsyncTasks result = dao.getByVdsmTaskId(FixturesTool.EXISTING_VDSM_TASK_ID); + assertNotNull(result); + assertEquals(existingAsyncTask, result); + + } + + @Test + public void testRemoveByVdsmTaskId() { + AsyncTasks result = dao.getByVdsmTaskId(FixturesTool.EXISTING_VDSM_TASK_ID); + assertNotNull(result); + + assertEquals(dao.removeByVdsmId(existingAsyncTask.getVdsmTaskId()), 1); + result = dao.getByVdsmTaskId(existingAsyncTask.getVdsmTaskId()); + + assertNull(result); + assertEquals(dao.removeByVdsmId(existingAsyncTask.getVdsmTaskId()), 0); + + // The removed task is associated with an entity, try to fetch + // tasks for the entity, and see no task is returned + List<Guid> taskIds = dao.getAsyncTaskIdsByEntity(FixturesTool.ENTITY_WITH_TASKS_ID); + assertNotNull(taskIds); + assertTrue(taskIds.isEmpty()); + } @Test public void testSaveOrUpdate() { existingAsyncTask.setstatus(AsyncTaskStatusEnum.aborting); @@ -219,14 +245,14 @@ dao.saveOrUpdate(existingAsyncTask, VdcObjectType.Disk); tasks = dao.getAll(); assertEquals(tasksNumber, tasks.size()); - AsyncTasks taskFromDb = dao.get(existingAsyncTask.gettask_id()); + AsyncTasks taskFromDb = dao.get(existingAsyncTask.getVdsmTaskId()); assertNotNull(taskFromDb); assertEquals(taskFromDb,existingAsyncTask); dao.saveOrUpdate(newAsyncTask, VdcObjectType.Disk, Guid.NewGuid()); tasks = dao.getAll(); assertNotNull(tasks); assertEquals(tasksNumber+1, tasks.size()); - taskFromDb = dao.get(newAsyncTask.gettask_id()); + taskFromDb = dao.get(newAsyncTask.getVdsmTaskId()); assertEquals(taskFromDb, newAsyncTask); } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java index 59a2c25..4f5d233 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java @@ -356,4 +356,6 @@ public static final Guid NEW_HOOK_ID = new Guid("d2cb2f73-fab3-4a42-93f0-d5e4c069a43f"); public static final Guid CLUSTER_ID = new Guid("ae956031-6be2-43d6-bb8f-5191c9253314"); + + protected static final Guid EXISTING_VDSM_TASK_ID = new Guid("140fd52b-3400-4cdd-8d3f-C9d03704b0aa"); } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 050ef7a..41b937d 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -41,6 +41,7 @@ <column>started_at</column> <column>storage_pool_id</column> <column>task_type</column> + <column>vdsm_task_id</column> <row> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0aa</value> <value>1</value> <!-- Add VM --> @@ -51,6 +52,7 @@ <value>2010-12-01 14:13:07</value> <value>6d849ebf-755f-4552-ad09-9a090cda105d</value> <value>3</value> + <value>140fd52b-3400-4cdd-8d3f-c9d03704b0aa</value> </row> <row> <value>340fd52b-3400-4cdd-8d3f-c9d03704b0ab</value> @@ -62,6 +64,7 @@ <value>2010-12-01 14:13:07</value> <value>6d849ebf-755f-4552-ad09-9a090cda105d</value> <value>3</value> + <value>140fd52b-3400-4cdd-8d3f-c9d03704b0aa</value> </row> </table> diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HSMGetAllTasksInfoVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HSMGetAllTasksInfoVDSCommand.java index e5d6c10..3b6b6d6 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HSMGetAllTasksInfoVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HSMGetAllTasksInfoVDSCommand.java @@ -54,7 +54,7 @@ } AsyncTaskCreationInfo tempVar = new AsyncTaskCreationInfo(); - tempVar.setTaskID(taskID); + tempVar.setVdsmTaskId(taskID); tempVar.setTaskType(taskType); AsyncTaskCreationInfo task = tempVar; -- To view, visit http://gerrit.ovirt.org/14075 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I75e35773b18e342dbe61242829ce989b1f51ee70 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