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

Reply via email to