Add default route option to kubevirt network
Change-Id: Ia2a2d9b34ec3c493e04d56c544c22812e32d524a
(cherry picked from commit d95d3524caff5449aded4ff9397c3ed717fc91e6)
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java
index 73c96f0..2745e46 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java
@@ -53,6 +53,7 @@
private final Integer mtu;
private final String segmentId;
private final IpAddress gatewayIp;
+ private final boolean defaultRoute;
private final String cidr;
private final Set<KubevirtHostRoute> hostRoutes;
private final KubevirtIpPool ipPool;
@@ -67,6 +68,7 @@
* @param mtu network MTU
* @param segmentId segment identifier
* @param gatewayIp gateway IP address
+ * @param defaultRoute default route
* @param cidr CIDR of network
* @param hostRoutes a set of host routes
* @param ipPool IP pool
@@ -74,7 +76,8 @@
*/
public DefaultKubevirtNetwork(String networkId, Type type, String name,
Integer mtu, String segmentId, IpAddress gatewayIp,
- String cidr, Set<KubevirtHostRoute> hostRoutes,
+ boolean defaultRoute, String cidr,
+ Set<KubevirtHostRoute> hostRoutes,
KubevirtIpPool ipPool, Set<IpAddress> dnses) {
this.networkId = networkId;
this.type = type;
@@ -82,6 +85,7 @@
this.mtu = mtu;
this.segmentId = segmentId;
this.gatewayIp = gatewayIp;
+ this.defaultRoute = defaultRoute;
this.cidr = cidr;
this.hostRoutes = hostRoutes;
this.ipPool = ipPool;
@@ -133,6 +137,11 @@
}
@Override
+ public boolean defaultRoute() {
+ return defaultRoute;
+ }
+
+ @Override
public KubevirtIpPool ipPool() {
return ipPool;
}
@@ -196,7 +205,7 @@
DefaultKubevirtNetwork that = (DefaultKubevirtNetwork) o;
return networkId.equals(that.networkId) && type == that.type &&
name.equals(that.name) && mtu.equals(that.mtu) &&
- gatewayIp.equals(that.gatewayIp) &&
+ gatewayIp.equals(that.gatewayIp) && defaultRoute == that.defaultRoute &&
cidr.equals(that.cidr) && hostRoutes.equals(that.hostRoutes) &&
ipPool.equals(that.ipPool) &&
dnses.equals(that.dnses);
@@ -205,7 +214,7 @@
@Override
public int hashCode() {
return Objects.hash(networkId, type, name, mtu, segmentId, gatewayIp,
- cidr, hostRoutes, ipPool, dnses);
+ defaultRoute, cidr, hostRoutes, ipPool, dnses);
}
@Override
@@ -217,6 +226,7 @@
.add("mtu", mtu)
.add("segmentId", segmentId)
.add("gatewayIp", gatewayIp)
+ .add("defaultRoute", defaultRoute)
.add("cidr", cidr)
.add("hostRouts", hostRoutes)
.add("ipPool", ipPool)
@@ -263,6 +273,7 @@
private Integer mtu;
private String segmentId;
private IpAddress gatewayIp;
+ private boolean defaultRoute;
private String cidr;
private Set<KubevirtHostRoute> hostRouts;
private KubevirtIpPool ipPool;
@@ -274,7 +285,6 @@
checkArgument(type != null, NOT_NULL_MSG, "type");
checkArgument(name != null, NOT_NULL_MSG, "name");
checkArgument(mtu != null, NOT_NULL_MSG, "mtu");
- checkArgument(gatewayIp != null, NOT_NULL_MSG, "gatewayIp");
checkArgument(cidr != null, NOT_NULL_MSG, "cidr");
checkArgument(ipPool != null, NOT_NULL_MSG, "ipPool");
@@ -287,7 +297,7 @@
}
return new DefaultKubevirtNetwork(networkId, type, name, mtu, segmentId,
- gatewayIp, cidr, hostRouts, ipPool, dnses);
+ gatewayIp, defaultRoute, cidr, hostRouts, ipPool, dnses);
}
@Override
@@ -327,6 +337,12 @@
}
@Override
+ public KubevirtNetwork.Builder defaultRoute(boolean flag) {
+ this.defaultRoute = flag;
+ return this;
+ }
+
+ @Override
public Builder cidr(String cidr) {
this.cidr = cidr;
return this;
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java
index 94ed1de..2db552e 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetwork.java
@@ -114,6 +114,13 @@
Set<KubevirtHostRoute> hostRoutes();
/**
+ * Returns default route flag.
+ *
+ * @return default route
+ */
+ boolean defaultRoute();
+
+ /**
* Returns the IP pool.
*
* @return IP pool
@@ -220,6 +227,14 @@
Builder gatewayIp(IpAddress ipAddress);
/**
+ * Returns network builder with supplied default route flag.
+ *
+ * @param flag default route
+ * @return network builder
+ */
+ Builder defaultRoute(boolean flag);
+
+ /**
* Returns network builder with supplied network CIDR.
*
* @param cidr Classless Inter-Domain Routing