Juan Hernandez has uploaded a new change for review.

Change subject: restapi: Add reference to VM to disks
......................................................................

restapi: Add reference to VM to disks

This patch modifies the top level disk resource so that it populates the
"vms" element with the references to the VMs that are using the disk:

  GET /disks/{disk:id}
  <disk id="...">
    <name>mydisk</name>
    <vms>
      <vm id="..."/>
      <vm id="..."/>
      ...
    </vms>
  </disk>

Change-Id: Iaae4d0b0787b5658eab038fd94a6126ce356dd0d
Bug-Url: https://bugzilla.redhat.com/1132502
Signed-off-by: Juan Hernandez <juan.hernan...@redhat.com>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendDiskResource.java
1 file changed, 28 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/34696/1

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 3a7a05f..6bced6c 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,12 +1,19 @@
 package org.ovirt.engine.api.restapi.resource;
 
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
+import java.util.Map;
 
 import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Response;
 
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.MapUtils;
 import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.Disk;
+import org.ovirt.engine.api.model.VM;
+import org.ovirt.engine.api.model.VMs;
 import org.ovirt.engine.api.resource.ActionResource;
 import org.ovirt.engine.api.resource.AssignedPermissionsResource;
 import org.ovirt.engine.api.resource.CreationResource;
@@ -21,6 +28,7 @@
 import org.ovirt.engine.core.common.businessentities.ImageOperation;
 import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -105,6 +113,26 @@
 
     @Override
     protected Disk doPopulate(Disk model, 
org.ovirt.engine.core.common.businessentities.Disk entity) {
+        // Populate the references to the VMs that are using this disk:
+        List<org.ovirt.engine.core.common.businessentities.VM> vms = new 
ArrayList<>(1);
+        VdcQueryReturnValue result = runQuery(VdcQueryType.GetVmsByDiskGuid, 
new IdQueryParameters(entity.getId()));
+        if (result.getSucceeded()) {
+            Map<Boolean, 
List<org.ovirt.engine.core.common.businessentities.VM>> map = 
result.getReturnValue();
+            if (MapUtils.isNotEmpty(map)) {
+                for (List<org.ovirt.engine.core.common.businessentities.VM> 
list : map.values()) {
+                    vms.addAll(list);
+                }
+            }
+        }
+        if (CollectionUtils.isNotEmpty(vms)) {
+            VMs modelVms = new VMs();
+            for (org.ovirt.engine.core.common.businessentities.VM vm : vms) {
+                VM modelVm = new VM();
+                modelVm.setId(vm.getId().toString());
+                modelVms.getVMs().add(modelVm);
+            }
+            model.setVms(modelVms);
+        }
         return model;
     }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iaae4d0b0787b5658eab038fd94a6126ce356dd0d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <juan.hernan...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to