Gilad Chaplik has uploaded a new change for review.

Change subject: db: Fetch all running VM in cluster
......................................................................

db: Fetch all running VM in cluster

Added for performance reasons.

Change-Id: Id21d1fdcf5194b0c4cee069e62af1a723e67ecdc
Signed-off-by: Gilad Chaplik <[email protected]>
---
M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAO.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
M packaging/dbscripts/vms_sp.sql
3 files changed, 27 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/22792/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAO.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAO.java
index 97453be..6cc2158 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAO.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAO.java
@@ -275,4 +275,12 @@
      * @param originalTemplateName the new name of the template on which the 
VM has been based on
      */
     void updateOriginalTemplateName(Guid originalTemplateId, String 
originalTemplateName);
+
+    /**
+     * get all running VMs under specified cluster
+     *
+     * @param clusterId
+     * @return
+     */
+    List<VM> getAllRunningByCluster(Guid clusterId);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
index e0d1d9a..9f01804 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java
@@ -262,6 +262,14 @@
         );
     }
 
+    @Override
+    public List<VM> getAllRunningByCluster(Guid clusterId) {
+        return getCallsHandler().executeReadList("GetRunningVmsByClusterId",
+                VMRowMapper.instance,
+                getCustomMapSqlParameterSource()
+                        .addValue("cluster_id", clusterId));
+    }
+
     static final class VMRowMapper implements RowMapper<VM> {
         public static final VMRowMapper instance = new VMRowMapper();
 
diff --git a/packaging/dbscripts/vms_sp.sql b/packaging/dbscripts/vms_sp.sql
index bda16da..29fddfc 100644
--- a/packaging/dbscripts/vms_sp.sql
+++ b/packaging/dbscripts/vms_sp.sql
@@ -1123,3 +1123,14 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+-- Get all running vms for cluster
+Create or replace FUNCTION GetRunningVmsByClusterId(v_cluster_id UUID) RETURNS 
SETOF vms STABLE
+    AS $procedure$
+BEGIN
+    RETURN QUERY SELECT DISTINCT vms.*
+    FROM vms
+    WHERE run_on_vds IS NOT NULL AND
+        vds_group_id = v_cluster_id;
+
+END; $procedure$
+LANGUAGE plpgsql;


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

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

Reply via email to