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

Reply via email to