Notify kubevirt router internal and external network related events
1. Add networkName attribute into FloatingIp class.
Change-Id: I4aeb8031ef4c86d7ae9a6423276b024c05fe0649
(cherry picked from commit 4acd4543cf7e6d48883ed0f7d9813b69f0d2c414)
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouterEvent.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouterEvent.java
index c9e1f16..7fd8958 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouterEvent.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouterEvent.java
@@ -17,6 +17,8 @@
import org.onosproject.event.AbstractEvent;
+import java.util.Set;
+
import static com.google.common.base.MoreObjects.toStringHelper;
/**
@@ -26,6 +28,10 @@
private final KubevirtFloatingIp floatingIp;
private final String podName;
+ private final Set<String> internal;
+ private final String externalIp;
+ private final String externalNet;
+ private final String peerRouterIp;
/**
* Creates an event of a given type for the specified kubevirt router.
@@ -37,6 +43,10 @@
super(type, subject);
this.floatingIp = null;
this.podName = null;
+ this.internal = null;
+ this.externalIp = null;
+ this.externalNet = null;
+ this.peerRouterIp = null;
}
/**
@@ -50,6 +60,10 @@
super(type, subject);
this.floatingIp = floatingIp;
this.podName = null;
+ this.internal = null;
+ this.externalIp = null;
+ this.externalNet = null;
+ this.peerRouterIp = null;
}
/**
@@ -64,6 +78,48 @@
super(type, subject);
this.floatingIp = floatingIp;
this.podName = podName;
+ this.internal = null;
+ this.externalIp = null;
+ this.externalNet = null;
+ this.peerRouterIp = null;
+ }
+
+ /**
+ * Creates an event of a given type for the specified kubevirt router.
+ *
+ * @param type kubevirt router event type
+ * @param subject kubevirt router
+ * @param internal internal networks attached to the router
+ */
+ public KubevirtRouterEvent(Type type, KubevirtRouter subject, Set<String> internal) {
+ super(type, subject);
+ this.internal = internal;
+ this.podName = null;
+ this.floatingIp = null;
+ this.externalIp = null;
+ this.externalNet = null;
+ this.peerRouterIp = null;
+ }
+
+ /**
+ * Creates an event of a given type for the specified kubevirt router.
+ *
+ * @param type kubevirt router event type
+ * @param subject kubevirt router
+ * @param externalIp virtual router's IP address included in external network
+ * @param externalNet external network name
+ * @param peerRouterIp external peer router IP address
+ */
+ public KubevirtRouterEvent(Type type, KubevirtRouter subject,
+ String externalIp, String externalNet,
+ String peerRouterIp) {
+ super(type, subject);
+ this.internal = null;
+ this.podName = null;
+ this.floatingIp = null;
+ this.externalIp = externalIp;
+ this.externalNet = externalNet;
+ this.peerRouterIp = peerRouterIp;
}
public enum Type {
@@ -83,6 +139,26 @@
KUBEVIRT_ROUTER_REMOVED,
/**
+ * Signifies that a new external network is added to the router.
+ */
+ KUBEVIRT_ROUTER_EXTERNAL_NETWORK_ATTACHED,
+
+ /**
+ * Signifies that the existing external network is removed from the router.
+ */
+ KUBEVIRT_ROUTER_EXTERNAL_NETWORK_DETACHED,
+
+ /**
+ * Signifies that a new internal network is added to the router.
+ */
+ KUBEVIRT_ROUTER_INTERNAL_NETWORKS_ATTACHED,
+
+ /**
+ * Signifies that the existing internal network is removed from the router.
+ */
+ KUBEVIRT_ROUTER_INTERNAL_NETWORKS_DETACHED,
+
+ /**
* Signifies that a new kubevirt floating IP is created.
*/
KUBEVIRT_FLOATING_IP_CREATED,
@@ -136,6 +212,10 @@
.add("router", subject())
.add("floatingIp", floatingIp)
.add("podName", podName)
+ .add("internal", internal)
+ .add("externalIp", externalIp)
+ .add("externalNet", externalNet)
+ .add("peerRouterIp", peerRouterIp)
.toString();
}
}