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

Reply via email to