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

Reply via email to