Add VM name field to floating IP CRD of kubevirt
Change-Id: I493199f0e2a5c0b7b5fffc65c513bb4feeb2eb10
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java
index c6a9179..e3e9bce 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java
@@ -85,6 +85,7 @@
// CLI item length
public static final int CLI_ID_LENGTH = 30;
public static final int CLI_NAME_LENGTH = 30;
+ public static final int CLI_LONG_NAME_LENGTH = 50;
public static final int CLI_IP_ADDRESSES_LENGTH = 50;
public static final int CLI_IP_ADDRESS_LENGTH = 25;
public static final int CLI_IP_ADDRESS_AVAILABILITY = 15;
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIp.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIp.java
index 213fa4e..488ef8d 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIp.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIp.java
@@ -32,6 +32,7 @@
private final String id;
private final String routerName;
private final String podName;
+ private final String vmName;
private final String networkName;
private final IpAddress floatingIp;
private final IpAddress fixedIp;
@@ -42,15 +43,17 @@
* @param id floating IP identifier
* @param routerName router name
* @param podName POD name
+ * @param vmName VM name
* @param networkName network name
* @param floatingIp floating IP address
* @param fixedIp fixed IP address
*/
- public DefaultKubevirtFloatingIp(String id, String routerName, String podName,
+ public DefaultKubevirtFloatingIp(String id, String routerName, String podName, String vmName,
String networkName, IpAddress floatingIp, IpAddress fixedIp) {
this.id = id;
this.routerName = routerName;
this.podName = podName;
+ this.vmName = vmName;
this.networkName = networkName;
this.floatingIp = floatingIp;
this.fixedIp = fixedIp;
@@ -82,6 +85,11 @@
}
@Override
+ public String vmName() {
+ return vmName;
+ }
+
+ @Override
public String podName() {
return podName;
}
@@ -94,6 +102,7 @@
.routerName(routerName)
.floatingIp(floatingIp)
.fixedIp(ip)
+ .vmName(vmName)
.podName(podName)
.build();
}
@@ -106,11 +115,25 @@
.routerName(routerName)
.floatingIp(floatingIp)
.fixedIp(fixedIp)
+ .vmName(vmName)
.podName(name)
.build();
}
@Override
+ public KubevirtFloatingIp updateVmName(String name) {
+ return DefaultKubevirtFloatingIp.builder()
+ .id(id)
+ .networkName(networkName)
+ .routerName(routerName)
+ .floatingIp(floatingIp)
+ .fixedIp(fixedIp)
+ .vmName(name)
+ .podName(podName)
+ .build();
+ }
+
+ @Override
public boolean equals(Object o) {
if (this == o) {
return true;
@@ -157,6 +180,7 @@
private String id;
private String routerName;
private String podName;
+ private String vmName;
private String networkName;
private IpAddress floatingIp;
private IpAddress fixedIp;
@@ -168,7 +192,8 @@
checkArgument(routerName != null, NOT_NULL_MSG, "routerName");
checkArgument(floatingIp != null, NOT_NULL_MSG, "floatingIp");
- return new DefaultKubevirtFloatingIp(id, routerName, podName, networkName, floatingIp, fixedIp);
+ return new DefaultKubevirtFloatingIp(id, routerName, podName, vmName,
+ networkName, floatingIp, fixedIp);
}
@Override
@@ -202,6 +227,12 @@
}
@Override
+ public Builder vmName(String name) {
+ this.vmName = name;
+ return this;
+ }
+
+ @Override
public Builder podName(String name) {
this.podName = name;
return this;
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtFloatingIp.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtFloatingIp.java
index 27019b8..2fe85f1 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtFloatingIp.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtFloatingIp.java
@@ -58,6 +58,13 @@
IpAddress fixedIp();
/**
+ * Returns the name of VM where this floating IP is associated with.
+ *
+ * @return VM name
+ */
+ String vmName();
+
+ /**
* Returns the name of POD where this floating IP is associated with.
*
* @return POD name
@@ -80,6 +87,14 @@
*/
KubevirtFloatingIp updatePodName(String name);
+ /**
+ * Updates the kubevirt floating IP with the supplied VM name.
+ *
+ * @param name VM name
+ * @return kubevirt floating IP
+ */
+ KubevirtFloatingIp updateVmName(String name);
+
interface Builder {
/**
* Builds an immutable floaing IP instance.
@@ -129,6 +144,14 @@
Builder fixedIp(IpAddress ip);
/**
+ * Returns kubevirt floating IP builder with supplied VM name.
+ *
+ * @param name VM name
+ * @return floating IP builder
+ */
+ Builder vmName(String name);
+
+ /**
* Returns kubevirt floating IP builder with supplied POD name.
*
* @param name POD name
diff --git a/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIpTest.java b/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIpTest.java
index b63cf00..e995532 100644
--- a/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIpTest.java
+++ b/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtFloatingIpTest.java
@@ -38,6 +38,8 @@
private static final IpAddress FLOATING_IP_2 = IpAddress.valueOf("20.20.20.20");
private static final String POD_NAME_1 = "pod-1";
private static final String POD_NAME_2 = "pod-2";
+ private static final String VM_NAME_1 = "vm-1";
+ private static final String VM_NAME_2 = "vm-2";
private static final IpAddress FIXED_IP_1 = IpAddress.valueOf("30.30.30.30");
private static final IpAddress FIXED_IP_2 = IpAddress.valueOf("40.40.40.40");
@@ -64,6 +66,7 @@
.networkName(NETWORK_NAME_1)
.floatingIp(FLOATING_IP_1)
.podName(POD_NAME_1)
+ .vmName(VM_NAME_1)
.fixedIp(FIXED_IP_1)
.build();
@@ -73,6 +76,7 @@
.networkName(NETWORK_NAME_1)
.floatingIp(FLOATING_IP_1)
.podName(POD_NAME_1)
+ .vmName(VM_NAME_1)
.fixedIp(FIXED_IP_1)
.build();
@@ -82,6 +86,7 @@
.networkName(NETWORK_NAME_2)
.floatingIp(FLOATING_IP_2)
.podName(POD_NAME_2)
+ .vmName(VM_NAME_2)
.fixedIp(FIXED_IP_2)
.build();
}
@@ -108,6 +113,7 @@
assertEquals(NETWORK_NAME_1, fip.networkName());
assertEquals(FLOATING_IP_1, fip.floatingIp());
assertEquals(POD_NAME_1, fip.podName());
+ assertEquals(VM_NAME_1, fip.vmName());
assertEquals(FIXED_IP_1, fip.fixedIp());
}
}