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
