Francesco Romani has uploaded a new change for review. Change subject: WIP: engine: port VMConsoleProxy to bulk queries ......................................................................
WIP: engine: port VMConsoleProxy to bulk queries Change-Id: Ieb079cf142d1ce034e1fa95dd4646f80e667a3b3 Signed-off-by: Francesco Romani <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllUserProfilesQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmConsolesForAnotherUserQuery.java D backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForAnotherUserQuery.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java M backend/manager/modules/services/src/main/java/org/ovirt/engine/core/services/VMConsoleProxyServlet.java 5 files changed, 37 insertions(+), 56 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/40700/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllUserProfilesQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllUserProfilesQuery.java index 1e7e201..4f2ea4c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllUserProfilesQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllUserProfilesQuery.java @@ -13,6 +13,6 @@ @Override protected void executeQueryCommand() { getQueryReturnValue().setReturnValue( - DbFacade.getInstance().getUserProfileDao().getAll()); + DbFacade.getInstance().getUserProfileDao().getAllExtended()); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmConsolesForAnotherUserQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmConsolesForAnotherUserQuery.java new file mode 100644 index 0000000..187ec7d --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmConsolesForAnotherUserQuery.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.bll.context.EngineContext; +import org.ovirt.engine.core.common.queries.IdQueryParameters; + + +public class GetAllVmConsolesForAnotherUserQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { + public GetAllVmConsolesForAnotherUserQuery(P parameters) { + super(parameters); + } + + public GetAllVmConsolesForAnotherUserQuery(P parameters, EngineContext engineContext) { + super(parameters, engineContext); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(getDbFacade().getVmConsoleDao().getAllForUser(getParameters().getId())); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForAnotherUserQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForAnotherUserQuery.java deleted file mode 100644 index db797f7..0000000 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllVmsForAnotherUserQuery.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.ovirt.engine.core.bll; - -import org.ovirt.engine.core.bll.context.EngineContext; -import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.queries.IdQueryParameters; - -import java.util.List; - -public class GetAllVmsForAnotherUserQuery<P extends IdQueryParameters> extends QueriesCommandBase<P> { - public GetAllVmsForAnotherUserQuery(P parameters) { - super(parameters); - } - - public GetAllVmsForAnotherUserQuery(P parameters, EngineContext engineContext) { - super(parameters, engineContext); - } - - @Override - protected void executeQueryCommand() { - List<VM> vmsList = getDbFacade().getVmDao().getAllForUser(getParameters().getId()); - - getQueryReturnValue().setReturnValue(vmsList); - } -} 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 1d94f59..e175d26 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 @@ -9,7 +9,6 @@ GetVmByVmNameForDataCenter(VdcQueryAuthType.User), GetAllVms(VdcQueryAuthType.User), GetAllVmsForUser(VdcQueryAuthType.User), - GetAllVmsForAnotherUser(VdcQueryAuthType.User), GetUnregisteredVms, GetUnregisteredVmTemplates, GetVmsRunningOnOrMigratingToVds, @@ -414,6 +413,8 @@ GetDeviceCustomProperties(VdcQueryAuthType.User), + GetAllVmConsolesForAnotherUser(VdcQueryAuthType.User), + // Scheduling GetClusterPolicies, GetClusterPolicyById, diff --git a/backend/manager/modules/services/src/main/java/org/ovirt/engine/core/services/VMConsoleProxyServlet.java b/backend/manager/modules/services/src/main/java/org/ovirt/engine/core/services/VMConsoleProxyServlet.java index f26b262..ca2f5d9 100644 --- a/backend/manager/modules/services/src/main/java/org/ovirt/engine/core/services/VMConsoleProxyServlet.java +++ b/backend/manager/modules/services/src/main/java/org/ovirt/engine/core/services/VMConsoleProxyServlet.java @@ -4,9 +4,8 @@ import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.type.TypeFactory; import org.ovirt.engine.core.bll.interfaces.BackendInternal; -import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.businessentities.UserProfile; -import org.ovirt.engine.core.common.businessentities.aaa.DbUser; +import org.ovirt.engine.core.common.businessentities.VmConsole; +import org.ovirt.engine.core.common.businessentities.UserProfileView; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -52,22 +51,16 @@ VdcQueryReturnValue v = backend.runInternalQuery(VdcQueryType.GetAllUserProfiles, vmparams); if (v != null) { - List<UserProfile> profiles = v.getReturnValue(); + List<UserProfileView> profiles = v.getReturnValue(); - for (UserProfile profile : profiles) { + for (UserProfileView profile : profiles) { if (StringUtils.isNotEmpty(profile.getSshPublicKey())) { IdQueryParameters userparams = new IdQueryParameters(profile.getUserId()); - - // TODO: avoid one query per loop. Bulk query? - VdcQueryReturnValue ret = backend.runInternalQuery(VdcQueryType.GetDbUserByUserId, userparams); - DbUser user = ret.getReturnValue(); Map<String, String> jsonUser = new HashMap<String, String>(); jsonUser.put("entityid", profile.getId().toString()); jsonUser.put("entity", "ssh-key"); - if (user != null) { - jsonUser.put("username", user.getLoginName()); - } + jsonUser.put("username", profile.getLoginName()); jsonUser.put("key", profile.getSshPublicKey()); jsonUsers.add(jsonUser); @@ -95,30 +88,21 @@ if (userGuid != null) { IdQueryParameters userParam = new IdQueryParameters(userGuid); - VdcQueryReturnValue retVms = backend.runInternalQuery(VdcQueryType.GetAllVmsForAnotherUser, userParam); + VdcQueryReturnValue retVms = backend.runInternalQuery(VdcQueryType.GetAllVmConsolesForAnotherUser, userParam); if (retVms != null) { - List<VM> vmsList = retVms.getReturnValue(); + List<VmConsole> vmConsoles = retVms.getReturnValue(); - for (VM vm : vmsList) { - Map<String, String> jsonVm = new HashMap<String, String>(); + for (VmConsole console : vmConsoles) { + Map<String, String> jsonConsole = new HashMap<String, String>(); - IdQueryParameters vmParam = new IdQueryParameters(vm.getId()); + jsonConsole.put("vmid", console.getVmGuid().toString()); + jsonConsole.put("vmname", console.getVmName()); + jsonConsole.put("host", console.getAddress()); + jsonConsole.put("console", console.getName()); - // TODO: avoid one query per loop. Bulk query? - VdcQueryReturnValue retAddr = backend.runInternalQuery(VdcQueryType.GetManagementInterfaceAddressByVmId, vmParam); - - if (retAddr != null && retAddr.getReturnValue() != null) { - String vdsAddress = (String) retAddr.getReturnValue(); - - jsonVm.put("vmid", vm.getId().toString()); - jsonVm.put("vmname", vm.getName()); - jsonVm.put("host", vdsAddress); - jsonVm.put("console", ""); - } - - jsonVms.add(jsonVm); + jsonVms.add(jsonConsole); } } } -- To view, visit https://gerrit.ovirt.org/40700 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ieb079cf142d1ce034e1fa95dd4646f80e667a3b3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Francesco Romani <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
