Adds utility function that converts InetAddress to IpAddress 97/23697/1
authorMilos Fabian <milfabia@cisco.com>
Thu, 2 Jul 2015 16:05:17 +0000 (18:05 +0200)
committerMilos Fabian <milfabia@cisco.com>
Thu, 2 Jul 2015 16:08:01 +0000 (18:08 +0200)
Change-Id: Id19c064888755a17fb99de070de3182538a1349e
Signed-off-by: Milos Fabian <milfabia@cisco.com>
util/src/main/java/org/opendaylight/protocol/util/Ipv4Util.java
util/src/test/java/org/opendaylight/protocol/util/IPAddressesAndPrefixesTest.java

index 3174ec7affbfb7067a900019ea2c88d579c0c99e..c735d5391e2609a9fb23c70db9e72739804e09ee 100644 (file)
@@ -20,8 +20,10 @@ import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
 
 /**
  * Util class for creating generated Ipv4Address.
@@ -195,4 +197,18 @@ public final class Ipv4Util {
         final int sep = prefixValue.indexOf('/');
         return Integer.parseInt(prefixValue.substring(sep + 1, prefixValue.length()));
     }
+
+    /**
+     * Converts InetAddress to IpAddress.
+     *
+     * @param inetAddress
+     * @return IpAddress
+     */
+    public static IpAddress getIpAddress(final InetAddress inetAddress) {
+        final String address = InetAddresses.toAddrString(inetAddress);
+        if (inetAddress instanceof Inet4Address) {
+            return new IpAddress(new Ipv4Address(address));
+        }
+        return new IpAddress(new Ipv6Address(address));
+    }
 }
index 7a6cad8a73c8702a40dc1bc53e29c406b8c8127e..7d07f83738242eb3258826d13f62e21c253cd1e3 100644 (file)
@@ -15,13 +15,16 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import com.google.common.collect.Lists;
+import com.google.common.net.InetAddresses;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.net.UnknownHostException;
 import java.util.List;
+import org.junit.Assert;
 import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
@@ -190,4 +193,15 @@ public class IPAddressesAndPrefixesTest {
             throw e.getCause();
         }
     }
+
+    @Test
+    public void testInetAddressToIpAddress() {
+        final IpAddress ipAddress = Ipv4Util.getIpAddress(InetAddresses.forString("123.42.13.8"));
+        Assert.assertNotNull(ipAddress.getIpv4Address());
+        Assert.assertEquals(new Ipv4Address("123.42.13.8"), ipAddress.getIpv4Address());
+
+        final IpAddress ipAddress2 = Ipv4Util.getIpAddress(InetAddresses.forString("2001:db8:1:2::"));
+        Assert.assertNotNull(ipAddress2.getIpv6Address());
+        Assert.assertEquals(new Ipv6Address("2001:db8:1:2::"), ipAddress2.getIpv6Address());
+    }
 }