Initial implementation of managing IPs for kubevirt spawned VMIs
Change-Id: I68127e1fe42a142765e7696d8ce80de16d3d94a9
diff --git a/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java b/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java
index 32ca958..1b39db8 100644
--- a/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java
+++ b/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java
@@ -22,6 +22,7 @@
import org.onlab.packet.IpAddress;
import static junit.framework.TestCase.assertEquals;
+import static junit.framework.TestCase.assertTrue;
import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.FLAT;
import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
@@ -128,4 +129,31 @@
assertEquals(CIDR_1, network.cidr());
assertEquals(new KubevirtIpPool(IP_POOL_START_1, IP_POOL_END_1), network.ipPool());
}
+
+ /**
+ * Test IP address initialization.
+ */
+ @Test
+ public void testIpInitialization() {
+ KubevirtIpPool ipPool1 = network1.ipPool();
+ assertEquals(101, ipPool1.availableIps().size());
+ assertEquals(0, ipPool1.allocatedIps().size());
+ }
+
+ /**
+ * Test IP address allocation.
+ */
+ @Test
+ public void testIpAllocationAndRelease() throws Exception {
+ KubevirtIpPool ipPool1 = network1.ipPool();
+ IpAddress ip = ipPool1.allocateIp();
+ assertEquals(100, ipPool1.availableIps().size());
+ assertEquals(1, ipPool1.allocatedIps().size());
+ assertEquals(IpAddress.valueOf("10.10.10.100"), ip);
+
+ ipPool1.releaseIp(ip);
+ assertEquals(101, ipPool1.availableIps().size());
+ assertEquals(0, ipPool1.allocatedIps().size());
+ assertTrue(ipPool1.availableIps().contains(ip));
+ }
}