You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ga...@apache.org on 2019/07/16 14:17:25 UTC

[cloudstack] 06/09: Move some logic to NetUtils and add Tests for this

This is an automated email from the ASF dual-hosted git repository.

gabriel pushed a commit to branch cloud0-cidr-412
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 10dff010ab50359a4ffa6997e72be54bc2ba5066
Author: Wido den Hollander <wi...@widodh.nl>
AuthorDate: Tue Jul 16 12:32:52 2019 +0200

    Move some logic to NetUtils and add Tests for this
    
    Signed-off-by: Wido den Hollander <wi...@widodh.nl>
---
 .../com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java | 14 +++++++-------
 utils/src/main/java/com/cloud/utils/net/NetUtils.java      | 10 ++++++++++
 utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java  |  5 ++++-
 3 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
index c229154..8466514 100644
--- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
+++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/BridgeVifDriver.java
@@ -52,9 +52,9 @@ public class BridgeVifDriver extends VifDriverBase {
     private String _modifyVlanPath;
     private String _modifyVxlanPath;
     private String _controlCidr = NetUtils.getLinkLocalCIDR();
-    private String _linkLocalGateway = NetUtils.getLinkLocalGateway();
-    private String _linkLocalNetmask = NetUtils.getLinkLocalNetMask();
-    private String _linkLocalAddress = _linkLocalGateway + "/" + _linkLocalNetmask;
+    private String _linkLocalGateway;
+    private String _linkLocalNetmask;
+    private String _linkLocalAddress;
     private String bridgeNameSchema;
     private Long libvirtVersion;
 
@@ -78,12 +78,12 @@ public class BridgeVifDriver extends VifDriverBase {
         String controlCidr = (String)params.get("control.cidr");
         if (StringUtils.isNotBlank(controlCidr)) {
             _controlCidr = controlCidr;
-            SubnetUtils subnetUtils = new SubnetUtils(_controlCidr);
-            _linkLocalGateway = subnetUtils.getInfo().getLowAddress();
-            _linkLocalNetmask = subnetUtils.getInfo().getNetmask();
-            _linkLocalAddress = _linkLocalGateway + "/" + _linkLocalNetmask;
         }
 
+        _linkLocalGateway = NetUtils.getLinkLocalGatewayFromCIDR(_controlCidr);
+        _linkLocalNetmask = NetUtils.getLinkLocalNetmaskFromCIDR(_controlCidr);
+        _linkLocalAddress = _linkLocalGateway + "/" + _linkLocalNetmask;
+
         String value = (String)params.get("scripts.timeout");
         _timeout = NumbersUtil.parseInt(value, 30 * 60) * 1000;
 
diff --git a/utils/src/main/java/com/cloud/utils/net/NetUtils.java b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
index e9d15e2..653e446 100644
--- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java
@@ -967,6 +967,16 @@ public class NetUtils {
         return "169.254.0.0/16";
     }
 
+    public static String getLinkLocalGatewayFromCIDR(final String cidr) {
+        SubnetUtils subnetUtils = new SubnetUtils(cidr);
+        return subnetUtils.getInfo().getLowAddress();
+    }
+
+    public static String getLinkLocalNetmaskFromCIDR(final String cidr) {
+        SubnetUtils subnetUtils = new SubnetUtils(cidr);
+        return subnetUtils.getInfo().getNetmask();
+    }
+
     public static String[] getLinkLocalIPRange(final String cidr) {
         final SubnetUtils subnetUtils = new SubnetUtils(cidr);
         final String[] addresses = subnetUtils.getInfo().getAllAddresses();
diff --git a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
index 4d20df72..afb0b6d 100644
--- a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
+++ b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java
@@ -712,9 +712,12 @@ public class NetUtilsTest {
 
     @Test
     public void testLinkLocal() {
+        final String cidr = NetUtils.getLinkLocalCIDR();
         assertEquals("255.255.0.0", NetUtils.getLinkLocalNetMask());
         assertEquals("169.254.0.1", NetUtils.getLinkLocalGateway());
-        assertEquals("169.254.0.0/16", NetUtils.getLinkLocalCIDR());
+        assertEquals("169.254.0.0/16", cidr);
+        assertEquals("169.254.0.1", NetUtils.getLinkLocalGatewayFromCIDR(cidr));
+        assertEquals("255.255.0.0", NetUtils.getLinkLocalNetmaskFromCIDR(cidr));
 
         String[] range = NetUtils.getLinkLocalIPRange("169.254.0.0/16");
         assertEquals("169.254.0.2", range[0]);