Laszlo Hornyak has uploaded a new change for review.

Change subject: [wip] Make different links for VM's and Tempaltes
......................................................................

[wip] Make different links for VM's and Tempaltes

work in progress

Change-Id: I63eb144a088e0091c1cad4ecce63398d8421868e
Signed-off-by: Laszlo Hornyak <lhorn...@redhat.com>
---
A 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/DeviceUtils.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendReadOnlyDevicesResource.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/DiskStatisticalQuery.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/NicStatisticalQuery.java
4 files changed, 46 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/39/15439/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/DeviceUtils.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/DeviceUtils.java
new file mode 100644
index 0000000..fc68e95
--- /dev/null
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/utils/DeviceUtils.java
@@ -0,0 +1,22 @@
+package org.ovirt.engine.api.utils;
+
+import org.ovirt.engine.api.model.BaseDevice;
+import org.ovirt.engine.api.model.BaseResource;
+
+public class DeviceUtils {
+    public static BaseResource getDeviceParent(BaseDevice device) {
+        if(device.getVm() == null) {
+            return device.getTemplate();
+        } else {
+            return device.getVm();
+        }
+    }
+    public static String getDeviceParentId(BaseDevice device) {
+        BaseResource res = getDeviceParent(device);
+        if(res == null) {
+            return null;
+        } else {
+            return res.getId();
+        }
+    }
+}
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendReadOnlyDevicesResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendReadOnlyDevicesResource.java
index 5a516bf..b6f65e4 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendReadOnlyDevicesResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendReadOnlyDevicesResource.java
@@ -7,6 +7,7 @@
 
 import org.ovirt.engine.api.model.BaseDevice;
 import org.ovirt.engine.api.model.BaseDevices;
+import org.ovirt.engine.api.model.Template;
 import org.ovirt.engine.api.model.VM;
 import org.ovirt.engine.api.resource.ReadOnlyDeviceResource;
 import org.ovirt.engine.api.resource.ReadOnlyDevicesResource;
@@ -50,12 +51,28 @@
 
     @Override
     public D addParents(D device) {
-        // REVISIT: this can also be a template
-        device.setVm(new VM());
-        device.getVm().setId(parentId.toString());
+        if(isVm()) {
+            device.setVm(new VM());
+            device.getVm().setId(parentId.toString());
+        } else {
+            device.setTemplate(new Template());
+            device.getTemplate().setId(parentId.toString());
+        }
         return device;
     }
 
+    protected boolean isVm() {
+        try {
+            getEntity(org.ovirt.engine.core.common.businessentities.VM.class,
+                    VdcQueryType.GetVmByVmId,
+                    queryParams,
+                    parentId.toString());
+            return true;
+        } catch (WebFaultException e) {
+            return false;
+        }
+    }
+
     protected C mapCollection(List<Q> entities, boolean addLinks) {
         C collection = instantiate(collectionType);
         List<D> list = getList(collection);
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/DiskStatisticalQuery.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/DiskStatisticalQuery.java
index 914fd14..f95df94 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/DiskStatisticalQuery.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/DiskStatisticalQuery.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.api.model.Statistic;
 import org.ovirt.engine.api.model.StatisticUnit;
 import org.ovirt.engine.api.model.VM;
+import org.ovirt.engine.api.utils.DeviceUtils;
 import org.ovirt.engine.core.common.businessentities.Disk.DiskStorageType;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.compat.Guid;
@@ -51,7 +52,7 @@
         disk.setId(parent.getId());
         if (parent.isSetVm()) {
             disk.setVm(new VM());
-            disk.getVm().setId(parent.getVm().getId());
+            disk.getVm().setId(DeviceUtils.getDeviceParentId(parent));
         }
         return disk;
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/NicStatisticalQuery.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/NicStatisticalQuery.java
index 1bfefb3..c44098c 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/NicStatisticalQuery.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/NicStatisticalQuery.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.api.model.Statistic;
 import org.ovirt.engine.api.model.VM;
 import org.ovirt.engine.api.restapi.util.RxTxCalculator;
+import org.ovirt.engine.api.utils.DeviceUtils;
 import org.ovirt.engine.core.common.businessentities.network.NetworkStatistics;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.compat.Guid;
@@ -46,7 +47,7 @@
         NIC nic = new NIC();
         nic.setId(parent.getId());
         nic.setVm(new VM());
-        nic.getVm().setId(parent.getVm().getId());
+        nic.getVm().setId(DeviceUtils.getDeviceParentId(parent));
         return nic;
     }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I63eb144a088e0091c1cad4ecce63398d8421868e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Laszlo Hornyak <lhorn...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to