Arik Hadas has uploaded a new change for review. Change subject: core: set boot order index 0 for unmanaged nic ......................................................................
core: set boot order index 0 for unmanaged nic This patch fix NPE which was thrown when computing boot order for a VM that has unmanaged network interface. The boot order index for unmanaged network interfaces will now be 0. Change-Id: If299f5c10dbfd15cf5ebe01f6d7911a7f92eb56f Bug-Url: https://bugzilla.redhat.com/1155667 Signed-off-by: Arik Hadas <aha...@redhat.com> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java M backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtilsTest.java 2 files changed, 21 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/34732/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java index 3326efc..a46492a 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtils.java @@ -178,17 +178,17 @@ * @return */ private static int setNetworkBootOrder(VM vm, List<VmDevice> devices, int bootOrder) { - for (VmDevice pluggedInterface : sortInterfacesByName(vm, getPluggedInterfaces(devices))) { + for (VmDevice pluggedInterface : sortInterfacesByName(vm, getPluggedManagedInterfaces(devices))) { pluggedInterface.setBootOrder(++bootOrder); } return bootOrder; } - private static List<VmDevice> getPluggedInterfaces(List<VmDevice> devices) { + private static List<VmDevice> getPluggedManagedInterfaces(List<VmDevice> devices) { List<VmDevice> result = new ArrayList<VmDevice>(); for (VmDevice device : devices) { - if (isBridge(device) && device.getIsPlugged()) { + if (isBridge(device) && device.getIsPlugged() && device.getIsManaged()) { result.add(device); } } diff --git a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtilsTest.java b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtilsTest.java index 8fa394b..99839f5 100644 --- a/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtilsTest.java +++ b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/utils/VmDeviceCommonUtilsTest.java @@ -48,6 +48,7 @@ List<VmNetworkInterface> interfaces = new LinkedList<VmNetworkInterface>(); VmDevice nic1 = createNetworkInterface(true, NIC_1_NAME, interfaces); + VmDevice unmanagedNic = createUnmanagedNetworkInterface(true); VmDevice nic2 = createNetworkInterface(true, NIC_2_NAME, interfaces); VmDevice nonBootableNic = createNetworkInterface(false, "", interfaces); @@ -65,7 +66,7 @@ // ordered according to their names and not according to their position in the list VmDeviceCommonUtils.updateVmDevicesBootOrder( vm, - Arrays.asList(bootableDisk, nic2, cd, nic1, nonBootableDisk), + Arrays.asList(bootableDisk, nic2, cd, nic1, nonBootableDisk, unmanagedNic), false); int index = 1; @@ -73,6 +74,7 @@ assertEquals("Wrong boot order for nic1", index++, nic1.getBootOrder()); assertEquals("Wrong boot order for nic2", index++, nic2.getBootOrder()); assertEquals("Wrong boot order for non bootable nic", 0, nonBootableNic.getBootOrder()); + assertEquals("Wrong boot order for unmanaged nic", 0, unmanagedNic.getBootOrder()); assertEquals("Wrong boot order for bootable disk", index++, bootableDisk.getBootOrder()); assertEquals("Wrong boot order for non bootable disk", 0, nonBootableDisk.getBootOrder()); } @@ -80,17 +82,27 @@ private VmDevice createNetworkInterface(boolean plugged, String name, List<VmNetworkInterface> interfaces) { Guid id = Guid.newGuid(); - VmDevice device = new VmDevice(); - device.setType(VmDeviceGeneralType.INTERFACE); - device.setDevice(VmDeviceType.BRIDGE.getName()); - device.setIsPlugged(plugged); - device.setId(new VmDeviceId(id, null)); VmNetworkInterface vmNic = new VmNetworkInterface(); vmNic.setId(id); vmNic.setName(name); interfaces.add(vmNic); + return createNetworkInterfaceDevice(plugged, id); + } + + private VmDevice createUnmanagedNetworkInterface(boolean plugged) { + VmDevice device = createNetworkInterfaceDevice(plugged, Guid.newGuid()); + device.setIsManaged(false); + return device; + } + + private VmDevice createNetworkInterfaceDevice(boolean plugged, Guid id) { + VmDevice device = new VmDevice(); + device.setType(VmDeviceGeneralType.INTERFACE); + device.setDevice(VmDeviceType.BRIDGE.getName()); + device.setIsPlugged(plugged); + device.setId(new VmDeviceId(id, null)); return device; } -- To view, visit http://gerrit.ovirt.org/34732 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If299f5c10dbfd15cf5ebe01f6d7911a7f92eb56f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches