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
