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
