Ravi Nori has uploaded a new change for review. Change subject: restapi: Inherited perms are not seen via RESTAPI (#871365) ......................................................................
restapi: Inherited perms are not seen via RESTAPI (#871365) The inherited permissions from the datacenter are not returned by the api. /api/clusters/xxx/permissions, /api/disks/xxx/permissions does not return the inherited permissions from the datacenter. Change-Id: Ic1a05d64ed61ae2bcf813b926bb548842bada237 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=871365 Signed-off-by: Ravi Nori <rn...@redhat.com> --- M backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/LinkHelper.java M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java 6 files changed, 36 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/9243/1 diff --git a/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/LinkHelper.java b/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/LinkHelper.java index 7d6cb32..12807ec 100644 --- a/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/LinkHelper.java +++ b/backend/manager/modules/restapi/interface/common/jaxrs/src/main/java/org/ovirt/engine/api/common/util/LinkHelper.java @@ -215,7 +215,7 @@ map = new ParentToCollectionMap(PermissionResource.class, AssignedPermissionsResource.class, User.class); map.add(PermissionResource.class, AssignedPermissionsResource.class, Group.class); map.add(PermissionResource.class, AssignedPermissionsResource.class, Role.class); - map.add(PermissionResource.class, AssignedPermissionsResource.class, VM.class); +// map.add(PermissionResource.class, AssignedPermissionsResource.class, VM.class); TYPES.put(Permission.class, map); map = new ParentToCollectionMap(NetworkResource.class, NetworksResource.class); diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java index 4c905ae..1349727 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/DiskResource.java @@ -16,6 +16,7 @@ package org.ovirt.engine.api.resource; import javax.ws.rs.GET; +import javax.ws.rs.Path; import javax.ws.rs.Produces; import org.jboss.resteasy.annotations.providers.jaxb.Formatted; @@ -28,4 +29,7 @@ @Formatted @Override public Disk get(); + + @Path("permissions") + public AssignedPermissionsResource getPermissionsResource(); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java index 90ef1b9..727770b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendAssignedPermissionsResource.java @@ -27,6 +27,7 @@ import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.common.queries.GetDbUserByUserIdParameters; +import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; import org.ovirt.engine.core.common.users.VdcUser; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.StringHelper; @@ -59,6 +60,10 @@ this.queryParams = queryParams; this.suggestedParentType = suggestedParentType; this.objectType = objectType; + if (queryType.equals(VdcQueryType.GetPermissionsForObject)) { + ((GetPermissionsForObjectParameters)queryParams).setVdcObjectType(objectType); + ((GetPermissionsForObjectParameters)queryParams).setDirectOnly(false); + } } @Override diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java index 1ebcd11..859b9e3 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java @@ -1,10 +1,13 @@ package org.ovirt.engine.api.restapi.resource; import org.ovirt.engine.api.model.Disk; +import org.ovirt.engine.api.resource.AssignedPermissionsResource; import org.ovirt.engine.api.resource.CreationResource; import org.ovirt.engine.api.resource.DiskResource; import org.ovirt.engine.api.resource.StatisticsResource; +import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.queries.GetDiskByDiskIdParameters; +import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendDiskResource extends AbstractBackendSubResource<Disk, org.ovirt.engine.core.common.businessentities.Disk> implements DiskResource { @@ -26,6 +29,15 @@ } @Override + public AssignedPermissionsResource getPermissionsResource() { + return inject(new BackendAssignedPermissionsResource(guid, + VdcQueryType.GetPermissionsForObject, + new GetPermissionsForObjectParameters(guid), + Disk.class, + VdcObjectType.Disk)); + } + + @Override public Disk get() { return performGet(VdcQueryType.GetDiskByDiskId, new GetDiskByDiskIdParameters(guid)); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java index 612bb6d..2d31fb8 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDisksResource.java @@ -25,7 +25,7 @@ public class BackendDisksResource extends AbstractBackendCollectionResource<Disk, org.ovirt.engine.core.common.businessentities.Disk> implements DisksResource{ - private static final String SUB_COLLECTIONS = "statistics"; + static final String[] SUB_COLLECTIONS = { "permissions", "statistics" }; public BackendDisksResource() { super(Disk.class, org.ovirt.engine.core.common.businessentities.Disk.class, SUB_COLLECTIONS); } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java index fff634e..8801620 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmDiskResource.java @@ -6,6 +6,7 @@ import org.ovirt.engine.api.model.Disk; import org.ovirt.engine.api.model.Disks; import org.ovirt.engine.api.resource.ActionResource; +import org.ovirt.engine.api.resource.AssignedPermissionsResource; import org.ovirt.engine.api.resource.StatisticsResource; import org.ovirt.engine.api.resource.VmDiskResource; import org.ovirt.engine.core.common.action.HotPlugDiskToVmParameters; @@ -13,6 +14,9 @@ import org.ovirt.engine.core.compat.Guid; import static org.ovirt.engine.api.restapi.resource.BackendNicsResource.SUB_COLLECTIONS; +import org.ovirt.engine.core.common.VdcObjectType; +import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; +import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendVmDiskResource extends BackendDeviceResource<Disk, Disks, org.ovirt.engine.core.common.businessentities.Disk> implements VmDiskResource { @@ -75,6 +79,15 @@ } @Override + public AssignedPermissionsResource getPermissionsResource() { + return inject(new BackendAssignedPermissionsResource(guid, + VdcQueryType.GetPermissionsForObject, + new GetPermissionsForObjectParameters(guid), + Disk.class, + VdcObjectType.Disk)); + } + + @Override public Disk update(Disk resource) { validateEnums(Disk.class, resource); return super.update(resource);//explicit call solves REST-Easy confusion -- To view, visit http://gerrit.ovirt.org/9243 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic1a05d64ed61ae2bcf813b926bb548842bada237 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <rn...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches