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
