Ravi Nori has uploaded a new change for review.

Change subject: restapi: if filter: header is set, use query instead of search 
(#869334)
......................................................................

restapi: if filter: header is set, use query instead of search (#869334)

When the filter option is specified the api query should not
throw a insufficient permissions exception. Instead the query should
return a list of objects that the user has permissions for.

Change-Id: I0051d10458fe85cf6660f09ce4efca1aa7c2d952
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=869334
Signed-off-by: Ravi Nori <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmPoolsResource.java
2 files changed, 13 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/12087/1

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 f258e34..a442524 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
@@ -119,7 +119,7 @@
     GetVmPoolsMapByVmPoolId,
     GetAllVmPools,
     HasFreeVmsInPool,
-    GetAllVmPoolsAttachedToUser,
+    GetAllVmPoolsAttachedToUser(VdcQueryAuthType.User),
     GetAllVmsAndVmPools(VdcQueryAuthType.User),
     IsVmPoolWithSameNameExists,
     GetVmDataByPoolId(VdcQueryAuthType.User),
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmPoolsResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmPoolsResource.java
index 1c29f37..0e7aaa5 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmPoolsResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmPoolsResource.java
@@ -20,6 +20,7 @@
 import 
org.ovirt.engine.core.common.queries.GetAllVmPoolsAttachedToUserParameters;
 import org.ovirt.engine.core.common.queries.GetVmPoolByIdParameters;
 import org.ovirt.engine.core.common.queries.GetVmTemplateParameters;
+import org.ovirt.engine.core.common.queries.GetVmdataByPoolIdParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.users.VdcUser;
 import org.ovirt.engine.core.compat.Guid;
@@ -89,13 +90,23 @@
     @Override
     protected VmPool deprecatedPopulate(VmPool model, 
org.ovirt.engine.core.common.businessentities.VmPool entity) {
         if (model.isSetSize() && model.getSize() > 0) {
-            VM vm = getEntity(VM.class, SearchType.VM, "Vms: pool=" + 
model.getName());
+            VM vm = getVM(model);
             model.setTemplate(new Template());
             model.getTemplate().setId(vm.getVmtGuid().toString());
         }
         return model;
     }
 
+    private VM getVM(VmPool model) {
+        if (isFiltered()) {
+            return getEntity(VM.class,
+                         VdcQueryType.GetVmDataByPoolId,
+                         new 
GetVmdataByPoolIdParameters(asGuid(model.getId())),
+                         model.getId());
+        }
+        return getEntity(VM.class, SearchType.VM, "Vms: pool=" + 
model.getName());
+    }
+
     protected VM mapToVM(VmPool model, VmTemplate template) {
         // REVISIT: we should reverse the mapping order here,
         // so that we map from template->VM in the first instance


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0051d10458fe85cf6660f09ce4efca1aa7c2d952
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to