Sahina Bose has uploaded a new change for review.

Change subject: engine:Add dao method to update task on brick
......................................................................

engine:Add dao method to update task on brick

Added a dao method to update task on brick given
a brick's server id and brick directory
A batch method introduced to update all bricks with
a task id.

Change-Id: I3abd6d4a3649a8c4880e2fdbde190ab1d2268c06
Signed-off-by: Sahina Bose <[email protected]>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoTest.java
M packaging/dbscripts/gluster_volumes_sp.sql
4 files changed, 82 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/19615/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDao.java
index f4ecd54..b2b1de6 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDao.java
@@ -36,4 +36,8 @@
     public void updateBrickTask(Guid brickId, Guid taskId);
 
     public void updateBrickTasksInBatch(Collection<GlusterBrickEntity> bricks);
+
+    public void updateBrickTaskByHostIdBrickDir(Guid serverId, String 
brickDir, Guid taskId);
+
+    public void 
updateAllBrickTasksByHostIdBrickDir(Collection<GlusterBrickEntity> bricks);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoDbFacadeImpl.java
index d5ffd8b..3351fb9 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoDbFacadeImpl.java
@@ -192,4 +192,22 @@
     public void updateBrickTasksInBatch(Collection<GlusterBrickEntity> bricks) 
{
         
getCallsHandler().executeStoredProcAsBatch("UpdateGlusterVolumeBrickAsyncTask", 
bricks, getBatchMapper());
     }
+
+    @Override
+    public void updateBrickTaskByHostIdBrickDir(Guid serverId, String 
brickDir, Guid taskId) {
+        
getCallsHandler().executeModification("UpdateGlusterBrickTaskByServerIdBrickDir",
+                getCustomMapSqlParameterSource().
+                        addValue("server_id", serverId).
+                        addValue("brick_dir", brickDir).
+                        addValue("task_id", taskId));
+
+    }
+
+    @Override
+    public void 
updateAllBrickTasksByHostIdBrickDir(Collection<GlusterBrickEntity> bricks) {
+        
getCallsHandler().executeStoredProcAsBatch("UpdateGlusterBrickTaskByServerIdBrickDir",
+                bricks, getBatchMapper());
+
+    }
+
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoTest.java
index f026188..840f211 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/gluster/GlusterBrickDaoTest.java
@@ -180,4 +180,50 @@
         assertEquals(FixturesTool.GLUSTER_ASYNC_TASK_ID1, 
newEnity1.getAsyncTask().getTaskId());
         assertEquals(FixturesTool.GLUSTER_ASYNC_TASK_ID1, 
newEnity2.getAsyncTask().getTaskId());
     }
+
+    @Test
+    public void testUpdateBrickTaskByHostIdBrickDir() {
+        GlusterBrickEntity existingBrick = 
dao.getById(FixturesTool.GLUSTER_BRICK_UUID1);
+        GlusterAsyncTask asyncTask = new GlusterAsyncTask();
+        asyncTask.setTaskId(FixturesTool.GLUSTER_ASYNC_TASK_ID1);
+
+        dao.updateBrickTaskByHostIdBrickDir(existingBrick.getServerId(), 
existingBrick.getBrickDirectory(), FixturesTool.GLUSTER_ASYNC_TASK_ID1);
+
+        GlusterBrickEntity newEnity = 
dao.getById(FixturesTool.GLUSTER_BRICK_UUID1);
+
+        assertEquals(FixturesTool.GLUSTER_ASYNC_TASK_ID1, 
newEnity.getAsyncTask().getTaskId());
+    }
+
+    @Test
+    public void testUpdateAllBrickTasksByHostIdBrickDir() {
+        GlusterBrickEntity existingBrick = 
dao.getById(FixturesTool.GLUSTER_BRICK_UUID1);
+        GlusterBrickEntity existingBrick2 = 
dao.getById(FixturesTool.GLUSTER_BRICK_UUID2);
+        GlusterAsyncTask asyncTask = new GlusterAsyncTask();
+        asyncTask.setTaskId(FixturesTool.GLUSTER_ASYNC_TASK_ID1);
+
+        //assertNull(existingBrick.getAsyncTask());
+
+        GlusterBrickEntity updateBrick = new GlusterBrickEntity();
+        updateBrick.setBrickDirectory(existingBrick.getBrickDirectory());
+        updateBrick.setServerId(existingBrick.getServerId());
+        updateBrick.setAsyncTask(asyncTask);
+
+        GlusterBrickEntity updateBrick2 = new GlusterBrickEntity();
+        updateBrick2.setBrickDirectory(existingBrick2.getBrickDirectory());
+        updateBrick2.setServerId(existingBrick2.getServerId());
+        updateBrick2.setAsyncTask(asyncTask);
+
+        List<GlusterBrickEntity> bricks = new ArrayList<>();
+        bricks.add(updateBrick);
+        bricks.add(updateBrick2);
+
+
+        dao.updateAllBrickTasksByHostIdBrickDir(bricks);
+
+        GlusterBrickEntity newEntity1 = 
dao.getById(FixturesTool.GLUSTER_BRICK_UUID1);
+        GlusterBrickEntity newEntity2 = 
dao.getById(FixturesTool.GLUSTER_BRICK_UUID1);
+
+        assertEquals(FixturesTool.GLUSTER_ASYNC_TASK_ID1, 
newEntity1.getAsyncTask().getTaskId());
+        assertEquals(FixturesTool.GLUSTER_ASYNC_TASK_ID1, 
newEntity2.getAsyncTask().getTaskId());
+    }
 }
diff --git a/packaging/dbscripts/gluster_volumes_sp.sql 
b/packaging/dbscripts/gluster_volumes_sp.sql
index 3ad18dd..f12428f 100644
--- a/packaging/dbscripts/gluster_volumes_sp.sql
+++ b/packaging/dbscripts/gluster_volumes_sp.sql
@@ -464,6 +464,20 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+Create or replace FUNCTION 
UpdateGlusterBrickTaskByServerIdBrickDir(v_server_id UUID,
+                                                                               
                                                     v_brick_dir VARCHAR(200),
+                                                                               
                                                         v_task_id UUID)
+    RETURNS VOID
+    AS $procedure$
+BEGIN
+    UPDATE  gluster_volume_bricks
+    SET     task_id = v_task_id,
+            _update_date = LOCALTIMESTAMP
+    WHERE   server_id = v_server_id
+    AND brick_dir = v_brick_dir;
+END; $procedure$
+LANGUAGE plpgsql;
+
 Create or replace FUNCTION UpdateGlusterVolumeStatusByName(v_cluster_id UUID,
                                                     v_vol_name VARCHAR(1000),
                                                     v_status VARCHAR(32))


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3abd6d4a3649a8c4880e2fdbde190ab1d2268c06
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sahina Bose <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to