Gilad Chaplik has uploaded a new change for review.

Change subject: engine: consolidate userPortal vm and pool queries
......................................................................

engine: consolidate userPortal vm and pool queries

created a singe query 'GetAllVmsAndVmPoolsQuery', that wraps
the former 2 queries that getVm and getPoolForUser.

Reduced getPoolForUser user level since it asks for userId.

Change-Id: I59346bc9f1cf6d948c4401ddbd7bb365c67b5b05
Signed-off-by: Gilad Chaplik <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
4 files changed, 94 insertions(+), 62 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/10475/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
new file mode 100644
index 0000000..42de86c
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsAndVmPoolsQuery.java
@@ -0,0 +1,45 @@
+package org.ovirt.engine.core.bll;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.businessentities.vm_pools;
+import 
org.ovirt.engine.core.common.queries.GetAllVmPoolsAttachedToUserParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
+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;
+        }
+        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;
+            }
+        }
+
+        if (!isSucceeded) {
+            getQueryReturnValue().setSucceeded(false);
+            return;
+        }
+        getQueryReturnValue().setReturnValue(retValList);
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
index bb08a1f..b0bd00f 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
@@ -117,7 +117,8 @@
     GetVmPoolsMapByVmPoolId,
     GetAllVmPools,
     HasFreeVmsInPool,
-    GetAllVmPoolsAttachedToUser(VdcQueryAuthType.User),
+    GetAllVmPoolsAttachedToUser,
+    GetAllVmsAndVmPools(VdcQueryAuthType.User),
     IsVmPoolWithSameNameExists,
     GetVmDataByPoolId(VdcQueryAuthType.User),
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
index 01778ab..03c602d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalBasicListModel.java
@@ -6,7 +6,6 @@
 
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.vm_pools;
-import 
org.ovirt.engine.core.common.queries.GetAllVmPoolsAttachedToUserParameters;
 import org.ovirt.engine.core.common.queries.GetVmdataByPoolIdParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
@@ -125,42 +124,33 @@
     protected void SyncSearch()
     {
         super.SyncSearch();
-
-        AsyncQuery _asyncQuery = new AsyncQuery();
-        _asyncQuery.setModel(this);
-        _asyncQuery.asyncCallback = new INewAsyncCallback() {
-            @Override
-            public void OnSuccess(Object model, Object ReturnValue)
-            {
-                UserPortalBasicListModel userPortalBasicListModel = 
(UserPortalBasicListModel) model;
-                userPortalBasicListModel.setvms((ArrayList<VM>) 
((VdcQueryReturnValue) ReturnValue).getReturnValue());
-                userPortalBasicListModel.OnVmAndPoolLoad();
-            }
-        };
-
-        Frontend.RunQuery(VdcQueryType.GetAllVms,
+        Frontend.RunQuery(VdcQueryType.GetAllVmsAndVmPools,
                 new VdcQueryParametersBase(),
-                _asyncQuery);
+                new AsyncQuery(this, new INewAsyncCallback() {
 
-        AsyncQuery _asyncQuery1 = new AsyncQuery();
-        _asyncQuery1.setModel(this);
-        _asyncQuery1.asyncCallback = new INewAsyncCallback() {
-            @Override
-            public void OnSuccess(Object model, Object ReturnValue)
-            {
-                if (ReturnValue != null)
-                {
-                    UserPortalBasicListModel userPortalBasicListModel = 
(UserPortalBasicListModel) model;
-                    userPortalBasicListModel.setpools((ArrayList<vm_pools>) 
((VdcQueryReturnValue) ReturnValue).getReturnValue());
-                    userPortalBasicListModel.OnVmAndPoolLoad();
-                }
-            }
-        };
+                    @Override
+                    public void OnSuccess(Object model, Object returnValue) {
+                        UserPortalBasicListModel userPortalBasicListModel = 
(UserPortalBasicListModel) model;
+                        ArrayList<VM> vms = new ArrayList<VM>();
+                        ArrayList<vm_pools> pools = new ArrayList<vm_pools>();
 
-        Frontend.RunQuery(VdcQueryType.GetAllVmPoolsAttachedToUser,
-                new 
GetAllVmPoolsAttachedToUserParameters(Frontend.getLoggedInUser().getUserId()),
-                _asyncQuery1);
+                        VdcQueryReturnValue retValue = (VdcQueryReturnValue) 
returnValue;
+                        if (retValue != null && retValue.getSucceeded()) {
+                            List<Object> list = (ArrayList<Object>) 
retValue.getReturnValue();
+                            for (Object object : list) {
+                                if (object instanceof VM) {
+                                    vms.add((VM) object);
+                                } else if (object instanceof vm_pools) {
+                                    pools.add((vm_pools) object);
+                                }
+                            }
+                        }
 
+                        userPortalBasicListModel.setvms(vms);
+                        userPortalBasicListModel.setpools(pools);
+                        userPortalBasicListModel.OnVmAndPoolLoad();
+                    }
+                }));
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
index 3e637ff..6bd065c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
@@ -34,7 +34,6 @@
 import org.ovirt.engine.core.common.businessentities.storage_domains;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.common.businessentities.vm_pools;
-import 
org.ovirt.engine.core.common.queries.GetAllVmPoolsAttachedToUserParameters;
 import org.ovirt.engine.core.common.queries.GetVmByVmIdParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
@@ -344,36 +343,33 @@
     {
         super.SyncSearch();
 
-        AsyncQuery _asyncQuery = new AsyncQuery();
-        _asyncQuery.setModel(this);
-        _asyncQuery.asyncCallback = new INewAsyncCallback() {
-            @Override
-            public void OnSuccess(Object model, Object ReturnValue)
-            {
-                UserPortalListModel userPortalListModel = 
(UserPortalListModel) model;
-                userPortalListModel.setvms((ArrayList<VM>) 
((VdcQueryReturnValue) ReturnValue).getReturnValue());
-                userPortalListModel.OnVmAndPoolLoad();
-            }
-        };
+        Frontend.RunQuery(VdcQueryType.GetAllVmsAndVmPools,
+                new VdcQueryParametersBase(),
+                new AsyncQuery(this, new INewAsyncCallback() {
 
-        Frontend.RunQuery(VdcQueryType.GetAllVms, new 
VdcQueryParametersBase(), _asyncQuery);
+                    @Override
+                    public void OnSuccess(Object model, Object returnValue) {
+                        UserPortalListModel userPortalListModel = 
(UserPortalListModel) model;
+                        ArrayList<VM> vms = new ArrayList<VM>();
+                        ArrayList<vm_pools> pools = new ArrayList<vm_pools>();
 
-        AsyncQuery _asyncQuery1 = new AsyncQuery();
-        _asyncQuery1.setModel(this);
-        _asyncQuery1.asyncCallback = new INewAsyncCallback() {
-            @Override
-            public void OnSuccess(Object model, Object ReturnValue)
-            {
-                UserPortalListModel userPortalListModel = 
(UserPortalListModel) model;
-                userPortalListModel.setpools((ArrayList<vm_pools>) 
((VdcQueryReturnValue) ReturnValue).getReturnValue());
-                userPortalListModel.OnVmAndPoolLoad();
-            }
-        };
+                        VdcQueryReturnValue retValue = (VdcQueryReturnValue) 
returnValue;
+                        if (retValue != null && retValue.getSucceeded()) {
+                            List<Object> list = (ArrayList<Object>) 
retValue.getReturnValue();
+                            for (Object object : list) {
+                                if (object instanceof VM) {
+                                    vms.add((VM) object);
+                                } else if (object instanceof vm_pools) {
+                                    pools.add((vm_pools) object);
+                                }
+                            }
+                        }
 
-        Frontend.RunQuery(VdcQueryType.GetAllVmPoolsAttachedToUser,
-                new 
GetAllVmPoolsAttachedToUserParameters(Frontend.getLoggedInUser().getUserId()),
-                _asyncQuery1);
-
+                        userPortalListModel.setvms(vms);
+                        userPortalListModel.setpools(pools);
+                        userPortalListModel.OnVmAndPoolLoad();
+                    }
+                }));
     }
 
     @Override


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I59346bc9f1cf6d948c4401ddbd7bb365c67b5b05
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