Gilad Chaplik has uploaded a new change for review.

Change subject: userportal: unify separate queries into runMultiple
......................................................................

userportal: unify separate queries into runMultiple

In the user portal, we query the same query in separate calls.
We can use a single multiple query to avoid overhead in network use.

Change-Id: Id1314cc7518e2ca393062eafd42a5bef8d0eec9f
Signed-off-by: Gilad Chaplik <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java
1 file changed, 29 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/10431/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java
index 534ae52..14119a4 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalLoginModel.java
@@ -8,6 +8,10 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.permissions;
+import 
org.ovirt.engine.core.common.queries.MultilevelAdministrationByRoleIdParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryParametersBase;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
+import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.users.VdcUser;
 import org.ovirt.engine.core.compat.EventArgs;
 import org.ovirt.engine.core.compat.Guid;
@@ -24,7 +28,9 @@
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
+import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
+import org.ovirt.engine.ui.uicompat.IFrontendMultipleQueryAsyncCallback;
 
 public class UserPortalLoginModel extends LoginModel
 {
@@ -353,31 +359,32 @@
     // Use only as 'Step3' of 'UpdateIsENGINEUser'
     public void UpdateUserActionGroups(Object targetObject, ArrayList<Guid> 
roleIdList)
     {
-        for (Guid roleID : roleIdList)
-        {
-            AsyncDataProvider.GetRoleActionGroupsByRoleId(new 
AsyncQuery(targetObject,
-                    new INewAsyncCallback() {
-                        @Override
-                        public void OnSuccess(Object target, Object 
returnValue) {
+        ArrayList<VdcQueryParametersBase> queryParamsList =
+                new ArrayList<VdcQueryParametersBase>();
+        ArrayList<VdcQueryType> queryTypeList = new ArrayList<VdcQueryType>();
+        for (Guid roleId : roleIdList) {
+            queryTypeList.add(VdcQueryType.GetRoleActionGroupsByRoleId);
+            queryParamsList.add(new 
MultilevelAdministrationByRoleIdParameters(roleId));
+            Frontend.RunMultipleQueries(queryTypeList, queryParamsList, new 
IFrontendMultipleQueryAsyncCallback() {
 
-                            UserPortalLoginModel loginModel = 
(UserPortalLoginModel) target;
-                            ArrayList<ActionGroup> roleActionGroupList =
-                                    (ArrayList<ActionGroup>) returnValue;
-                            for (ActionGroup actionGroup : roleActionGroupList)
-                            {
-                                if 
(!loginModel.getLoggedUserActionGroupList().contains(actionGroup))
-                                {
-                                    
loginModel.getLoggedUserActionGroupList().add(actionGroup);
-                                }
+                @Override
+                public void Executed(FrontendMultipleQueryAsyncResult result) {
+                    for (int i = 0; i < result.getReturnValues().size(); i++) {
+                        VdcQueryReturnValue retVal = 
result.getReturnValues().get(i);
+                        ArrayList<ActionGroup> roleActionGroupList =
+                                (ArrayList<ActionGroup>) 
retVal.getReturnValue();
+                        for (ActionGroup actionGroup : roleActionGroupList) {
+                            if 
(!UserPortalLoginModel.this.getLoggedUserActionGroupList().contains(actionGroup))
 {
+                                
UserPortalLoginModel.this.getLoggedUserActionGroupList().add(actionGroup);
                             }
-                            
loginModel.setRolesCounter(loginModel.getRolesCounter() - 1);
-                            if (loginModel.getRolesCounter() == 0)
-                            {
-                                CheckIsENGINEUser(loginModel);
-                            }
-
                         }
-                    }), roleID);
+                        
UserPortalLoginModel.this.setRolesCounter(UserPortalLoginModel.this.getRolesCounter()
 - 1);
+                        if (UserPortalLoginModel.this.getRolesCounter() == 0) {
+                            CheckIsENGINEUser(UserPortalLoginModel.this);
+                        }
+                    }
+                }
+            });
         }
     }
 


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

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