Yair Zaslavsky has uploaded a new change for review. Change subject: core: Introducing update of vdsm task ID at Db ......................................................................
core: Introducing update of vdsm task ID at Db This patch adds a stored procedure to update at async_tasks only vdsm_taskId information. The stored procedure will be used in order to split task DB creation and have it prior to task receiving vdsm task ID. Change-Id: Iebfc85569ba1aa8bd840f7239f83b7f921b3bd8f Bug-Url: https://bugzilla.redhat.com/873546 Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com> --- M backend/manager/dbscripts/async_tasks_sp.sql 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 4 files changed, 37 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/57/9257/1 diff --git a/backend/manager/dbscripts/async_tasks_sp.sql b/backend/manager/dbscripts/async_tasks_sp.sql index fe92c35..183798c 100644 --- a/backend/manager/dbscripts/async_tasks_sp.sql +++ b/backend/manager/dbscripts/async_tasks_sp.sql @@ -52,6 +52,18 @@ END; $procedure$ LANGUAGE plpgsql; +Create or replace FUNCTION UpdateaAsyncTaskWithVdsmTaskId(v_task_id UUID, v_vdsm_task_id UUID) +RETURNS VOID + + AS $procedure$ +BEGIN + UPDATE async_tasks + SET + vdsm_task_id = v_vdsm_task_id + WHERE task_id = v_task_id; +END; $procedure$ +LANGUAGE plpgsql; + Create or replace FUNCTION InsertOrUpdateAsyncTasks(v_action_type INTEGER, v_result INTEGER, v_status INTEGER, 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 1c71c95..50a0009 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 @@ -102,4 +102,11 @@ */ int removeByVdsmId(Guid vdsmTaskId); + /** + * Updates the task represented by its taskId with its VDSM taskId. + * Other fields are not updated + * @param task containing VDSM taskId to update + */ + public void updateWithVdsmTaskId(async_tasks asyncTask); + } 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 a1d0adb..9d69920 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 @@ -209,4 +209,12 @@ return getCallsHandler().executeModificationRowsAffected("DeleteAsyncTasksByVdsmTaskId", parameterSource); } + + @Override + public void updateWithVdsmTaskId(async_tasks asyncTask) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("task_id", asyncTask.getTaskId()) + .addValue("vdsm_task_id", asyncTask.getVdsmTaskId()); + getCallsHandler().executeModification("UpdateaAsyncTaskWithVdsmTaskId", parameterSource); + } } 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 d2403e3..d9a07c6 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 @@ -241,4 +241,14 @@ assertEquals(taskFromDb, newAsyncTask); } + + @Test + public void testUpdateVdsmTaskId() { + Guid newVdsmTaskId = Guid.NewGuid(); + existingAsyncTask.setVdsmTaskId(newVdsmTaskId); + dao.updateWithVdsmTaskId(existingAsyncTask); + async_tasks taskFromDb = dao.get(existingAsyncTask.getTaskId()); + assertNotNull(taskFromDb); + assertEquals(newVdsmTaskId, taskFromDb.getVdsmTaskId()); + } } -- To view, visit http://gerrit.ovirt.org/9257 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iebfc85569ba1aa8bd840f7239f83b7f921b3bd8f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches