Tomas Jelinek has uploaded a new change for review.

Change subject: core: Added a possibility to filter disks according explicitely 
set values
......................................................................

core: Added a possibility to filter disks according explicitely set values

Added optional params to GetAllAttachableDisks to filter by explicitely set OS
and VDS Group.

Change-Id: If363cd92aa0071c88f2333294002ff8aa0da1b40
Bug-Url: https://bugzilla.redhat.com/1117489
Signed-off-by: Tomas Jelinek <tjeli...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllAttachableDisksQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetAllAttachableDisks.java
2 files changed, 40 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/36060/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllAttachableDisksQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllAttachableDisksQuery.java
index a818a81..993ec90 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllAttachableDisksQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAllAttachableDisksQuery.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.core.common.osinfo.OsRepository;
 import org.ovirt.engine.core.common.queries.GetAllAttachableDisks;
 import org.ovirt.engine.core.common.utils.SimpleDependecyInjector;
+import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.springframework.util.CollectionUtils;
 
@@ -31,6 +32,11 @@
             return;
         }
 
+        if (getParameters().isFilterByExplicitValues()) {
+            setReturnValue(filter(diskList, getParameters().getOs(), 
getParameters().getVdsGroupCompatibilityVersion()));
+            return;
+        }
+
         VM vm = 
DbFacade.getInstance().getVmDao().get(getParameters().getVmId(),
                 getUserID(),
                 getParameters().isFiltered());
@@ -39,16 +45,20 @@
             return;
         }
 
+        setReturnValue(filter(diskList, vm.getOs(), 
vm.getVdsGroupCompatibilityVersion()));
+    }
+
+    private List<Disk> filter(List<Disk> diskList, int os, Version 
compatibilityVersion) {
         List<Disk> filteredDiskList = new ArrayList<>();
         for (Disk disk : diskList) {
-            if (VmValidationUtils.isDiskInterfaceSupportedByOs(vm.getOs(),
-                    vm.getVdsGroupCompatibilityVersion(),
+            if (VmValidationUtils.isDiskInterfaceSupportedByOs(os,
+                    compatibilityVersion,
                     disk.getDiskInterface())) {
                 filteredDiskList.add(disk);
             }
         }
 
-        setReturnValue(filteredDiskList);
+        return filteredDiskList;
     }
 
     protected OsRepository getOsRepository() {
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetAllAttachableDisks.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetAllAttachableDisks.java
index 4128bb5..cffc7fa 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetAllAttachableDisks.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetAllAttachableDisks.java
@@ -1,6 +1,7 @@
 package org.ovirt.engine.core.common.queries;
 
 import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.compat.Version;
 
 public class GetAllAttachableDisks extends VdcQueryParametersBase {
 
@@ -8,6 +9,9 @@
 
     private Guid storagePoolId;
     private Guid vmId;
+    private boolean filterByExplicitValues = true;
+    private int os;
+    private Version vdsGroupCompatibilityVersion;
 
     public GetAllAttachableDisks() {
     }
@@ -32,4 +36,27 @@
         this.vmId = vmId;
     }
 
+    public boolean isFilterByExplicitValues() {
+        return filterByExplicitValues;
+    }
+
+    public void setFilterByExplicitValues(boolean filterByExplicitValues) {
+        this.filterByExplicitValues = filterByExplicitValues;
+    }
+
+    public int getOs() {
+        return os;
+    }
+
+    public void setOs(int os) {
+        this.os = os;
+    }
+
+    public Version getVdsGroupCompatibilityVersion() {
+        return vdsGroupCompatibilityVersion;
+    }
+
+    public void setVdsGroupCompatibilityVersion(Version 
vdsGroupCompatibilityVersion) {
+        this.vdsGroupCompatibilityVersion = vdsGroupCompatibilityVersion;
+    }
 }


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

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

Reply via email to