Vojtech Szocs has uploaded a new change for review.

Change subject: engine,userportal: Move pool filter logic to 
GetAllVmsAndVmPoolsQuery
......................................................................

engine,userportal: Move pool filter logic to GetAllVmsAndVmPoolsQuery

Filter logic for removing pools that have provided VMs moved from
client code (UiCommon) to server code (GetAllVmsAndVmPoolsQuery).

Change-Id: I5c1b61d6fd2ab0e79338332d5937fdd45080ff1d
Signed-off-by: Vojtech Szocs <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
2 files changed, 52 insertions(+), 42 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/10741/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
index 42de86c..02d1c77 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
@@ -11,35 +11,66 @@
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 
 public class GetAllVmsAndVmPoolsQuery<P extends VdcQueryParametersBase> 
extends QueriesCommandBase<P> {
+
     public GetAllVmsAndVmPoolsQuery(P parameters) {
         super(parameters);
     }
 
     @Override
     protected void executeQueryCommand() {
-        boolean isSucceeded = true;
-        List<Object> retValList = new ArrayList<Object>();
-        VdcQueryReturnValue queryResult = 
Backend.getInstance().runInternalQuery(VdcQueryType.GetAllVms, getParameters());
-        if (queryResult != null && queryResult.getSucceeded()) {
-            retValList.addAll((List<VM>) queryResult.getReturnValue());
-        } else {
-            isSucceeded = false;
-        }
+        List<VM> vms = getVms();
+        List<vm_pools> pools = getPools();
+
+        boolean isSucceeded = vms != null && pools != null;
+        getQueryReturnValue().setSucceeded(isSucceeded);
+
         if (isSucceeded) {
-            queryResult =
-                    
Backend.getInstance().runInternalQuery(VdcQueryType.GetAllVmPoolsAttachedToUser,
-                            new 
GetAllVmPoolsAttachedToUserParameters(getUserID()));
-            if (queryResult != null && queryResult.getSucceeded()) {
-                retValList.addAll((List<vm_pools>) 
queryResult.getReturnValue());
-            } else {
-                isSucceeded = false;
+            // Remove pools that have provided VMs
+            pools = filterPoolsWithProvidedVms(vms, pools);
+
+            List<Object> retValList = new ArrayList<Object>();
+            retValList.addAll(vms);
+            retValList.addAll(pools);
+
+            getQueryReturnValue().setReturnValue(retValList);
+        }
+    }
+
+    List<VM> getVms() {
+        VdcQueryReturnValue result = Backend.getInstance().runInternalQuery(
+                VdcQueryType.GetAllVms, getParameters());
+        return result != null && result.getSucceeded() ? (List<VM>) 
result.getReturnValue() : null;
+    }
+
+    List<vm_pools> getPools() {
+        VdcQueryReturnValue result = Backend.getInstance().runInternalQuery(
+                VdcQueryType.GetAllVmPoolsAttachedToUser,
+                new GetAllVmPoolsAttachedToUserParameters(getUserID()));
+        return result != null && result.getSucceeded() ? (List<vm_pools>) 
result.getReturnValue() : null;
+    }
+
+    /**
+     * Returns {@code allPools} minus pools that have provided VMs, based on 
{@code allVms}.
+     */
+    List<vm_pools> filterPoolsWithProvidedVms(List<VM> allVms, List<vm_pools> 
allPools) {
+        List<vm_pools> filteredPools = new 
ArrayList<vm_pools>(allPools.size());
+
+        for (vm_pools pool : allPools) {
+            boolean found = false;
+
+            for (VM vm : allVms) {
+                if (vm.getVmPoolId() != null && 
vm.getVmPoolId().equals(pool.getvm_pool_id())) {
+                    found = true;
+                    break;
+                }
+            }
+
+            if (!found) {
+                filteredPools.add(pool);
             }
         }
 
-        if (!isSucceeded) {
-            getQueryReturnValue().setSucceeded(false);
-            return;
-        }
-        getQueryReturnValue().setReturnValue(retValList);
+        return filteredPools;
     }
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
index 2f82b4d..cee7164 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/IUserPortalListModel.java
@@ -391,29 +391,8 @@
         {
             // Complete search.
 
-            // Remove pools that has provided VMs.
-            ArrayList<vm_pools> filteredPools = new ArrayList<vm_pools>();
-
-            for (vm_pools pool : getpools())
-            {
-                boolean found = false;
-                for (VM vm : getvms())
-                {
-                    if (vm.getVmPoolId() != null && 
vm.getVmPoolId().equals(pool.getvm_pool_id()))
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-
-                if (!found)
-                {
-                    filteredPools.add(pool);
-                }
-            }
-
             // Merge VMs and Pools, and create item models.
-            List all = Linq.Concat(getvms(), filteredPools);
+            List all = Linq.Concat(getvms(), getpools());
             Linq.Sort(all, new Linq.VmAndPoolByNameComparer());
 
             ArrayList<Model> items = new ArrayList<Model>();


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

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

Reply via email to