Libor Spevak has uploaded a new change for review.

Change subject: core,webadmin: Show Pools tab based on tree
......................................................................

core,webadmin: Show Pools tab based on tree

Tab Pools was shown only for System node when selected
in left tree panel.

New support for Datacenter and Cluster filtering
is available.

oVirt query language had to be extended in new syntax:

Pools: cluster = XXXX
Pools: datacenter = XXXX

Change-Id: I39c39366865ff6a62d30fab993685c72e0c39e10
Bug-Url: https://bugzilla.redhat.com/846284
Signed-off-by: Libor Spevak <lspe...@redhat.com>
---
M backend/manager/dbscripts/create_views.sql
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/PoolConditionFieldAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java
4 files changed, 38 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/14073/1

diff --git a/backend/manager/dbscripts/create_views.sql 
b/backend/manager/dbscripts/create_views.sql
index 560fd17..c728fb1 100644
--- a/backend/manager/dbscripts/create_views.sql
+++ b/backend/manager/dbscripts/create_views.sql
@@ -761,30 +761,24 @@
 
 
 
-CREATE OR REPLACE VIEW vm_pools_view
-AS
-SELECT     vm_pools.vm_pool_id as vm_pool_id, vm_pools.vm_pool_name as 
vm_pool_name, vm_pools.vm_pool_description as vm_pool_description, 
vm_pools.vm_pool_type as vm_pool_type,
-                      vm_pools.parameters as parameters, 
vm_pools.prestarted_vms as prestarted_vms, vm_pools.vds_group_id as 
vds_group_id, vds_groups.name as vds_group_name
-FROM         vm_pools INNER JOIN
-vds_groups ON vm_pools.vds_group_id = vds_groups.vds_group_id;
+CREATE OR REPLACE VIEW vm_pools_view AS 
+ SELECT vm_pools.vm_pool_id, vm_pools.vm_pool_name, 
vm_pools.vm_pool_description, vm_pools.vm_pool_type, vm_pools.parameters, 
vm_pools.prestarted_vms, vm_pools.vds_group_id, vds_groups.name AS 
vds_group_name, storage_pool.name as storage_pool_name, storage_pool.id as 
storage_pool_id
+   FROM vm_pools
+   JOIN vds_groups ON vm_pools.vds_group_id = vds_groups.vds_group_id
+   JOIN storage_pool ON storage_pool.id = vds_groups.storage_pool_id;
 
 
 
-CREATE OR REPLACE VIEW vm_pools_full_view
-AS
-
-SELECT     vm_pool_id as vm_pool_id, vm_pool_name as vm_pool_name, 
vm_pool_description as vm_pool_description, vm_pool_type as vm_pool_type, 
parameters as parameters, prestarted_vms as prestarted_vms, vds_group_id as 
vds_group_id, vds_group_name as vds_group_name,
-              (SELECT     COUNT(vm_pool_map.vm_pool_id) as Expr1
-   FROM        vm_pools_view AS v1 LEFT OUTER JOIN
-   vm_pool_map ON v1.vm_pool_id = vm_pool_map.vm_pool_id AND v1.vm_pool_id = 
vmp.vm_pool_id) as assigned_vm_count,
-              (SELECT     COUNT(v2.vm_pool_id) as Expr1
-   FROM        vm_pools AS v2 LEFT OUTER JOIN
-   vm_pool_map AS vm_pool_map_1 ON v2.vm_pool_id = vm_pool_map_1.vm_pool_id AND
-   v2.vm_pool_id = vmp.vm_pool_id LEFT OUTER JOIN
-   vm_dynamic ON vm_pool_map_1.vm_guid = vm_dynamic.vm_guid
-   WHERE vm_dynamic.status not in(0,15)
-   GROUP BY v2.vm_pool_id) as vm_running_count
-FROM         vm_pools_view AS vmp;
+CREATE OR REPLACE VIEW vm_pools_full_view AS 
+ SELECT vmp.vm_pool_id, vmp.vm_pool_name, vmp.vm_pool_description, 
vmp.vm_pool_type, vmp.parameters, vmp.prestarted_vms, vmp.vds_group_id, 
vmp.vds_group_name, ( SELECT count(vm_pool_map.vm_pool_id) AS expr1
+           FROM vm_pools_view v1
+      LEFT JOIN vm_pool_map ON v1.vm_pool_id = vm_pool_map.vm_pool_id AND 
v1.vm_pool_id = vmp.vm_pool_id) AS assigned_vm_count, ( SELECT 
count(v2.vm_pool_id) AS expr1
+           FROM vm_pools v2
+      LEFT JOIN vm_pool_map vm_pool_map_1 ON v2.vm_pool_id = 
vm_pool_map_1.vm_pool_id AND v2.vm_pool_id = vmp.vm_pool_id
+   LEFT JOIN vm_dynamic ON vm_pool_map_1.vm_guid = vm_dynamic.vm_guid  
+  WHERE vm_dynamic.status <> ALL (ARRAY[0, 15])
+  GROUP BY v2.vm_pool_id) AS vm_running_count, vmp.storage_pool_name, 
vmp.storage_pool_id
+   FROM vm_pools_view vmp;
 
 
 
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/PoolConditionFieldAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/PoolConditionFieldAutoCompleter.java
index f57e101..6b73e78 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/PoolConditionFieldAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/PoolConditionFieldAutoCompleter.java
@@ -8,6 +8,8 @@
         mVerbs.put("NAME", "NAME");
         mVerbs.put("DESCRIPTION", "DESCRIPTION");
         mVerbs.put("TYPE", "TYPE");
+        mVerbs.put("CLUSTER", "CLUSTER");
+        mVerbs.put("DATACENTER", "DATACENTER");
 
         // Building the autoCompletion Dict
         buildCompletions();
@@ -15,11 +17,15 @@
         getTypeDictionary().put("NAME", String.class);
         getTypeDictionary().put("DESCRIPTION", String.class);
         getTypeDictionary().put("TYPE", VmPoolType.class);
+        getTypeDictionary().put("CLUSTER", String.class);
+        getTypeDictionary().put("DATACENTER", String.class);
 
         // building the ColumnName Dict
         columnNameDict.put("NAME", "vm_pool_name");
         columnNameDict.put("DESCRIPTION", "vm_pool_description");
         columnNameDict.put("TYPE", "vm_pool_type");
+        columnNameDict.put("CLUSTER", "vds_group_name");
+        columnNameDict.put("DATACENTER", "storage_pool_name");
 
         // Building the validation dict
         buildBasicValidationTable();
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
index c3d1494..0ed91e3 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/SearchObjectAutoCompleter.java
@@ -135,6 +135,9 @@
 
         // host interface - host
         addJoin(SearchObjects.VDS_OBJ_NAME, "vds_id", 
SearchObjects.VDS_NETWORK_INTERFACE_OBJ_NAME, "vds_id");
+
+        // cluster - vm pool
+        addJoin(SearchObjects.VDC_CLUSTER_OBJ_NAME, "vds_group_id", 
SearchObjects.VDC_POOL_OBJ_NAME, "vds_group_id");
     }
 
     private void addJoin(String firstObj, String firstColumnName, String 
secondObj, String secondColumnName) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java
index 665363b..8f8c30e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/CommonModel.java
@@ -4,9 +4,9 @@
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.AuditLog;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.users.VdcUser;
 import org.ovirt.engine.core.compat.RefObject;
 import org.ovirt.engine.core.compat.Regex;
@@ -426,11 +426,7 @@
         storageList.setIsAvailable(!getHasSelectedTags());
         vmList.setIsAvailable(true);
         volumeList.setIsAvailable(true);
-
-        if (poolList != null)
-        {
-            poolList.setIsAvailable(!getHasSelectedTags());
-        }
+        poolList.setIsAvailable(!getHasSelectedTags());
 
         templateList.setIsAvailable(!getHasSelectedTags());
         userList.setIsAvailable(true);
@@ -558,10 +554,10 @@
                 || model.getType() == SystemTreeItemType.VMs
                 || model.getType() == SystemTreeItemType.System);
 
-        if (poolList != null)
-        {
-            poolList.setIsAvailable(model.getType() == 
SystemTreeItemType.System);
-        }
+        poolList.setIsAvailable(model.getType() == SystemTreeItemType.System
+                || model.getType() == SystemTreeItemType.DataCenter
+                || model.getType() == SystemTreeItemType.Cluster
+                || model.getType() == SystemTreeItemType.Cluster_Gluster);
 
         templateList.setIsAvailable(model.getType() == 
SystemTreeItemType.DataCenter
                 || model.getType() == SystemTreeItemType.Cluster
@@ -1047,6 +1043,10 @@
                 {
                     prefix.argvalue = "Network: datacenter = " + 
model.getTitle(); //$NON-NLS-1$
                 }
+                else if (poolList.IsSearchStringMatch(source))
+                {
+                    prefix.argvalue = "Pools: datacenter = " + 
model.getTitle(); //$NON-NLS-1$
+                }
             }
                 break;
             case Clusters: {
@@ -1091,6 +1091,10 @@
                 {
                     prefix.argvalue = "Network: Cluster_network.cluster_name = 
" + model.getTitle(); //$NON-NLS-1$
                 }
+                else if (poolList.IsSearchStringMatch(source))
+                {
+                    prefix.argvalue = "Pools: cluster = " + model.getTitle(); 
//$NON-NLS-1$
+                }
             }
                 break;
             case Hosts: {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I39c39366865ff6a62d30fab993685c72e0c39e10
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Libor Spevak <lspe...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to