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

Reply via email to