Lior Vernia has uploaded a new change for review. Change subject: engine: Relaxed management network static IP validation ......................................................................
engine: Relaxed management network static IP validation It used to not allow changing the management network's IP address whenever the hostname was given as an IP address, but actually problems only arise if the old management network's IP address was equal to the hostname. Also modified the tests accordingly, as well as fixed some logic that was supposed to give existing NICs different IP addresses but I don't think did anything. Change-Id: I85f873fe4e87d16ec60da5bd8f9d6c90ee1e0030 Signed-off-by: Lior Vernia <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java 2 files changed, 33 insertions(+), 11 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/20252/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java index a366792..9929a6e 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelper.java @@ -19,7 +19,6 @@ import org.ovirt.engine.core.common.businessentities.network.NetworkBootProtocol; import org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface; import org.ovirt.engine.core.common.errors.VdcBllMessages; -import org.ovirt.engine.core.common.utils.ValidationUtils; import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.utils.NetworkUtils; @@ -335,9 +334,9 @@ * @return <code>true</code> if the management network was reconfigured properly */ private boolean managementNetworkModifiedCorrectly(VdsNetworkInterface iface) { - if (iface.getBootProtocol() == NetworkBootProtocol.STATIC_IP - && vds.getHostName().matches(ValidationUtils.IP_PATTERN)) { - return StringUtils.equals(vds.getHostName(), iface.getAddress()); + if (iface.getBootProtocol() == NetworkBootProtocol.STATIC_IP) { + return !StringUtils.equals(vds.getHostName(), + getExistingIfaceByNetwork(iface.getNetworkName()).getAddress()); } return true; diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java index 6c9295f..2e9e29c 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/host/SetupNetworksHelperTest.java @@ -242,7 +242,7 @@ nic.setBootProtocol(NetworkBootProtocol.STATIC_IP); nic.setAddress(RandomUtils.instance().nextString(10)); mockExistingIfaces(nic); - nic.setAddress(RandomUtils.instance().nextString(10)); + interfaceDAO.getAllInterfacesForVds(mock(Guid.class)).get(0).setAddress(RandomUtils.instance().nextString(10)); VDS vds = mock(VDS.class); when(vds.getId()).thenReturn(Guid.Empty); @@ -260,7 +260,7 @@ nic.setBootProtocol(NetworkBootProtocol.DHCP); nic.setAddress(RandomUtils.instance().nextString(10)); mockExistingIfaces(nic); - nic.setAddress(RandomUtils.instance().nextString(10)); + interfaceDAO.getAllInterfacesForVds(mock(Guid.class)).get(0).setAddress(RandomUtils.instance().nextString(10)); VDS vds = mock(VDS.class); when(vds.getId()).thenReturn(Guid.Empty); @@ -270,19 +270,42 @@ validateAndAssertNetworkModified(helper, net); } - @Test - public void managementNetworkChangedIncorrectly() { + public void managementNetworkChangedCorrectlyWithIpHostname() { + String hostName = "1.1.1.1"; + String oldAddress = "1.1.1.2"; + Network net = createNetwork(MANAGEMENT_NETWORK_NAME); mockExistingNetworks(net); VdsNetworkInterface nic = createNicSyncedWithNetwork("nic0", net); nic.setBootProtocol(NetworkBootProtocol.STATIC_IP); - nic.setAddress(RandomUtils.instance().nextString(10)); + nic.setAddress(oldAddress); mockExistingIfaces(nic); - nic.setAddress(RandomUtils.instance().nextString(10)); + interfaceDAO.getAllInterfacesForVds(mock(Guid.class)).get(0).setAddress(RandomUtils.instance().nextString(10)); VDS vds = mock(VDS.class); when(vds.getId()).thenReturn(Guid.Empty); - when(vds.getHostName()).thenReturn("1.1.1.1"); + when(vds.getHostName()).thenReturn(hostName); + SetupNetworksHelper helper = createHelper(createParametersForNics(nic), vds); + + validateAndAssertNetworkModified(helper, net); + } + + @Test + public void managementNetworkChangedIncorrectly() { + String hostName = "1.1.1.1"; + String newAddress = "1.1.1.2"; + + Network net = createNetwork(MANAGEMENT_NETWORK_NAME); + mockExistingNetworks(net); + VdsNetworkInterface nic = createNicSyncedWithNetwork("nic0", net); + nic.setBootProtocol(NetworkBootProtocol.STATIC_IP); + nic.setAddress(newAddress); + mockExistingIfaces(nic); + interfaceDAO.getAllInterfacesForVds(mock(Guid.class)).get(0).setAddress(hostName); + + VDS vds = mock(VDS.class); + when(vds.getId()).thenReturn(Guid.Empty); + when(vds.getHostName()).thenReturn(hostName); SetupNetworksHelper helper = createHelper(createParametersForNics(nic), vds); validateAndExpectViolation(helper, -- To view, visit http://gerrit.ovirt.org/20252 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I85f873fe4e87d16ec60da5bd8f9d6c90ee1e0030 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
