Yair Zaslavsky has uploaded a new change for review. Change subject: core: Adding the ability to get async tasks by entity id ......................................................................
core: Adding the ability to get async tasks by entity id The following patch adds the ability to get asyncs by entity Id Change-Id: I09506b1dbaa3646d61a62fd8023edb58367827df Signed-off-by: Yair Zaslavsky <[email protected]> --- 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, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/89/14989/1 diff --git a/backend/manager/dbscripts/async_tasks_sp.sql b/backend/manager/dbscripts/async_tasks_sp.sql index 03c3d0c9..4dbb06a 100644 --- a/backend/manager/dbscripts/async_tasks_sp.sql +++ b/backend/manager/dbscripts/async_tasks_sp.sql @@ -155,6 +155,17 @@ END; $procedure$ LANGUAGE plpgsql; + +Create or replace FUNCTION GetAsyncTasksByEntityId(v_entity_id UUID) RETURNS SETOF async_tasks + AS $procedure$ +BEGIN + RETURN QUERY SELECT * + FROM async_tasks JOIN async_tasks_entities ON async_task_id = task_id + WHERE entity_id = v_entity_id; + +END; $procedure$ +LANGUAGE plpgsql; + Create or replace FUNCTION GetAsyncTasksByVdsmTaskId(v_vdsm_task_id UUID) RETURNS SETOF async_tasks AS $procedure$ BEGIN 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 5b2e2d8..6898d3e 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 @@ -94,4 +94,12 @@ * @return the number of tasks deleted */ int removeByVdsmTaskId(Guid vdsmTaskId); + + /** + * Gets all the tasks that are associated with an entity id + * + * @param entityId + * @return + */ + List<AsyncTasks> getTasksByEntity(Guid entityId); } 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 2129e13..f08007f 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 @@ -200,4 +200,13 @@ parameterSource.addValue("storage_pool_id", storagePoolId); return getCallsHandler().executeReadList("GetAsyncTasksByStoragePoolId", IdRowMapper.instance, parameterSource); } + + @Override + public List<AsyncTasks> getTasksByEntity(Guid entityId) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource(); + parameterSource.addValue("entity_id", entityId); + return getCallsHandler().executeReadList("GetAsyncTasksByEntityId", + AsyncTaskRowMapper.instance, + 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 4ddf4fe..da0d5b5 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 @@ -86,6 +86,13 @@ } @Test + public void testGetAsyncTaskEntitiesById() { + List<AsyncTasks> tasks = dao.getTasksByEntity(FixturesTool.ENTITY_WITH_TASKS_ID); + assertNotNull(tasks); + assertEquals(tasks.size(), 1); + } + + @Test public void testGetAsyncTaskIdsByInvalidEntity() { List<Guid> guids = dao.getAsyncTaskIdsByEntity(Guid.NewGuid()); assertNotNull(guids); -- To view, visit http://gerrit.ovirt.org/14989 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I09506b1dbaa3646d61a62fd8023edb58367827df Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
