Alona Kaplan has uploaded a new change for review.

Change subject: engine: adding excludeVfs list to 
HostNicVfsConfigHelper.getFreeVf
......................................................................

engine: adding excludeVfs list to HostNicVfsConfigHelper.getFreeVf

Change-Id: Ie084a3174e902a95a45dde0116955be303da94aa
Signed-off-by: Alona Kaplan <alkap...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelper.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImpl.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImplTest.java
3 files changed, 28 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/39692/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelper.java
index 18909a3..793a821 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelper.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelper.java
@@ -68,10 +68,12 @@
      *
      * @param nic
      *            physical SR-IOV enabled nic
+     * @param excludeVfs
+     *            vfs that should be considered as non-free
      * @return the first free VF on the nic
      * @throws <code>UnsupportedOperationException</code> in case the nic is 
not SR-IOV enabled
      */
-    public HostDevice getFreeVf(VdsNetworkInterface nic);
+    public HostDevice getFreeVf(VdsNetworkInterface nic, List<String> 
excludeVfs);
 
     /**
      * Retrieves the pciDevice name of the specified <code>nic</code>
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImpl.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImpl.java
index fd29a07..71c2bdc 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImpl.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImpl.java
@@ -174,11 +174,11 @@
     }
 
     @Override
-    public HostDevice getFreeVf(VdsNetworkInterface nic) {
-        return getVf(nic, true);
+    public HostDevice getFreeVf(VdsNetworkInterface nic, List<String> 
excludeVfs) {
+        return getVf(nic, true, excludeVfs);
     }
 
-    private HostDevice getVf(VdsNetworkInterface nic, final boolean 
shouldBeFree) {
+    private HostDevice getVf(VdsNetworkInterface nic, final boolean 
shouldBeFree, final List<String> excludeVfs) {
         List<HostDevice> deviceList = getDevicesByHostId(nic.getVdsId());
         HostDevice pciDevice = getPciDeviceByNic(nic, deviceList);
 
@@ -196,11 +196,15 @@
 
             @Override
             public boolean eval(HostDevice vf) {
-                return isVfFree(vf) == shouldBeFree;
+                return isVfFree(vf) == shouldBeFree && (excludeVfs == null || 
!excludeVfs.contains(vf.getDeviceName()));
             }
         });
 
-        return vf;
+       return vf;
+    }
+
+    private HostDevice getVf(VdsNetworkInterface nic, final boolean 
shouldBeFree) {
+        return getVf(nic, shouldBeFree, null);
     }
 
     private boolean isNetworkAttached(VdsNetworkInterface vfNic) {
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImplTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImplTest.java
index 50e950f..915292c 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImplTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/HostNicVfsConfigHelperImplTest.java
@@ -309,33 +309,44 @@
     @Test(expected = UnsupportedOperationException.class)
     public void getFreeVfNotSriovNic() {
         commonIsSriovDevice(false);
-        hostNicVfsConfigHelper.getFreeVf(nic);
+        hostNicVfsConfigHelper.getFreeVf(nic, null);
     }
 
     @Test
     public void getFreeVfNoVfs() {
         freeVfCommon(0, 0, 0, 0, 0);
-        assertNull(hostNicVfsConfigHelper.getFreeVf(nic));
+        assertNull(hostNicVfsConfigHelper.getFreeVf(nic, null));
     }
 
     @Test
     public void getFreeVfNoFreeVf() {
         freeVfCommon(0, 1, 2, 3, 4);
-        assertNull(hostNicVfsConfigHelper.getFreeVf(nic));
+        assertNull(hostNicVfsConfigHelper.getFreeVf(nic, null));
     }
 
     @Test
     public void getFreeVfOneFreeVf() {
         List<HostDevice> freeVfs = freeVfCommon(1, 4, 3, 2, 1);
         assertEquals(1, freeVfs.size());
-        assertTrue(freeVfs.contains(hostNicVfsConfigHelper.getFreeVf(nic)));
+        assertTrue(freeVfs.contains(hostNicVfsConfigHelper.getFreeVf(nic, 
null)));
     }
 
     @Test
     public void getFreeVfMoreThanOneFreeVf() {
         List<HostDevice> freeVfs = freeVfCommon(5, 2, 2, 2, 2);
         assertEquals(5, freeVfs.size());
-        assertTrue(freeVfs.contains(hostNicVfsConfigHelper.getFreeVf(nic)));
+        assertTrue(freeVfs.contains(hostNicVfsConfigHelper.getFreeVf(nic, 
null)));
+    }
+
+    @Test
+    public void getFreeVfWithExcludedVfs() {
+        List<HostDevice> freeVfs = freeVfCommon(5, 2, 2, 2, 2);
+        assertEquals(5, freeVfs.size());
+        List<String> excludedVfs = new ArrayList<>();
+        excludedVfs.add(freeVfs.get(0).getDeviceName());
+        excludedVfs.add(freeVfs.get(1).getDeviceName());
+        freeVfs.removeAll(excludedVfs);
+        assertTrue(freeVfs.contains(hostNicVfsConfigHelper.getFreeVf(nic, 
excludedVfs)));
     }
 
     private VdsNetworkInterface mockNicForNetDevice(HostDevice netDeviceParam) 
{


-- 
To view, visit https://gerrit.ovirt.org/39692
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to