Enhance the RM logic for Kubevirt Networking App
Change-Id: I84fa678c75ba1e738c68c72ffbc89c54e5309997
(cherry picked from commit 842b3031e5b82a95d1f292fc952e8f091cc1e20b)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
index b829980..c3ba661 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtNetworkHandler.java
@@ -1088,6 +1088,8 @@
if (!isRelevantHelper()) {
return;
}
+ log.info("###### processRouterGatewayNodeAttached called for router {} and new router is {}",
+ router.name(), associatedGateway);
KubevirtNode gatewayNode = nodeService.node(associatedGateway);
if (gatewayNode == null) {
@@ -1151,7 +1153,7 @@
KubevirtNetwork network = networkService.network(networkName);
if (network != null) {
- initGatewayNodeForInternalNetwork(network, router, oldGatewayNode, true);
+ initGatewayNodeForInternalNetwork(network, router, newGatewayNode, true);
}
});
}
@@ -1263,10 +1265,10 @@
case KUBEVIRT_NODE_COMPLETE:
eventExecutor.execute(() -> processNodeCompletion(event.subject()));
break;
+ case KUBEVIRT_NODE_INCOMPLETE:
case KUBEVIRT_NODE_REMOVED:
eventExecutor.execute(() -> processNodeDeletion(event.subject()));
break;
- case KUBEVIRT_NODE_INCOMPLETE:
case KUBEVIRT_NODE_UPDATED:
default:
// do nothing
@@ -1304,19 +1306,6 @@
}
} else if (node.type().equals(GATEWAY)) {
updateGatewayNodeForRouter();
- for (KubevirtNetwork network : networkService.networks()) {
- switch (network.type()) {
- case FLAT:
- case VLAN:
- break;
- case VXLAN:
- case GRE:
- case GENEVE:
- default:
- // do nothing
- break;
- }
- }
}
}
@@ -1324,22 +1313,20 @@
if (!isRelevantHelper()) {
return;
}
-
if (node.type().equals(GATEWAY)) {
+ kubevirtRouterService.routers()
+ .stream()
+ .filter(router -> router.electedGateway().equals(node.hostname()))
+ .forEach(router -> {
+ router.internal().forEach(networkName -> {
+ KubevirtNetwork network = networkService.network(networkName);
+
+ if (network != null) {
+ initGatewayNodeForInternalNetwork(network, router, node, false);
+ }
+ });
+ });
updateGatewayNodeForRouter();
- for (KubevirtNetwork network : networkService.networks()) {
- switch (network.type()) {
- case FLAT:
- case VLAN:
- break;
- case VXLAN:
- case GRE:
- case GENEVE:
- default:
- // do nothing
- break;
- }
- }
}
}